学51单片机-数码管的动态显示

发布者:心语乐章最新更新时间:2020-07-22 来源: 51hei关键字:51单片机  数码管  动态显示 手机看文章 扫描二维码
随时随地手机看文章

昨天说的是数码管的静态显示,和静态显示对应的就是动态显示。什么是动态显示?


先来考虑一个问题,用静态显示的方法驱动一位数码管用了多少资源?


一个锁存器控制段选,另一个锁存器的一个引脚控制位选。也就是9个引脚,如果用这种方式控制两位数码管要占用多少资源?18个引脚!8位数码管呢?不敢想了。所以要另一种方式来解决这个问题。于是就出现了动态显示的方法。


我不知道大家对于动态显示的原理是不是能透彻理解,先插播一个故事。我小的时候很爱玩,喜欢看动画片(海尔兄弟)。当得知动画片里的人物动作发生的原理时,很兴奋,自己画了两个小人,一个笔直站立,另一个摆出踢腿的动作,然后叠在一起,两张纸片快速来回翻动,竟然就出现了动画的效果。这么高科技的玩具不知道你们谁玩过~~~


于是当我看到数码管动态显示的原理时,很自然就懂了。

通常情况下,人眼识别图像的速度是24帧每秒,也就是说24帧/1000毫秒,平均一帧40毫秒左右。当你的刷新频率高于这个速度的时候,那些断断续续的图片就连贯成了动作。


说回到数码管上,这里有6位数码管,我想让它从左开始依次显示1、2、3、4、5、6,每次只亮一个,1秒更新一次,使用昨天的静态显示的方法,很简单吧。只需要定时更新段选编码以及位选引脚即可。


这样的效果就是它们循环点亮,如同流水灯那样。


在这个时候,如果我们不断减少更新时间,突破了人眼的识别速度,将会是什么视觉效果?六个数字同时点亮!这就是今天要做的。


上程序,在昨天的基础上进行修改。依然共阴极,依然用CH573锁存器,这次同时驱动6位数码管,显示123456.

首先,定义了table这个数组,通过查表的方式来查询对应的编码;其次,使用code的方式,把这个数组定义在ROM区,节约了51单片机RAM的资源。

留个思考题,常说的数码管消隐是因为什么细节没处理好出现的问题?

关键字:51单片机  数码管  动态显示 引用地址:学51单片机-数码管的动态显示

上一篇:学51单片机-搞定矩阵键盘
下一篇:51单片机-数码管静态显示

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved