📄 p17_1.asm
字号:
DQ EQU P3.3
LED1 EQU P2.0
LED2 EQU P2.1
LED3 EQU P2.2
LED4 EQU P2.3
LED EQU P0
ORG 0000H
LJMP MAIN
ORG 3000H
MAIN: MOV P0, #0FFH
MOV P2, #0FFH
MOV P3, #0FFH
LOOP: LCALL GET_TEMPER
LCALL DISP
AJMP LOOP
GET_TEMPER:
LCALL RST18B20
MOV A, #0CCH
LCALL WR18B20
MOV A, #44H
LCALL WR18B20
LCALL RST18B20
MOV A, #0CCH
LCALL WR18B20
MOV A, #0BEH
LCALL WR18B20
LCALL RE18B20
RET
RST18B20:
SETB DQ
NOP
CLR DQ
MOV R0, #06BH
MOV R1, #03H
DSR1: DJNZ R0, DSR1
MOV R0, #6BH
DJNZ R1, DSR1
SETB DQ
NOP
NOP
NOP
MOV R0, #25H
DSR2: JNB DQ, DSR3
DJNZ R0, DSR2
LJMP RST18B20
DSR3: MOV R0, #06BH
DJNZ R0, $
SETB DQ
RET
WR18B20:
MOV R0, #8H
CLR C
WR1: CLR DQ
MOV R1, #6H
DJNZ R1, $
RRC A
MOV DQ, C
MOV R1, #23
DJNZ R1, $
SETB DQ
NOP
DJNZ R0, WR1
SETB DQ
RET
RE18B20:
MOV R0, #30H
MOV R1, #2
RE00: MOV R2, #8
RE01: CLR C
CLR DQ
NOP
NOP
NOP
SETB DQ
MOV R3, #09
RE10: DJNZ R3, RE10
MOV C, DQ
MOV R3, #23
RE20: DJNZ R3, RE20
RRC A
DJNZ R2, RE01
MOV @R0, A
INC R0
DJNZ R1, RE00
RET
DISP: MOV DPTR, #SGTB
MOV A, 30H
ANL A, #11110000B
SWAP A
MOV R0, A
MOV A, 31H
ANL A, #00001111B
SWAP A
ORL A, R0
MOV R1, #0FFH
JNB ACC.7, DLED
MOV R0, A
MOV A, #0H
CLR C
SUBB A, R0
MOV R1, #10111111B
DLED: MOV LED, #0FFH
SETB LED1
CLR LED2
CLR LED3
CLR LED4
MOV LED, R1
LCALL YS4722U
MOV LED, #0FFH
CLR LED1
CLR LED2
CLR LED3
SETB LED4
MOV B, #10
DIV AB
MOV R0, A
MOV A, B
MOVC A, @A+DPTR
MOV LED, A
LCALL YS4722U
MOV LED, #0FFH
CLR LED1
CLR LED2
SETB LED3
CLR LED4
MOV A, R0
MOV B, #10
DIV AB
MOV R0, A
MOV A, B
MOVC A, @A+DPTR
MOV LED, A
LCALL YS4722U
MOV LED, #0FFH
CLR LED1
SETB LED2
CLR LED3
CLR LED4
MOV A, R0
MOVC A, @A+DPTR
MOV LED, A
LCALL YS4722U
RET
SGTB: DB 0C0H, 0F9H, 0A4H, 0B0H, 099H
DB 092H, 082H, 0F8H, 080H, 090H
DB 088H, 083H, 0C6H, 0A1H, 086H
DB 08EH, 089H, 0A3H, 08CH, 0C8H
YS4722U:
MOV R4, #7
Y3: MOV R5, #216
DJNZ R5, $
DJNZ R4, Y3
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -