对数码管动态扫描延时时间计算依据的思考

2022-10-25

近年, 电子产品高速发展, 生活中涌现出的电子产品不断趋于自动化、智能化。而实现自动化和智能化必不可少的就是随之一起发展的单片机或集成电路。然而客户要求实现的功能越多, 电路设计就越复杂, 同时要求单片机芯片的硬件资源也要丰富。但以AT89C51为例, 该芯片的I/O口共32个引脚, 只有在合理设计硬件电路及程序时才能达到单片机接口使用率的最大化。如设计一个多位数码管显示电路。若采用一个P口接一个数码管, 那么单片机最多只能接4个数码管。而采用多位数码管一体的元件, 则只占用一个数据接口, 通过计算并编写正确的延时子程序, 配合动态扫描程序则可实现显示多位数据的功能。

一、多位数码管简介

多位数码管与一位的数码管的编程方法有所不同, 一位数码管多数是采用静态显示的方法来编程, 也就是让数码管内部的相应段位恒定导通。多位数码管和一位数码管类似, 也有8个显示笔划及小数点对应的8个数据引脚, 使用的时候可直接和单片机的P口相连, 其余引脚为“位选端”控制引脚。多位数码管内部每位段码采用并联的形式连接。以PROTUS7.5版本的ISIS中元件库为例, 其库中包含有1位、2位、4位、6位和8位多位一体的数码管。此类数码管均需要动态扫描才能正确显示相应的数字。以六位一体的数码管为例。

二、动态扫描

动态扫描是针对多位数码管进行操作的一种显示方式。在其中一位被“打开”时, 传送相应的数据到”a, b, c, d, e, f, g, dp”则可显示需要的字符。如图1中6位的数码管, 若在第一只引脚给低电平, 那么给”a, b, c, d, e, f, g, dp”引脚相应的高电平则可在第一位显示需要的字符。经过简短的延时, 第一位数码管熄灭, 同时给第二只引脚低电平, 传送相应的数据到”a, b, c, d, e, f, g, dp”则可在第二位显示相应的字符。多位数码管的动态扫描显示方法就是以此类推实现的。当然其中, 最重要的则是各位数码管亮灭的间隔时间——延时。

三、延时程序

延时程序是动态扫描程序的关键部分, 如果延时时间计算不恰当, 延时子程序不准确, 则不能正确实现动态扫描的效果。导致的结果轻则出现数字、符号等的闪烁现象, 重则数码管显示不对出现乱码, 甚至会加重单片机的运行负担。可见延时子程序在数码管动态扫描中的地位之高。那么这个延时时间究竟应该为多长合适呢。为了使延时时间恰当, 避免因为延时时间不够产生闪烁现象, 特探讨多位数码管动态扫描延时程序的设计。

四、视觉暂留现象

视觉暂留, 其实就是视觉的暂短停留。当人眼看见一个物体时, 这个物体的像便成于视网膜上, 视网膜的感光细胞受到光的刺激后, 视神经通过生物电流将这种刺激传递给大脑, 大脑便会根据这种刺激产生一种知觉, 才能看见物体。当这个物体消失不在了的时候, 视神经对物体的印象并不会马上消失掉, 而是要延迟很短的时间才会消失。这种现象就叫做视觉暂留现象, 也被称为人眼的惰性。对于动态扫描的数码管来说, 也是利用视觉的暂留现象来实现的, 其原理和电影放映原理一样。当多位的数码管相应的位被选通时, 该位显示相应的编码, 经过短暂的延时, 清除显示的数据, 接着关断该位, 依次循环点亮其余各位数码管。当循环点亮完其余所有的数码管延时时间之和小于视觉暂留的时间, 那么按位轮流点亮的数码管, 动态扫描时显示的字符则是连续的, 且不会出现闪烁现象及乱码等。

五、动态扫描延时程序设计

动态扫描延时子程序的设计, 主要解决因延时时间不当, 数码管产生的闪烁现象或显示乱码。视觉暂留的时间与光的强度、环境因素、视觉疲劳程度等有关, 暂留的时间长短与所受光刺激的强度、颜色及时间的长短等因素有关。一般视觉暂留的时间约为三十分之一到五分之一秒之间。说明在动态扫描中所有数码管轮流点亮一遍延时时间之和要小于三十分之一秒, 约33毫秒。以时钟频率为11.0592MHZ的单片机接6位数码管为例, 经过计算, 延时时间间隔约是5.5毫秒。用汇编语言编写延时5.5毫秒的子程序如下:

在实际程序设计中, 如果经验稍微丰富一点可以采取用定时器做精确延时, 这样可以减小因延时不够精确而产生的闪烁现象。在AT89C51开发板中, 动态扫描6位数码管, 利用该延时子程序, 经观察没有发现明显闪烁现象。实际运用中可能会适当增加或者减少数码管的位数, 如果增加或减少了数码管位数, 要正确计算延时时间则可用以下公式:

延时时间=0.033秒÷数码管位数

当数码管位数比较少的时候, 根据此公式计算出的数码管点亮时间间隔相对较长。当数码管位数比较多的时候, 每位数码管点亮时间间隔相对较小。为使单片机能无负担运行应正确设计延时子程序。或使用定时器进行精确延时来实现。

六、结论

数码管动态扫描是数码管应用中常用的一种编程方法, 在这种编程方法中延时时间的计算尤为重要, 正确选择每位数码管点亮的时间间隔, 不仅能消除闪烁现象, 正确显示相应的数据, 还不会造成系统阻塞, 影响实时性, 甚至使CPU的效率低下。

摘要:数码管作为数码显示器件, 在单片机应用电路中运用较为广泛, 如数字时钟等需要的数码管位数较多, 但单片机的I/O口有限, 这时就需要采用动态扫描的方式来进行设计。而在动态扫描中延时时间的确定则是一个非常重要的环节。

关键词:动态扫描,延时时间,计算

参考文献

[1] 樊勇.浅谈视觉暂留现象[J].初中生世界 (八年级物理) , 2011 (z6) , 59-60.

[2] 观察渗透理论与范围性网络 (http://blog.sina.com.cn/s/blog_a0aa75510102v0zr.html) .

[3] 冯凤.眼动交互在车载音乐应用中的设计研究[D].长沙:湖南大学硕, 2014.

上一篇:浅析建筑工程中的屋面防水施工技术下一篇:重庆市中职电子商务专业建设之我见