📄 ds18b20.asm
字号:
DAT EQU P1.0
ORG 0000H
SJMP MAIN
ORG 0030H
MAIN:
MOV SP,#40H
MOV R0,#50H
LCALL GETWD
NOP
LCALL DISPLY
LCALL DALAY
SJMP MAIN
GETWD:
LCALL INIT
MOV A,#0CCH
LCALL WRITE
MOV A,#44H
LCALL WRITE
LCALL INIT
MOV A,#0CCH
LCALL WRITE
MOV A,#0BEH
LCALL WRITE
LCALL READ
MOV @R0,A
INC R0
LCALL READ
MOV @R0,A
RET
DISPLY:
MOV R0,#50H
MOV A,@R0
INC R0
ANL A,#0F0H
MOV B,A
MOV A,@R0
INC R0
ANL A,#07H
ADD A,B
SWAP A
DA A
MOV B,A
ANL A,#0FH
MOV @R0,A
INC R0
MOV A,B
SWAP A
ANL A,#0FH
MOV @R0,A
INC R0
CLR A
ADDC A,#00H
MOV @R0,A
LOOP3:
MOV R0,#52H
MOV R1,#3
MOV R2,#0FEH
DISPLY2:
MOV A,@R0
INC R0
MOV DPTR,#LEDSEG
MOVC A,@A+DPTR
MOV P2,R2
NOP
MOV P0,A
NOP
MOV A,R2
RL A
MOV R2,A
NOP
LCALL DALAY
DJNZ R1,DISPLY2
RET
INIT:
CLR EA
INI10:
SETB DAT
MOV R3,#200
INI11:
CLR DAT
DJNZ R3,INI11
SETB DAT
MOV R3,#30
INI12:
DJNZ R3,INI12
CLR C
ORL C,DAT
JC INI10
MOV R4,#80
INI13:
ORL C,DAT
JC INI14
DJNZ R4,INI13
SJMP INI10
INI14:
MOV R3,#240
INI15:
DJNZ R3,INI15
RET
WRITE:
CLR EA
MOV R5,#8
WR11:
SETB DAT
MOV R6,#8
RRC A
CLR DAT
WR12:
DJNZ R6,WR12
MOV DAT,C
MOV R6,#20
WR13:
DJNZ R6,WR13
DJNZ R5,WR11
SETB DAT
RET
READ:
CLR EA
MOV R7,#8
RD11:
CLR DAT
MOV R6,#4
NOP
SETB DAT
RD12:
DJNZ R6,RD12
MOV C,DAT
RRC A
MOV R5,#30
RD13:
DJNZ R5,RD13
DJNZ R7,RD11
SETB DAT
RET
DALAY:
MOV R5,#5H
DALAY2:
MOV R6,#255
DJNZ R6,$
DJNZ R5,DALAY2
RET
LEDSEG:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8Eh ; 共阳极数码管段码!
;0 1 2 3 4 5 6 7 8 9
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -