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

电路原来是两个按键的(一个按键是按下后十位加1,一个是个位加1),用的是中断方式,想改成旁边的四个按键电路(一个按下后十位加1,一个是个位加1,一个十位减1,一个个位减1... 电路原来是两个按键的(一个按键是按下后十位加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
请大神帮忙改一下啊
展开
 我来答
做而论道
高能答主

2015-05-20 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
四个按键,定义如下:

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
;-----------------------------------
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式