欢迎来到天天文库
浏览记录
ID:43653127
大小:313.39 KB
页数:3页
时间:2019-10-11
《利用按键操作数码管显示》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验功能:两位数码管显示功能。具体功能描述如下:数码管可以显示0-99两位数字,按一下加按键,数字加1;按一下减按键,数字减1。按下清零按键,数字清零。程序:/*-----------------------------------------------------------------------*该程序实现的是利用单片机实现两位数码管显示功能。具体功能描述如下:*数码管可以显示0-99两位数字,按一下加按键,数字加1;按一下减按键,数字减1*此外为了方便,还添加了一个清零按钮,按下清零按钮计数归零。*-------------------------------------------
2、----------------------------*/#include#defineuncharunsignedchar//宏定义#defineopen0#defineclose1voiddelayms(charm);//延时函数声明voiddisplay();//数码管显示函数声明sbitup=P2^2;//加一按钮sbitdown=P2^3;//减一按钮sbitclear=P2^4;//清零按钮sbitLedshi=P2^0;//十位数码管使能端sbitLedge=P2^1;//个位数码管使能端uncharLedCode[]={//数码管真值表0xc0,0xf9,0
3、xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};charcount=0;charge=0;charshi=0;voiddigitalTube(){if(clear==0){delayms(10);//按键消抖,是因为实际中按键刚刚被按下时电平抖动不稳定,延时10ms让电平稳定下来再次判断即可if(clear==0){count=0;}}while(clear==0){//松手检测display();}if(up==0){delayms(10);if(up==0){count++;if(count==100)count=0;}}while(up==0){//松手检
4、测display();}if(down==0){delayms(10);if(down==0){count--;if(count==(-1))count=99;}}while(down==0){display();}display();}voiddisplay(){//计算各数码管显示的数值ge=count%10;shi=count/10;//关闭数码管使能端,防止乱入Ledge=close;Ledshi=close;//轮流导通两位数码管P0=LedCode[ge];Ledge=open;//打开个位数码管delayms(1);Ledge=close;P0=LedCode[shi];Leds
5、hi=open;delayms(1);Ledshi=close;}voiddelayms(charm){//延时m毫秒chari,j;for(i=0;i
此文档下载收益归作者所有