数码管动态显示

上传人:wm****3 文档编号:54137040 上传时间:2018-09-08 格式:PPT 页数:18 大小:610KB
返回 下载 相关 举报
数码管动态显示_第1页
第1页 / 共18页
数码管动态显示_第2页
第2页 / 共18页
数码管动态显示_第3页
第3页 / 共18页
数码管动态显示_第4页
第4页 / 共18页
数码管动态显示_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《数码管动态显示》由会员分享,可在线阅读,更多相关《数码管动态显示(18页珍藏版)》请在金锄头文库上搜索。

1、单片机协会,第三讲 数码管动态显示,单片机协会,在上一讲内容中我们学习了数码管的静态显示方式,通过将数码管的段选端并接到单片机的一个8位I/O口即可实现单片机对多位数码管的控制。在数码管的静态显示方式中,我们可以看到,各位数码管显示 的数字都相同。,数码管的静态显示,在实际应用中,我们更多的时候需要让各位数码管显示不同的内容。但所有数码管的段选全部连接在一起,如何能显示不同的内容呢?,在实际应用中,我们一般采用动态显示的方式解决此问题。,所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。,在编程时,需要输出段选和

2、位选信号,位选信号选中其中一个数码管,然后输出段码,使该数码管显示所需要的内容,延时一段时间后,再选中另一个数码管,再输出对应的段码,高速交替。,例如需要显示数字“12”时,先输出位选信号,选中第一个数码管,输出1 的段码,延时一段时间后选中第二个数码管,输出2 的段码。把上面的流程以一定的速度循环执行就可以显示出“12”,由于交替的速度非常快,人眼看到的就是连续的“12”。,延时,延时,延时,当延时的时间足够短时,我们就能看到两位数码管显示不同的数字,延时,减短延时的时间,例程,在动态显示程序中,各个位的延时时间长 短是非常重要的,如果延时时间长,则会出 现闪烁现象;如果延时时间太短,则会出

3、现 显示暗且有重影。,在这个实例中,我们需要多次调整延时的时间,才能达到预期的效果,由此需要多次用到延时语句:for(i=xxxx;i0;i-)for(j=110;j;j-);,在C语言中,对于一些需要重复使用的语句,我们可以把它们写成一个不带参数的子函数,当主函数中需要用到这些语句时可以直接调用这个子函数 : void delay() for(i=xxxx;i0;i-)for(j=110;j;j-); ,子函数的声明及调用 void delay();void main() .delay();. void delay() ,#include char code table= 0x3f,0x06

4、,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71; void delay(int); int n=10; void main() P0=0x00;P2=0xff;while(1)P0=table1;P2=0xfe; delay(n);P2=0xff;P0=table2;P2=0xfd; delay(n);P2=0xff;P0=table3;P2=0xfb; delay(n);P2=0xff;P0=table4;P2=0xf7; delay(n);P2=0xff;P0=table5;P2=0xef; delay(n);P2=0xff;P0=table6;P2=0xdf; delay(n);P2=0xff; void delay(int z) int x,y;for(x=z;x0;x-)for (y=110;y0;y-) ;,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号