80c51单片机用汇编语言4个独立按键如何分别控制4个数码管从0到9到0变化的编程

元件:四个按键s1,s2,s3,s4,一个四位数码管1,2,3,4。要求:s1控制1,s2控制2,s3控制3,s4控制4上电时4个数码管显示0000,但按下s1一下时4个... 元件:四个按键s1,s2,s3,s4,一个四位数码管1,2,3,4。
要求:s1控制1,s2控制2,s3控制3,s4控制4
上电时4个数码管显示0000,但按下s1一下时4个数码管显示1000(就是说按s1,1数码管就会变化,其他三位数码管不变但显示原数字);按s2一下,数码管显示1100;
s2按到9下时显示1900;再按一下s2,数码管又变成1000(就是说一位数码管只是0到9到0变化)
这要怎么编程?汇编语言
展开
 我来答
lycdl
高粉答主

2018-11-18 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2万
采纳率:94%
帮助的人:4940万
展开全部

你这没有给出原理图,数码管和按键是怎么接的?是仿真实现吗,下图是仿真图,用了四位一体的共阴数码管,4个按键在P3.4~P3.7上。

仿真结果,你要是仿真,就按这个仿真图画,程序就完全适用。如果是实物开发板,就是根据开发板,适当修改程序了。

汇编程序如下

S1  BIT P3.4

S2  BIT P3.5

S3  BIT P3.6

S4  BIT P3.7

DISM1 EQU  31H

DISM2 EQU  32H

DISM3 EQU  33H

DISM4 EQU  34H

START:MOV  R0,#7FH

CLEAR:MOV  @R0,#0

DJNZ R0,CLEAR

MAINP:ACALL DISUP;主程序

TEST1:JB   S1,TEST2

ACALL DELK4

JB   S1,TEST2

INC  DISM1

MOV  A ,DISM1

CJNE A ,#10,CMPM1

CMPM1:JC   WAIT1

MOV  DISM1,#0

WAIT1:JNB  S1 ,$

AJMP MAINP

TEST2:JB   S2,TEST3

ACALL DELK4

JB   S2,TEST3

INC  DISM2

MOV  A ,DISM2

CJNE A ,#10,CMPM2

CMPM2:JC   WAIT2

MOV  DISM2,#0

WAIT2:JNB  S2 ,$

AJMP MAINP

TEST3:JB   S3,TEST4

ACALL DELK4

JB   S3,TEST4

INC  DISM3

MOV  A ,DISM3

CJNE A ,#10,CMPM3

CMPM3:JC   WAIT3

MOV  DISM3,#0

WAIT3:JNB  S3 ,$

AJMP MAINP

TEST4:JB   S4,MAINP

ACALL DELK4

JB   S4,MAINP

INC  DISM4

MOV  A ,DISM4

CJNE A ,#10,CMPM4

CMPM4:JC   WAIT4

MOV  DISM4,#0

WAIT4:JNB  S4 ,$

AJMP MAINP

DISUP:MOV DPTR,#TABLE;显示子程序

MOV R0  ,#DISM1

MOV R2  ,#0FEH

DISB1:MOV P2  ,R2

MOV A   ,@R0

MOVC A  ,@A+DPTR

MOV P0  ,A

MOV A   ,R2

RL  A

MOV R2  ,A

ACALL DELAY

INC R0

CJNE R0 ,#DISM4+1,DISB1

RET

DELK4:MOV  R6 ,#10

SJMP DELA1

DELAY:MOV  R6 ,#2

DELA1:MOV  R7 ,#150

DJNZ R7 ,$

DJNZ R6 ,DELA1

RET

TABLE:DB 3FH,06H,5BH,4FH,66H;共阴段码表

DB 6DH,7DH,07H,7FH,6FH

END

更多追问追答
追答
请采纳!
追问
这个可不可以改成共阳断码表的
百度网友d7f7f4ab3
2018-11-23 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:176
采纳率:66%
帮助的人:31.3万
展开全部
还在用汇编的不是学校的学生就是玩嵌入式的高手
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式