汇编语言51单片机怎么实现用KEY 1控制数码管上显示的数字加1 KEY2控制数码管上显示数字减1?

ORG0000HLJMPMAINORG0030HMAIN:MOVDPTR,#TABMOVR4,#00HCLRALCALLDISPADDLOOP:LCALLCK1LCALL... ORG 0000HLJMP MAINORG 0030HMAIN:MOV DPTR,#TAB MOV R4,#00H CLR A LCALL DISPADDLOOP: LCALL CK1 LCALL DISPADD SJMP LOOPCK1: JB P3.4,CK1 LCALL DS1MS JB P3.4,CK1 RETD1: MOV R4,#00HDISPADD: MOV A,R4 MOVC A,@ A+DPTR JZ D1 MOV P0,A SETB P2.6 CLR P2.6 MOV P0,#0FEH SETB P2.7 CLR P2.7 INC R4 LCALL DS1MSCK2: JNB P3.4,CK2 LCALL DS1MS JNB P3.4,CK2 RETDS1MS: MOV r1,#2DS1LO: MOV r2,#20DS2LO: MOV r3,#200 DJNZ r3,$ DJNZ r2,DS2LO DJNZ r1,DS1LO RETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,00HEND 展开
 我来答
无畏无知者

2021-04-11 · TA获得超过4.5万个赞
知道大有可为答主
回答量:2.1万
采纳率:86%
帮助的人:5168万
展开全部

原有key1为P3.4,添加个key2键为P3.5;

1、按你显示程序的逻辑,对TAB修改如下:

TAB:DB 00H,3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,00H

即数据的首尾为0(这是个标记而已),中间才是七段码 0--F 的显示数据;

2、对CK1、CK2键盘按下及松开程序做了修改;

3、显示程序也进行了修改,唯独延时程序不用修改;

代码如下:

MAIN:

  MOV DPTR,#TAB 

  MOV R4,#00H 

  MOV R5,#01H 

  CLR A 

  LCALL DISPLAY

LOOP: 

  LCALL KEYDOWN

  LCALL DISPLAY 

  SJMP LOOP


KEYDOWN:

  JB P3.4,CK11    ;key1没有按下则转到key2

  LCALL DS1MS    ;P3.4=0表示Key1按下

  JB P3.4,CK11    ;key1还不能松开

  MOV R5,#01H

  INC R4      ;key1按下为加

  RET

CK11:

  JB P3.5,KEYDOWN   ;key2没有按下则转到key1

  LCALL DS1MS     ;P3.5=0表示Key2按下

  JB P3.4,KEYDOWN   ;key2还不能松开

  MOV R5,#10H

  DEC R4       ;key2按下为减

  RET


D1::

  MOV R4,R5

DISPLAY:

  MOV A,R4 

  MOVC A,@A+DPTR 

  JZ D1 //累加器(A)=0转

  MOV P0,A 

  SETB P2.6 

  CLR P2.6 

  MOV P0,#0FEH 

  SETB P2.7 

  CLR P2.7 

  LCALL DS1MS   ;延时

  LCALL KEYUP

  RET


KEYUP:

  JNB P3.4,KEYUP    ;P3.4=0转

  JNB P3.5,KEYUP    ;等待松开按键

  LCALL DS1MS 

  JNB P3.4,KEYUP

  JNB P3.5,KEYUP

  RET 


TAB:DB 00H,3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,00H


END

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式