找回密码
 注册
关于网站域名变更的通知
查看: 202|回复: 3
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-9-29 09:59 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
昨天说的是数码管的静态显示,和静态显示对应的就是动态显示。什么是动态显示?
       先来考虑一个问题,用静态显示的方法驱动一位数码管用了多少资源?
一个锁存器控制段选,另一个锁存器的一个引脚控制位选。也就是9个引脚,如果用这种方式控制两位数码管要占用多少资源?18个引脚!8位数码管呢?不敢想了。所以要另一种方式来解决这个问题。于是就出现了动态显示的方法。
我不知道大家对于动态显示的原理是不是能透彻理解,先插播一个故事。我小的时候很爱玩,喜欢看动画片。当得知动画片里的人物动作发生的原理时,很兴奋,自己画了两个小人,一个笔直站立,另一个摆出踢腿的动作,然后叠在一起,两张纸片快速来回翻动,竟然就出现了动画的效果。这么高科技的玩具不知道你们谁玩过~~~
于是当我看到数码管动态显示的原理时,很自然就懂了。

4 y) R6 q- l4 b% p( z6 E
通常情况下,人眼识别图像的速度是24帧每秒,也就是说24帧/1000毫秒,平均一帧40毫秒左右。当你的刷新频率高于这个速度的时候,那些断断续续的图片就连贯成了动作。
说回到数码管上,这里有6位数码管,我想让它从左开始依次显示1、2、3、4、5、6,每次只亮一个,1秒更新一次,使用昨天的静态显示的方法,很简单吧。只需要定时更新段选编码以及位选引脚即可。
这样的效果就是它们循环点亮,如同流水灯那样。
在这个时候,如果我们不断减少更新时间,突破了人眼的识别速度,将会是什么视觉效果?六个数字同时点亮!这就是今天要做的。
上程序,在昨天的基础上进行修改。依然共阴极,依然用CH573锁存器,这次同时驱动6位数码管,显示123456.
! \  }9 P/ ~( E" U0 i* A
       首先,定义了table这个数组,通过查表的方式来查询对应的编码;其次,使用code的方式,把这个数组定义在ROM区,节约了51单片机RAM的资源。
       留个思考题,常说的数码管消隐是因为什么细节没处理好出现的问题?
) r( w" p$ {3 ~$ S. W& W% w0 X

该用户从未签到

2#
发表于 2022-9-29 10:58 | 只看该作者
数据传输
/ H3 J/ q: H, Z8 E' z1 r; o就是先打开位选,送入段选(就是拉高其他引脚)形成数字码,在关闭这个位选,打开下一个位选。) K5 D, M# l) L6 o( t- u! h
由于程序运行速度快,我们人眼看到每个数码管都在显示不同数字。就这么实现动态显示的。

该用户从未签到

3#
发表于 2022-9-29 11:16 | 只看该作者
利用了发光管的余晖和人眼视觉暂留,使人感觉到,好像数码管的各位数码管,同时都在显示。

该用户从未签到

4#
发表于 2022-9-29 13:43 | 只看该作者
1.利用延时达到减缓的效果。2.重置段选代码。可以做到数码管消影。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-5 11:39 , Processed in 0.078125 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表