当前位置:首页 > 技术心得 > 正文内容

关于数码管动态扫描

xjtudll14年前 (2012-07-30)技术心得10840

大家知道驱动一个或者两三个数码管,如果单片机有足够的IO口,我们可以用静态显示,至于什么是静态显示(动态显示的基础),这里不做阐述。

但如果,或者假如我们要点亮8个数码管或者更多,而恰恰单片机IO口不够用的情况下(扩展IO口的不讲),这是就必须用到动态扫描的显示方式了。

什么是数码管动态扫描?所谓的数码管动态扫描,就是在静态显示的基础上,逐一点亮每个数码管,由于点亮的时间非常短暂,由于人眼暂留现象使得我们看到所有的数码管像被点亮一样。其中还有一点就是数码管熄灭后的余晖现象的关系。

那么,这又牵扯到一个问题了,什么是人眼暂留现象,我也码了一下解释,如下:

  (Visual staying phenomenon,duration of vision)
   人眼在观察景物时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称“后像”,视觉的这一现象则被称为“视觉暂留”。

     是光对视网膜所产生的视觉在光停止作用后,仍保留一段时间的现象,其具体应用是电影的拍摄和放映。原因是由视神经的反应速度造成的.其时值是二十四分之一秒。是动画、电影等视觉媒体形成和传播的根据。 视觉实际上是靠眼睛的晶状体成像,感光细胞感光,并且将光信号转换为神经电流,传回大脑引起人体视觉。感光细胞的感光是靠一些感光色素,感光色素的形成是需要一定时间的,这就形成了视觉暂停的机理。

   物体在快速运动时, 当人眼所看到的影像消失后,人眼仍能继续保留其影像0.1-0.4秒左右的图像,这种现象被称为视觉暂留现象。是人眼具有的一种性质。人眼观看物体时,成像于视网膜上,并由视神经输入人脑,感觉到物体的像。但当物体移去时,视神经对物体的印象不会立即消失,而要延续0.1 -0.4秒的时间,人眼的这种性质被称为“眼睛的视觉暂留”。

很简单,说白点,就是逐一显示数码管,根据图像在人眼的暂留时间0.1-0.4秒计算,如果要点亮10个数码管,那动态扫描的时间只要在0.1秒之内就可以看到全部点亮的数码管了。(这里以位来扫描,就是所有ABCDEFGH段并联做段选,留下每个数码管COM端做位选)

操作流程如下:

1.送数码管段码  2.打开位选(点亮数码管) 3.延时点亮(具体情况具体分析)   4.关闭位选(熄灭数码管) 接着就进行下一个数码管的显示了

也就是在某个时刻,只有一个数码管被点亮。当这个时间在人眼暂留现象的时间之内,人就能看到连续点亮的数码管了。

下面是本人做的一个实验效果,用来说明动态扫描问题。

这个是我将扫描时间片加到0.2秒的效果(也就是0.2*17=3.4秒钟扫完17个数码管)。而大家看到数码管全部亮,是因为将扫描时间片降低到0.0005秒(500微秒),由于人眼暂留现象,所以看到数码管全部亮了。

关于动态扫描的时间片问题,是的,这个问题非常关键。时间片也就是点亮一个数码管的时间,由于时间比较短,所以称为时间片。时间片对于点亮数码管的亮度有影响,也同时会影响整体动态扫描的时间,或许造成动态扫描闪烁也与此有关。

掌握适合的时间片,对于动态扫描的效果尤为重要。时间片过短,数码管太暗了。(至于为什么暗,这里可以想象一下PWM的方式,与PWM具有异曲同工之妙)。时间片太长,数码管就可能会闪烁。

经验分享:由于我扫的是17个数码管,在没有加数码管驱动芯片的情况下,全部扫描的时候很暗,逐个点亮的时候又正常了。所以如果超过8个(或者12个)数码管,建议使用专门的驱动芯片,或者采用段扫。

原文网址:http://www.jhmcu.com/index.php/digital-control-of-dynamic-scan/

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/239/

标签: 单片机
分享给朋友:

“关于数码管动态扫描” 的相关文章

QuartusII编译工程后显示资源消耗为零的原因

参考资料:http://www.eefocus.com/li_mengxiang/blog/11-04/208828_3da3b.html 近日,编译了一个CPLD工程,编译OK,无任何错误,但是显示资源消耗为0,这个显然是不正常的。 网上搜了一番,一般是两种原因: 1、qurtusII编译工程后显...

焊接的一些心得

这几天,不断的在焊接一些贴片元件,都是焊盘在IC底下,侧面看不到任何焊盘的IC,例如KXTE9,MMC2121。总结起来有以下几点要注意的地方 1、IC焊盘要与PCB上的焊盘对齐 这点实际上是说起来容易,做起来难。而实际上,只要焊盘对齐了,焊接就完成了80%。在实际操作中可以这样做 (1)画...

Keil得到C编译之后的汇编代码

Keil得到C编译之后的汇编代码

在Options for Target --> Listing标签页下 在C Compiler Listing: \*.lst部分中勾选Assembly Code,这样生成的LST文件中就会包含汇编源码了。 找到相应的lst文件,如图所示: 用记事本打开,里面就有汇编代码了...

C# 用NPOI操作读写2007版的excel错误

现象: 导出Excel2003正常,导出Excel2007莫名其妙的错误。 C#用NPOI操作读写类网上很多了,在此不重复。 我引用的dll:NPOI.dll,NPOI.OOXML.dll,NPOI.OpenXml4Net.dll, 解决方法:还需要引用ICSharpCode.SharpZipLib...

魅族Flyme7不显示logcat

魅族Flyme7不显示logcat

设置 -> 辅助功能 -> 开发者选项 -> Flyme扩展功能 -> 性能优化 -> 高级日志输出 -> 全部允许 没有开发者选项的先去系统设置里将开发者选项给点出来...

SQL计算两个日期间的所有月份(天数)列表

SQL计算两个日期间的所有月份(天数)列表

-SQL根据两个日期计算出中间所有的月份-- 方法一,利用SQL常量表master.dbo.spt_valuesSelect convert(varchar(10),DATEADD(mm,number,'2020-05-10' ),120) As 日期 From maste...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。