单片机按键控制数码管c语言程序,电子小制作单片机最小系统按键控制数码管显示原理图及程序...

电子小制作单片机最小系统按键控制数码管显示原理图及程序

单片机最小系统_按键控制数码管显示,这个项目,主要学习单片机的键盘工作原理与显示方面的知识,电子小制作的好课题。键盘电路作为单片机的输入部分,数码显示电路作为单片机的输出部分,由键盘电路通过单片机控制数码管显示电路的八路键控数码管电路。按下S0到S7号按键时,数码管显示立刻显示数字0到7。电子制作的好课题下面是单片机最小系统_按键控制数码管显示原理图,实作时,按原理图焊好电路,单片机中写入程序。

d40c23da26c832cb5274dad7c65cca4d.png

ORG 0000H ;随后的指令代码从0000H单元开始存放。

LJMP START ;转到标号START处

ORG 0030H ;随后的指令代码从0030H单元开始存放。

START:MOV P0,#00H ;关闭数码管,不显示任何内容。

SAOMIAO:MOV P2,#0FFH ;对P2口所有位写1,也就是处于读状态,确保读数正确。

CLR A ;对累加器A清零。

MOV A,P2 ;第一次读取P2口的数据,并送入累加器A中。

CPL A ;对A按位取反,如果没有键按下, A为00H,如果有键按下,相应的位为1。

JZ SAOMIAO ;如果A=00H,说明没有键按下,跳到标号SAOMIAO处继续扫描。如果A不等于00H,说明有键按下,应该调用10MS的延时去抖子程序。

LCALL DELAY10MS ;调用10MS的延时去抖子程序。

MOV A,P2 ;第二次读取P2口的数据,并送入累加器A中。

CPL A ;对A按位取反,如果没有键按下, A为00H,如果有键按下,相应的位为1。

JZ SAOMIAO ;如果A=00H,说明没有键按下,跳到标号SAOMIAO处继续扫描。如果A不等于00H,说明确实有键按下,顺序执行下面的程序,判断是哪个键按下了。

JB ACC.0,SZ0 ;如果S0键按下,则ACC.0=1,转去执行显示数字0,否则顺序执行。

JB ACC.1,SZ1 ;如果S1键按下,则ACC.1=1,转去执行显示数字1,否则顺序执行。

JB ACC.2,SZ 2 ;如果S2键按下,则ACC.2=1,转去执行显示数字2,否则顺序执行。

JB ACC.3,SZ 3 ;如果S3键按下,则ACC.3=1,转去执行显示数字3,否则顺序执行。

JB ACC.4,SZ 4 ;如果S4键按下,则ACC.4=1,转去执行显示数字4,否则顺序执行。

JB ACC.5,SZ 5 ;如果S5键按下,则ACC.5=1,转去执行显示数字5,否则顺序执行。

JB ACC.6,SZ 6 ;如果S6键按下,则ACC.6=1,转去执行显示数字6,否则顺序执行。

JB ACC.7,SZ 7 ;如果S7键按下,则ACC.7=1,转去执行显示数字7,否则顺序执行。

LJMP SAOMIAO;跳转到SAOMIAO处继续扫描。

SZ0:MOV P0,#3FH ;显示数字0。

LJMP SAOMIAO;跳转到SAOMIAO处继续扫描按键。

SZ1:MOV P0,#06H ;显示数字1。

LJMP SAOMIAO;跳转到SAOMIAO处继续扫描按键。

SZ2:MOV P0,#5BH ;显示数字2。

LJMP SAOMIAO;跳转到SAOMIAO处继续扫描按键。

SZ3:MOV P0,#4FH ;显示数字3。

LJMP SAOMIAO;跳转到SAOMIAO处继续扫描按键。

SZ4:MOV P0,#66H ;显示数字4。

LJMP SAOMIAO;跳转到SAOMIAO处继续扫描按键。

SZ5:MOV P0,#6DH ;显示数字5。

LJMP SAOMIAO;跳转到SAOMIAO处继续扫描按键。

SZ6:MOV P0,#7DH ;显示数字6。

LJMP SAOMIAO;跳转到SAOMIAO处继续扫描按键。

SZ7:MOV P0,#07H ;显示数字7。

LJMP SAOMIAO;跳转到SAOMIAO处继续扫描按键。

DELAY10MS:MOV R7,#20 ;从本行开始,到RET结束,为10MS延时去抖子程序。

D1:MOV R6,#250

D2:DJNZ R6,D2

DJNZ R7,D1

RET

END

电子制作的好课题单片机最小系统_按键控制数码管显示,这个项目,主要学习单片机的键盘工作原理与显示方面的知识。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值