
1、首先数码管分为1位,4位,8位,4位和8位的又分为共阴和共阳数码管。
2、共阳数码管,即阳极全部连接在一起,单片机接口给低电位即可点亮对应的段位。
3、可利用MCS-51系列单片机的芯片AT89C52的P34,P35,P36,P37进行计时并在数码管上显示时间,作为按键的入口。
4、共阴数码管,即阴极全部连接在一起,单片机接口给高电位即可点亮对应的段位。
5、其中“开始”按键当开关由上向下拨时开始计时,此时若再拨“开始”按键则数码管暂停;“清零”按键当开关由上向下拨时数码管清零,此时若再拨“开始”按键则又可重新开始计时。
1、新建项目,做好准备。
2、数码管段选表。
3、延时函数。
4、uchar i; 变量i;wk = 1;打开位选,P0 = 0xf7;1111 0111第4位数码管显示,wk = 0;关闭位选。
5、while(1) //死循环效果{} 。
6、dk = 1; //打开段选,P0 = leddata[i];,dk = 0; //关闭段选,delay(100);//延时效果。
7、选择效果,限制i值的循环范围。
51单片机(四位数码管的显示)程序基于单片机V1或V2实验系统,编写一个程序,实现以下功能:1)首先在数码管 上显示P ”个字符;2)等待按键,如按了任何一个键,则将这 4个字符清除, 改为显示0000”个字符(为数字的0)。E3最佳答案下面这个程序是4x4距阵键盘丄ED数码管显示,一共可以到0-F显示,你可以稍微改一下就可以实现你的功能了,如还有问题请发信息,希望能帮上你!#i nclude<at89x52h> un sig ned char codeDig[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //gongyang 数码管 0-F 代码
un sig ned char k;//设置全局变量k为键盘的键值键盘延时函数
//延时函数
void key_delay(void) {int t;for(t=0;t<500;t++);}
键盘扫描函数/
//键盘扫描函数
void keyscan(void)
{unsigned char a;P2 = 0xf0;if(P2!=0xf0){key_delay();if(P2!=0xf0){P2 = 0xfe; key_delay();a = P2;switch (a)
//键盘初始化//有键按下?//延时//确认真的有键按下?//使行线 P24 为低电平,其余行为高电平//a 作为缓存//开始执行行列扫描{case 0xee:k=15;break;case 0xde:k=11;break;case 0xbe:k=7;break;case 0x7e:k=3;break;default:P2 = 0xfd; //使行线 P25 为低电平,其余行为高电平a = P2;switch (a)
case 0xed:k=14;break;case 0xdd:k=10;break;case 0xbd:k=6;break;case 0x7d:k=2;break;default:P2 = 0xfb; //使行线 P26 为低电平,其余行为高电平a = P2;switch (a){case 0xeb:k=13;break;case 0xdb:k=9;break;case 0xbb:k=5;break;case 0x7b:k=1;break;default:P2 = 0xf7; //使行线P27为低电平,其余行为高电平a = P2;switch (a){case 0xe7:k=12;break;case 0xd7:k=8;break;case 0xb7:k=4;break;case 0x77:k=0;break;default:break;
}} break;}}}}
主函数
void main(void){while(1)
//调用键盘扫描函数//查找按键对应的数码管显示代码
{keyscan(); switch(k){case 0:P0=Dig[0];break;case 1:P0=Dig[1];break;case 2:P0=Dig[2];break;case 3:P0=Dig[3];break;case 4:P0=Dig[4];break;case 5:P0=Dig[5];break;
case 6:P0=Dig[6];break;case 7:P0=Dig[7];break;case 8:P0=Dig[8];break;case 9:P0=Dig[9];break;case 10:P0=Dig[10];break;case 11:P0=Dig[11];break;case 12:P0=Dig[12];break;case 13:P0=Dig[13];break;case 14:P0=Dig[14];break;case 15:P0=Dig[15];break; default:break; // 退出}}}
end
Welcome ToDownload !!!欢迎您的下载,资料仅供参考!
¥
59
百度文库VIP限时优惠现在开通,立享6亿+VIP内容
立即获取
51单片机(四位数码管的显示)程序[1]
51单片机(四位数码管的显示)程序
基于单片机V1或V2实验系统,编写一个程序,实现以下功能:1)首先在数码管 上显示P ”个字符;2)等待按键,如按了任何一个键,则将这 4个字符清除, 改为显示0000”个字符(为数字的0)。
E3最佳答案
下面这个程序是4x4距阵键盘丄ED数码管显示,一共可以到0-F显示,你可以稍微
改一下就可以实现你的功能了,如还有问题请发信息,希望能帮上你!
以上就是关于51单片机加74hc595驱动多个数码管静态显示的程序设计全部的内容,包括:51单片机加74hc595驱动多个数码管静态显示的程序设计、单片机用汇编写两个数码管显示0到99循环的程序、单片机四位数码管显示中间一行字母等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)