mutliceshi.asm
来自「实现DS18B20多个的检测和显示! 用途非常广泛啊!」· 汇编 代码 · 共 122 行
ASM
122 行
ORG 0000H
AJMP MAIN
ORG 0020H
MAIN:MOV SP,#60H
LCALL INT1
MOV A,#0CCH ;跳过ROM,告诉DS1820这是针对所有的对象的
LCALL WRITE
MOV A,#44H
LCALL WRITE
LCALL DELAY1S
LCALL INT1
MOV B,#2
MOV R1,#70H
MOV R5,#0
AGAIN:MOV R0,#8
MOV A,#55H
LCALL WRITE
NEXT: LCALL XILEI
LCALL WRITE
DJNZ R0,NEXT
MOV A,#0BEH
LCALL WRITE
LCALL READ
MOV @R1,A
INC R1
LCALL READ
MOV @R1,A
INC R1
LCALL INT1
DJNZ B,AGAIN
SJMP $
INT: CLR EA
L0: CLR P3.4
MOV R2,#255 ;这边可以改高点
L1: CLR P3.4
DJNZ R2,L1
SETB P3.4
MOV R2,#30
L4: DJNZ R2,L4
CLR C
ORL C,P3.4
JC L0
MOV R6,#80
L5: ORL C,P3.4
JC L3
DJNZ R6,L5
SJMP L0
L3: MOV R2,#240
L2: DJNZ R2,L2
RET
WRITE:CLR EA
MOV R3,#8
WR1: SETB P3.4
MOV R4,#8
RRC A
CLR P3.4
WR2: DJNZ R4,WR2
MOV P3.4,C
MOV R4,#20
WR3: DJNZ R4,WR3
DJNZ R3,WR1
SETB P3.4
RET
DELAY1S:MOV R4,#4
DE0: MOV R3,#250
DE1: MOV R2,#2
DE2: MOV R1,#250
DE3: DJNZ R1,DE3
DJNZ R2,DE2
DJNZ R3,DE1
DJNZ R4,DE0
RET
XILEI:MOV DPTR,#TAB
MOV A,R5
MOVC A,@A+DPTR
INC R5
RET
TAB: DB 28H,8DH,0C8H,0C1H,00H,00H,00H,14H
DB 28H,0C2H,55H,0C1H,00H,00H,00H,1EH
READ: MOV A,R5
PUSH A
CLR EA
MOV R6,#8
RE1: CLR P3.4
MOV R4,#4
NOP
SETB P3.4
RE2: DJNZ R4,RE2
MOV C,P3.4
RRC A
MOV R5,#30
RE3: DJNZ R5,RE3
DJNZ R6,RE1
SETB P3.4
POP A
MOV R5,A
RET
INT1:MOV R2,255
CLR P3.4
S1:DJNZ R2,S1
SETB P3.4
MOV R6,250
S2:DJNZ R6,S2
RET
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?