📄 复合按键.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: MOVX @DPTR,A
JNB P3.3,WXZ
JB 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 DPTR,#TABLE
MOV A,#10
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
MOVX @DPTR,A
CLR P2.3
LCALL DEL
SETB P2.3
CLR P2.5
MOV A,33H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
MOVX @DPTR,A
CLR P2.2
LCALL DEL
SETB P2.2
MOV A,32H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
ANL A,#7FH
MOV DPTR,#0EFFFH
MOVX @DPTR,A
CLR P2.1
LCALL DEL
SETB P2.1
MOV A,31H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
MOVX @DPTR,A
CLR P2.0
LCALL DEL
SETB P2.0
RET
DISP1:MOV DPTR,#TABLE
MOV A,#10
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
MOVX @DPTR,A
CLR P2.3
LCALL DEL
SETB P2.3
CLR P2.5
MOV A,#0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
MOVX @DPTR,A
CLR P2.2
LCALL DEL
SETB P2.2
MOV A,41H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
ANL A,#7FH
MOV DPTR,#0EFFFH
MOVX @DPTR,A
CLR P2.1
LCALL DEL
SETB P2.1
MOV A,42H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
MOVX @DPTR,A
CLR P2.0
LCALL DEL
SETB P2.0
RET
DISP2:MOV DPTR,#TABLE
MOV A,#10
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
MOVX @DPTR,A
CLR P2.3
LCALL DEL
SETB P2.3
CLR P2.5
MOV A,#0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
MOVX @DPTR,A
CLR P2.2
LCALL DEL
SETB P2.2
MOV A,51H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
ANL A,#7FH
MOV DPTR,#0EFFFH
MOVX @DPTR,A
CLR P2.1
LCALL DEL
SETB P2.1
MOV A,52H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
MOVX @DPTR,A
CLR P2.0
LCALL DEL
SETB P2.0
RET
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ,0C6H
DEL:MOV R6,#10
DD2:MOV R7,#50
DD1:DJNZ R7,DD1
DJNZ R6,DD2
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -