📄 th22_温度传感器.asm
字号:
LowTemp equ -50 ; A/D 0
HighTemp equ 150 ; A/D 255
ADPort equ 0FEF3H
LEDBuf equ 30H
TEMP EQU 40H
CURTEMP EQU 60H
DIN BIT P3.4
CLK BIT P3.5
ORG 0000H
ljmp Start
ORG 0030H
LEDMAP: DB 3FH,6,5BH,4FH,66H,6DH ;0,1,2,3,4,5
DB 7DH,7,7FH,6FH,77H,7CH ;6,7,8,9,A,B
DB 58H,5EH,7BH,71H,0,40H ;C,D,E,F, , -
DB 63H,39H
;################################################
DisplayLED:
MOV R0,#LEDBUF
MOV R1,#TEMP
MOV R2,#5
DP10: MOV DPTR,#LEDMAP
MOV A,@R0
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R2,DP10
MOV R0,#TEMP
MOV R1,#5
DP12: MOV R2,#8
MOV A,@R0
DP13: RLC A
MOV DIN,C
CLR CLK
SETB CLK
DJNZ R2,DP13
INC R0
DJNZ R1,DP12
RET
; ================================
DisplayResult:
mov a, CurTemp
jnb acc.7, GE0
mov LEDBuf, #11h ;
dec a
cpl a
LJMP Goon
GE0:
mov LEDBuf, #10h ; ' '
Goon:
mov b, #10
div ab
mov LEDBuf+1, a
mov a, b
mov LEDBuf+2, a
mov LEDBUF+3,#12H
MOV LEDBUF+4,#13H
RET
ReadAD:
mov dptr, #ADPort
clr a
movx @dptr, a ; start A/D
WAIT: JNB P3.3,WAIT
MOVX A,@DPTR ; 读入结果
ret
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
ReadTemp:
ACALL ReadAD
mov b, #200 ;(HighTemp-LowTemp)
mul ab
mov a, b ; /256
add a, #LowTemp
mov CurTemp, a
ret
DELAY:MOV R4,#0FFH
AA1: MOV R5,#0FFH
AA: NOP
NOP
DJNZ R5,AA
DJNZ R4,AA1
RET
Start: ACALL ReadTemp
ACALL DisplayResult
ACALL DisplayLED
ACALL DELAY
Ljmp START
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -