|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
DS18B20 数码管动态扫描只要调用tem温度采集就是不显示.高手帮我看看吧
DQ EQU P3.3
TEMP EQU 36H
ORG 0000H
AJMP MAIN
ORG 0020H
MAIN: Lcall TEM // 温度采集子程序
LCALL DOWITH // 数据处理子程序
MOV R7,#200
B5: MOV DPTR,#TABL //数码管显示子程序
MOV A,31H
MOV P2,#0FEH
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY_10MS
MOV A,30H
MOV P2,#0FDH
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY_10MS
DJNZ R7,B5
AJMP MAIN
TABL: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;
TEM: LCALL INIT_1820 //温度采集子程序
MOV A,#0CCH
LCALL WRITE
LCALL INIT_1820
MOV A,#44H
LCALL WRITE
mov r5,#20
m5: LCALL DELAY_10MS
djnz r5,m5
LCALL INIT_1820
MOV A,#0CCH
LCALL WRITE
LCALL INIT_1820
MOV A,#0BEH
LCALL WRITE
LCALL INIT_1820
LCALL READ
RET
INIT_1820: SETB DQ //初始化子程序
NOP
NOP
M3: CLR DQ
MOV R3,#35
LCALL DELAY1
SETB DQ
MOV R3,#3
LCALL DELAY1
JNB DQ,M2
AJMP M3
M2: MOV R3,#10
LCALL DELAY1
SETB DQ
NOP
NOP
RET
WRITE: CLR C //写入子程序
MOV R2,#8
L1: CLR DQ
MOV R3,#4
DJNZ R3,$
RRC A
MOV DQ,C
MOV R3,#40
DJNZ R3,$
SETB DQ
NOP
NOP
DJNZ R2,L1
RET
READ: MOV R1,#2 //读子程序
MOV R0,#30H
MOV R2,#8
CLR DQ
NOP
CLR C
CLR A
M4: SETB DQ
MOV R3,#2
DJNZ R3,$
MOV C,DQ
RRC A
MOV R3,#25
DJNZ R3,$
NOP
DJNZ R2,M4
MOV @R0,A
INC R0
DJNZ R1,READ
SETB DQ
nop
RET
DOWITH: MOV A,30H //数据处理子程序
ANL A,#0F0H
SWAP A
MOV TEMP,A
MOV A,35H
ANL A,#07H
SWAP A
ORL A,TEMP
mov temp,A
MOV B,#10
DIV AB
MOV 31H,A
MOV 30H,B
RET
DELAY1:MOV R2,#5 //20Us延时,改变R3可改变延时时间
M1: NOP
DJNZ R2,M1
DJNZ R3,DELAY1
RET
DELAY_10ms: MOV R7,#10
W2: MOV R6,#250
W1: NOP
NOP
DJNZ R6,W1
DJNZ R7,W2
RET
end |
|