📄 移位复合按键.asm
字号:
ORG 0000H
LJMP MAIN
ORG 0020H
MAIN:MOV 40H,#35
MOV 50H,#23
MOV 39H,#0
MOV 70H,#10
START:MOV 30H,#0
MOV R2,#0
MOV R3,#128
CLR P1.0
LCALL ADC
LCALL ZH
LCALL DISP
LCALL DEL
;**********按键次数的判断*********
JNB P3.3,WXZ
D0:MOV A,39H
CJNE A,#0,D3
LJMP START
D3:MOV A,39H
CJNE A,#01H,D1
LJMP SD
D1:CJNE A,#02H,D2
LJMP SD1
D2:MOV 39H,#00H
LCALL ADC
LCALL ZH
LCALL DISP
LCALL BJ
LJMP START
;-----------报警程序----------
BJ: MOV A,30H
CLR C
SUBB A,40H
JNC BAOJING
MOV A,30H
CLR C
SUBB A,50H
JC BAOJING
LJMP FH
BAOJING:CLR P1.4
MOV A,30H
LCALL ZH
LCALL DISP
LCALL DEL
DJNZ 70H,BAOJING
SETB P1.4
MOV 70H,#10
FH: RET
;********位选择*********
WXZ:LCALL DEL
JNB P3.3,WXZ
INC 39H
LJMP D0
;**********设定********
SD:SETB P1.4
JNB P3.4,JIA
JNB P3.5,JIAN
JNB P3.3,WXZ
LCALL ZH1
LCALL DISP1
AJMP D0
SD1: SETB P1.4
JNB P3.4,JIA1
JNB P3.5,JIAN1
JNB P3.3,WXZ
LCALL ZH2
LCALL DISP2
AJMP D0
;********0804正常工作**********
ADC: JNB P3.2,$
MOVX A,@DPTR
CLR C
ADD A,R2
MOV R2,A
CLR A
RLC A
ADD A,30H
MOV 30H,A
DJNZ R3,ADC
MOV A,30H
RET
;--------ZHENGCHANG转换程序--------
ZH:MOV B,#10
DIV AB
MOV 32H,B
MOV 31H,A
MOV A,R2
MOV B,#10
MUL AB
MOV 33H,B
RET
;--------SHANGXIAN转换程序--------
ZH1:MOV A,40H
MOV B,#10
DIV AB
MOV 41H,B
MOV 42H,A
RET
;--------XIAXIAN转换程序--------
ZH2:MOV A,50H
MOV B,#10
DIV AB
MOV 51H,B
MOV 52H,A
RET
;********SHANGXIAN加程序*****
JIA:LCALL DISP1
JNB P3.4,JIA
INC 40H
LCALL ZH1
LJMP SD
;********SHANGXIAN减程序*****
JIAN:LCALL DISP1
JNB P3.5,JIAN
DEC 40H
LCALL ZH1
LJMP SD
;********XIAXIAN加程序*****
JIA1:LCALL DISP2
JNB P3.4,JIA1
INC 50H
LCALL ZH2
LJMP SD1
;********XIAXIAN减程序*****
JIAN1:LCALL DISP2
JNB P3.5,JIAN1
DEC 50H
LCALL ZH2
LJMP SD1
DISP:MOV R0,#0FEH
MOV R1,#31H
MOV 34H,#10
D00:MOV A,R0
MOV P2,A
JNB ACC.1,D20
LJMP D10
D20:MOV DPTR,#TABDIP
LJMP D40
D10: MOV DPTR,#TAB
D40: MOV A,@R1
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
MOVX @DPTR,A
CLR P2.5
LCALL DEL
INC R1
MOV A,R0
RL A
MOV R0,A
JNB ACC.4,MAI
LJMP D00
MAI:RET
DISP1:MOV R0,#0FEH
MOV R1,#41H
MOV 43H,#0
MOV 44H,#10
D01: MOV A,R0
MOV P2,A
JNB ACC.1,D21
LJMP D11
D21:MOV DPTR,#TABDIP
LJMP D41
D11: MOV DPTR,#TAB
D41: MOV A,@R1
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
MOVX @DPTR,A
CLR P2.5
LCALL DEL
INC R1
MOV A,R0
RL A
MOV R0,A
JNB ACC.4,MAI1
LJMP D01
MAI1:RET
DISP2:MOV R0,#0FEH
MOV R1,#50H
MOV 53H,#0
MOV 54H,#10
D02: MOV A,R0
MOV P2,A
CLR P2.5
JNB ACC.1,D22
LJMP D12
D22:MOV DPTR,#TABDIP
LJMP D42
D12: MOV DPTR,#TAB
D42: MOV A,@R1
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
MOVX @DPTR,A
LCALL DEL
SETB P2.5
INC R1
MOV A,R0
RL A
MOV R0,A
JNB ACC.4,MAI2
LJMP D02
MAI2:RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ,0C6H
TABDIP:DB 040H,079H,024H,030H,19H,12H,02H,78H,00H,10H
DEL:MOV R6,#50
DD2:MOV R7,#50
DD1:DJNZ R7,DD1
DJNZ R6,DD2
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -