基于51单片机智能按键控制8位共阴数码管显示数字设计14-390

14-390基于51单片机的按键控制8位数码管显示数字设计

产品功能描述:

本设计由SRC89C52单片机电路+12位数码管显示电路+按键电路+电源电路组成。

11个按键,K0-K10,3个4位共阴数码管横着排列,从左到右;

当按键按下K0时,12位数码管的第1位显示0;

当按键按下K1时,12位数码管的第2位显示1;

当按键按下K2时,12位数码管的第3位显示2;

当按键按下K3时,12位数码管的第4位显示3;

当按键按下K4时,12位数码管的第5位显示4;

当按键按下K5时,12位数码管的第6位显示5;

当按键按下K6时,12位数码管的第7位显示6;

当按键按下K7时,12位数码管的第8位显示7;

当按键按下K8时,12位数码管的第9位显示8;

当按键按下K9时,12位数码管的第10位显示9;

当按键按下K10时,12位数码管的第11位显示“-”。

3个数码管放在板子上面;其他的器件都全部放在背面!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个比较基础的嵌入式系统问题。我会尽力回答你的问题。 首先,你需要将两个按键51单片机的GPIO口相连,并在程序中对它们进行初始化。然后,在程序中使用中断来检测按键的状态,如果按键被按下,就执行相应的操作。 对于四位共阴数码管的显示,你可以使用一个循环来依次显示每一位数字。具体地,你可以将数字存储在一个数组中,然后在循环中调用一个函数来依次显示每一位数字。 针对你的问题,以下是一个简单的程序代码,可以让51单片机通过两个按键控制一个四位共阴数码管显示不同的字符,单片机开机显示2019: ```c #include <reg52.h> #define uchar unsigned char #define uint unsigned int sbit key1 = P3^2; sbit key2 = P3^3; uchar code table[] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71 }; uchar num[] = {2, 0, 1, 9}; uchar index = 0; void delay(uint z) { uint x, y; for(x = z; x > 0; x--) for(y = 110; y > 0; y--); } void display(uchar i) { P0 = table[i]; delay(100); P0 = 0x00; } void keyscan() { if(key1 == 0) { delay(10); if(key1 == 0) { index++; if(index >= 4) index = 0; while(!key1); } } if(key2 == 0) { delay(10); if(key2 == 0) { num[index]++; if(num[index] > 9) num[index] = 0; while(!key2); } } } void main() { uchar i; TMOD = 0x01; TH0 = 0xfc; TL0 = 0x67; ET0 = 1; TR0 = 1; while(1) { keyscan(); for(i = 0; i < 4; i++) { display(num[i]); } } } void timer0() interrupt 1 { TH0 = 0xfc; TL0 = 0x67; } ``` 这个程序中,我们使用了定时器中断来实现数码管的扫描。具体地,我们在主函数中不断循环调用 `display` 函数来显示数字。每次定时器中断发生时,我们就调用一次 `keyscan` 函数来检测按键的状态,如果按键被按下,就执行相应的操作。同时,我们在定时器中断处理函数中设置定时器的初值,以实现定时器的循环。 希望这个程序能够对你有所帮助。如果你还有其他问题,欢迎继续提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值