单片机动态显示

单片机动态显示

ID:44360241

大小:343.00 KB

页数:26页

时间:2019-10-21

单片机动态显示_第1页
单片机动态显示_第2页
单片机动态显示_第3页
单片机动态显示_第4页
单片机动态显示_第5页
资源描述:

《单片机动态显示》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、显示键盘扫描一、显示程序设计二、键盘扫描程序的设计动态显示1.动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个I/O口完成字形码的输出(段码),另一I/0口完成各数码管的轮流点亮(位码)。2.在数码显示的时候,要对显示单元开辟6个显示缓冲区,采用一维数组。3.对于显示的字形码数据我们采用查表方法来完成,字形码放在一常数数组中。例:在用户板2上显示1234567SEG-MPX8-CA-BLUE共阳7SEG-MPX8-CC-BLUE共阴#includeconstunsigne

2、dcharseg[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};delay();main(){unsignedcharcout,t,i,a[6]={1,2,3,4,5,6};//{8,9,12,5,1}while(1){cout=0x20;for(i=0;i<6;i++){t=a[i];P0=seg[t];P2=cout;delay();cout=cout>>1;P0=0xff;//灭显示}}}delay(){unsignedchari=250;while(i--);}思考:若要显示89C51

3、字样,如何修改程序?常数数组bb[6]在刚才程序中没有用到,如要用的话,该数组作何用,程序又该如何修改?将上述显示程序改成子函数,在主函数中调用。思考题(1)程序清单#includeconstunsignedcharseg[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};constunsignedcharbb[6]={0x20,0x10,0x08,0x04,0x02,0x01};delay();main(){unsignedchart,i,a[5]={8,9,12,5,1};w

4、hile(1){for(i=0;i<5;i++){t=a[i];P0=seg[t];P2=bb[i];delay();P0=0xFF;//灭显示}}}delay(){unsignedchari=250;while(i--);}思考题(2)程序清单#includeconstunsignedcharseg[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};delay();display();main(){while(1)display();}display(){unsignedcha

5、rt,i,cout,a[6]={1,2,3,4,5,6};Cout=0x20;for(i=0;i<6;i++){t=a[i];P0=seg[t];P2=cout;delay();cout=cout>>1;P0=0xff;}}delay(){unsignedchari=250;while(i--);}三+1秒定时显示1.设计要求利用定时器中断方式,编制C51程序使目标板上数码管每1s加1,直至59s,再从0开始加。2.设计方法:主函数完成T0、中断的初始化,并不断调用显示程序;中断服务函数完成秒的加1和显示缓冲区的刷新。Main()At0()例2-4#incl

6、udeconstunsignedcharseg[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};unsignedcharcout=0,sec=0,time[2]={0};//全局变量,cout,中断次数,sec,秒单元变量,time[2]显示缓冲区Voiddisplay();//动态显示Voiddelay();//延时main(){TMOD=0X01;TH0=0X3C;TL0=0XB0;ET0=1;EA=1;TR0=1;while(1)display();}Voiddispla

7、y(){unsignedcharb=0x02,t,i;for(i=0;i<2;i++){t=time[i];P0=seg[t];P2=b;b=b>>1;delay();P0=0xff;}}Voiddelay(){unsignedchari=250;while(i--);}at0()interrupt1{TH0=0X3C;TL0=0XB0;cout++;if(cout==20){cout=0;sec++;if(sec==60)sec=0;time[0]=sec/10;time[1]=sec%10;}}思考题在用户板2上显示87654321实验将上述程序进行扩充

8、,改成在用户板上显示时分秒,即满60秒则分+1,满6

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。