📄 ds1820.asm
字号:
ORG 0000H
AJMP TEMPP
ORG 100H
TEMPP: MOV 40H,#00
MOV 41H,#00
ACALL RST
MOV A,#0CCH
ACALL WRIT
MOV A,#44H
LCALL WRIT
JNB P1.0,$
LCALL TIM1
JNB P1.0,$
ACALL RST
MOV A,#0CCH
LCALL WRIT
MOV A,#0BEH
LCALL WRIT
MOV R5,#02 ;READ TEMPERATURE BIT SUM
MOV R0,#40H ;TEMPERATURE START ADDRES LSB 41H<--MSB
LCALL READ
LCALL TEMP
LOOP: AJMP LOOP
RET
RST: NOP
CLR P1.0
MOV R7,#03H ;REST
RST1: MOV R6,#90
RST2: DJNZ R6,RST2
DJNZ R7,RST1
SETB P1.0
MOV R7,#20
RST3: DJNZ R7,RST3
RST4: JB P1.0,RST4
MOV R7,#120
LL2: DJNZ R7,LL2
SETB P1.0
MOV R7,#130
DJNZ R7,$
RET
WRIT: MOV R6,#08H ;WRIT A->DS1820
CLR C
WRI1: SETB P1.0
MOV R7,#28
RRC A
CLR P1.0
NOP
NOP
NOP
NOP
MOV P1.0,C
LL5: DJNZ R7,LL5
DJNZ R6,WRI1
SETB P1.0
RET
READ: MOV R6,#8 ;READ DS1820-->50H
CLR C
CLR A
RED1: SETB P1.0
MOV R7,#23
NOP
CLR P1.0
NOP
NOP
SETB P1.0
NOP
NOP
NOP
NOP
NOP
NOP
MOV C,P1.0
RRC A
LL3: DJNZ R7,LL3
DJNZ R6,RED1
MOV @R0,A
INC R0
CLR C
CLR A
MOV R6,#08H
DJNZ R5,RED1
SETB P1.0
RET
TIM1: MOV R7,#6
TI2: MOV R6,#250
TI1: MOV R5,#250
TI0: DJNZ R5,TI0
DJNZ R6,TI1
DJNZ R7,TI2
RET
TEMP: MOV A,41H
ANL A,#0FH
SWAP A
MOV B,A
MOV A,40H
JNB ACC.3,TE1
MOV 41H,#05H
AJMP TE2
TE1: MOV 41H,#00H
TE2: ANL A,#0F0H
SWAP A
ORL A,B
MOV B,#10
DIV AB
SWAP A
ANL A,#0F0H
ANL B,#0FH
ORL A,B
MOV 40H,A
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -