单片机不存在消隐问题!
47okey朋友:“led数码动态显示需要消隐”这是你的led显示需要“消隐”,而不是单片机需要消隐,这是两回事。
另外,从一个总线口驱动多个七段led显示时,也不应该先送位选,而是应在关闭位选的情况下先送段码,然后再送位选,延时后先关闭位选,再换段码,再开位选。这不叫做消隐!!!
“消隐”一词来自显像管电视机的扫描显示,当电子束从屏幕的最左边扫到最右端,再返回下一行最左端是,为了防止在这个“返回”路程中经过屏幕而生产“回扫线”,就加了“行消隐”电路,在电子束返回时让驱动电路短暂截止。同样,还有“场消隐”也是这样。而led根本不存在这个问题。
单片机的led数码动态显示需要消隐。因为动态显示是利用
人眼的暂留效应来多位显示的。原理是其多位数码管的每位段码控制只由一个io口8
位输出,先位选
,送段码,延时(1~3ms),关位选
(这个就是消隐作用,如果没关,下一位的段码送出时,这一位也显示下一位的段码,这样就乱了)再下一位,重复上述过程。
数码管的操作规范,
首先,因为单片机是顺序执行的(每次执行一个指令),重影是应为在改变段选是,对应的位选针并未改变,导致在极短的时间内,某一位上出现了两个数字的重叠(微观上)。
这个问题在点阵屏中也会遇到,如何规避这个问题,其实很简单,我们建立一个操作数码管的规范即可。
规范:
对于某次的为刷新(在点阵屏里面是行或者是列刷新),我们遵从下面顺序
1、关显示
2、改变段选内容
3、开显示
显示的开关是通过位选制成相应位而成,比如在您的实例中,
位选=0xff
时为关显示,开显示则是打开对应位的通道(也就是说,位选移下下一位)
祝你好运,
这个方法基本能解决任何情况下的重影,
有时可能需要增加步奏4、延时