数码管动态显示

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例程
在动态显示程序中,各个位的延时时间长 短是非常重要的,如果延时时间长,则会出
现闪烁现象;如果延时时间太短,则会出现
显示暗且有重影。
在这个实例中,我们需要多次调整延时的 时间,才能达到预期的效果,由此需要多次 用到延时语句: for(i=xxxx;i>0;i--) for(j=110;j>;j--);
在实际应用中,我们一般采用 动态显示的方式解决此问题。
所谓动态扫描显示即轮流向 各位数码管送出字形码和相应的 位选,利用发光管的余辉和人眼 视觉暂留作用,使人的感觉好像 各位数码管同时都在显示。
在编程时,需要输出段选和 位选信号,位选信号选中其中一 个数码管,然后输出段码,使该 数码管显示所需要的内容,延时 一段时间后,再选中另一个数码 管,再输出对应的段码,高速交 替。
在C语言中,对于一些需要重复使用的语句, 我们可以把它们写成一个不带参数的子函数,当主 函数中需要用到这些语句时可以直接调用这个子函 数: void delay() { for(i=xxxx;i>0;i--) for(j=110;j>;j--);
}
子函数的声明及调用 …… void delay(); void main() { ……. delay(); ……. } void delay() {
单片机协会
单片机协会
第三讲 数码管动态显示
在上一讲内容中我们学习了数 码管的静态显示方式,通过将数码 管的段选端并接到单片机的一个8位 I/O口即可实现单片机对多位数码管 的控制。在数码管的静态显示方式 中,我们可以看到,各位数码管显 示 的数字都相同。
数码管的静态显示
在实际应用中,我们更多 的时候需要让各位数码管显示 不同的内容。但所有数码管的 段选全部连接在一起,如何能 显示不同的内容呢?
}
#include<reg52.h> char code table[]={ 0x3f,0x06,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=table[1]; P2=0xfe; delay(n); P2=0xff; P0=table[2]; P2=0xfd; delay(n); P2=0xff; P0=table[3]; P2=0xfb; delay(n); P2=0xff; P0=table[4]; P2=0xf7; delay(n); P2=0xff; P0=table[5]; P2=0xef; delay(n); P2=0xff; P0=table[6]; P2=0xdf; delay(n); P2=0xff; } } void delay(int z) { int x,y; for(x=z;x>0;x--) for (y=110;y>0;y--) ;
例如需要显示数字“12”时,先输出位 选信号,选中第一个数码管,输出1 的段
码,延时一段时间后选中第二个数码管,
输出2 的段码。把上面的流程以一定的速
度循环执行就可以显示出“12”,由于交替
的速度非常快,人眼看到的就是连续的
“12”。
延时
延时wk.baidu.com
延时
减短延时的时间
延时
当延时的时间足够短 时,我们就能看到两 位数码管显示不同的 数字
相关文档
最新文档