51单片机汇编语言编程独立按键

电路原来是两个按键的(一个按键是按下后十位加1,一个是个位加1),用的是中断方式,想改成旁边的四个按键电路(一个按下后十位加1,一个是个位加1,一个十位减1,一个个位减1),不一定要中断实现,单片机可用的I/O口也只剩P2和P3的一些剩余I/O(如上图)
两个按键的程序如下:
/****************中断程序,按键设定温度模块*********************/
ZINT0: PUSH ACC
INC 75H
MOV A,76H
CJNE A,#10,L1
MOV A,75H
CJNE A,#10,ZINT01
MOV 75H,#0
L1: MOV A,75H
CJNE A,#10,ZINT01
MOV 75H,#0
ZINT01:POP ACC
RETI
ZINT1: PUSH ACC
INC 76H
MOV A,76H
CJNE A,#10,ZINT11
MOV 76H,#0
ZINT11:POP ACC
RETI
ZZZ1: MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
RETI
END
请大神帮忙改一下啊

四个按键,定义如下:

KEY1 BIT P3.0
KEY2 BIT P3.1
KEY3 BIT P3.2
KEY4 BIT P3.3

按键处理程序:
;-----------------------------------
READ_KEY:

JB KEY1, K2
CALL DELAY
JB KEY1, K2
JNB KEY1, $

PUSH ACC
INC 75H
MOV A, 75H
CJNE A, #10, ZINT01
MOV 75H, #0
ZINT01:
POP ACC

JMP K_EXIT
;---------------
K2: JB KEY2, K3
CALL DELAY
JB KEY2, K3
JNB KEY2, $

PUSH ACC
INC 76H
MOV A, 76H
CJNE A, #10, ZINT01
MOV 76H, #0
ZINT01:
POP ACC

JMP K_EXIT
;---------------
K3: JB KEY3, K4
CALL DELAY
JB KEY3, K4
JNB KEY3, $

PUSH ACC
DEC 75H
MOV A, 75H
CJNE A, #255, ZINT03
MOV 75H, #9
ZINT03:
POP ACC

JMP K_EXIT
;---------------
K4: JB KEY4, K_EXIT
CALL DELAY
JB KEY4, K_EXIT
JNB KEY4, $

PUSH ACC
DEC 76H
MOV A, 76H
CJNE A, #255, ZINT04
MOV 76H, #9
ZINT04:
POP ACC

K_EXIT:
RET
;---------------
DELAY:
DJNZ R7, $
DJNZ R7, $
RET
;-----------------------------------
温馨提示:答案为网友推荐,仅供参考
相似回答