📄 pinlvji.txt
字号:
ORG 0000H
LJMP START
ORG 001BH
LJMP SERVE
ORG 0030H
START:
MOV SP,#60H
MOV TMOD,#15H
MOV TH0,#00H
MOV TL0,#00H
MOV TH1,#3CH
MOV TL1,#0B0H
MOV R7,#20
MOV 46H,#30H;上限高位
MOV 45H,#00H;上限低位
MOV 48H,#00H;下限高位
MOV 47H,#10H;下限低位
SETB EA
SETB ET1
ORL TCON,#01010000B
HERE:LCALL TEST2
SJMP HERE
;*****中断服务程序*****
SERVE:
PUSH PSW ;保护现场
PUSH 40H
PUSH 41H
PUSH ACC
MOV TH1,#3CH
MOV TL1,#0B0H
DJNZ R7,CONTI;1S到?
MOV R7,#20
MOV 40H,TL0
MOV 41H,TH0
MOV TL0,#00H
MOV TH0,#00H
LCALL HEX_BCD ;进制转换
LCALL TEST;测试上下限
MOV 40H,42H ;数据送显存
MOV 41H,43H
LCALL DISPLAY ;LED显示
CONTI:POP ACC ;恢复现场
POP 41H
POP 40H
POP PSW
RETI
;******LED显示程序******
DISPLAY:
MOV DPTR,#TAB_LED
MOV R0,#40H
MOV R6,#2
D1:MOV R4,#2
MOV A,@R0
D0:ANL A,#0FH
MOVC A,@A+DPTR
MOV SCON,#0
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,@R0
SWAP A
DJNZ R4,D0
INC R0
DJNZ R6,D1
RET
;****十六进制-BCD码转换****
HEX_BCD:
MOV 42H,#0
MOV 43H,#0
MOV R4,#10H
LP3:MOV R0,#40H
MOV 30H,#02H;;
CLR C
LP1:MOV A,@R0
RLC A
MOV @R0,A
INC R0
DJNZ 30H,LP1
MOV R1,#42H
MOV 30H,#2
LP2:MOV A,@R1
ADDC A,@R1
DA A
MOV @R1,A
INC R1
DJNZ 30H,LP2
DJNZ R4,LP3
RET
;*******上下限测试*******
TEST:
SETB P1.4
TE0:MOV A,43H
SUBB A,48H
JC ALARM
MOV A,43H
CJNE A,48H,TE2
MOV A,42H
SUBB A,47H
JC ALARM
TE2:MOV A,43H
SUBB A,46H
JC DON
MOV A,43H
CJNE A,46H,ALARM
MOV A,42H
SUBB A,45H
JC DON
ALARM:CLR P1.4
DON:RET
;******键盘测试程序*******
TEST2:
LCALL READ
CLR C
JNB ACC.0,P0F
JNB ACC.1,P1F
JNB ACC.2,P2F
JNB ACC.3,P3F
JNB ACC.5,SHOWL
JNB ACC.6,SHOWH
AJMP TEND
P0F: ;HH
MOV A,46H
CJNE A,#50H,P0NXT
MOV 46,#0
AJMP TEND
P0NXT:ADD A,#1
DA A
MOV 46H,A
AJMP TEND
P1F: ;HL
MOV A,45H
ADD A,#10H
DA A
MOV 45H,A
AJMP TEND
P2F: ;LH
MOV A,48H
CJNE A,#30H,P2NXT
MOV 48H,#0
AJMP TEND
P2NXT:ADD A,#1H
DA A
MOV 48H,A
AJMP TEND
P3F: ;LL
MOV A,47H
ADD A,#10H
DA A
MOV 47H,A
AJMP TEND
SHOWL:
MOV 40H,47H
MOV 41H,48H
AJMP DSP
SHOWH:
MOV 40H,45H
MOV 41H,46H
DSP:LCALL DISPLAY
MOV R3,#50
DLAY:LCALL T12MS
DJNZ R3,DLAY
TEND:RET
;*******读键盘程序*******
READ:
MOV A,#0EFH ;保护P1.4
ORL P1,A
RP1:MOV A,P1
MOV 49H,A
CJNE A,#0EFH,CMP1
AJMP RP1
CMP1:MOV A,49H
CJNE A,#0FFH,KA
AJMP RP1
KA:ACALL T12MS
MOV A,P1
MOV 49H,A
CJNE A,#0EFH,CMP2
AJMP RP1
CMP2:MOV A,49H
CJNE A,#0FFH,KA2
AJMP RP1
KA2:MOV A,P1
PUSH A
RP2:MOV A,P1
MOV 49H,A
CJNE A,#0EFH,CMP3
AJMP TDL
CMP3:MOV A,49H
CJNE A,#0FFH,RP2
TDL:ACALL T12MS
MOV A,P1
MOV 49H,A
CJNE A,#0EFH,CMP4
AJMP REND
CMP4:MOV A,49H
CJNE A,#0FFH,RP2
REND:MOV A,P1
POP A
RET
;******12MS延时程序******
T12MS:
MOV R5,#18H
TM:MOV R4,#0FFH
TM6:DJNZ R4,TM6
DJNZ R5,TM
RET
;***********************
TAB_LED:
DB 0BBH,09H,0EAH,6BH
DB 59H,73H,0F3H,0BH
DB 0FBH,7BH,0DBH,0F1H
DB 0B2H,0E9H,0F2H,0D2H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -