数码管动态显示原理?
发布网友
发布时间:2022-05-06 23:04
我来回答
共4个回答
热心网友
时间:2023-10-02 13:30
动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
热心网友
时间:2023-10-02 13:31
就拿8位8段共阴极数码管来说明
每一位都是将8个发光二极管(下面简称LED)的负极接在一块,就有8个负极,接上8个IO口,这个就是位选,相应IO口输出低电平算是选通该位。
相同字段LED的正极连在一起,也有八根线,接上8个IO口,这就是段选,相应IO口输出高电平算是选通该段。
一般情况下8个位选只有一个选通,8个段选如果是数字2,那么选通的那一位数码管就会显示2,其它位数码管都是黑的。延迟一段再熄灭它,再选通另一位显示在那一位该显示的数字,延迟一段再熄灭,如此循环,人眼有暂留效应,只要足够快人眼看起来就是几个数字稳定地显示在8位数码管上。
当然一般会在IO上接三极管,控制三极管饱和或者截止,那分析就稍微复杂一点。
热心网友
时间:2023-10-02 13:31
动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码。
但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮。
但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
热心网友
时间:2023-10-02 13:32
我先来帮你分析一下这个程序:
(1)到(4)的功能是由P0口给出数码管的段码。我猜想在P0口和数码管的段码线之间是一个锁存器,这样能够保证当P0口的数据变化之后,数码管的数字不变化。这时,数码管不能显示相应数字,因为位码线还没有被选中。
(5)到(8)的功能是由P0口给出数码管的位码。这时位码线被选中,在段码和位码的同时作用下,数码管被激活,显示shi对应的数字。
然后延时delay(5);
执行到时(10),由于P0给出了ge的段码,而位码还没改变,这时候当然要在第一个数码管上显示第二个数码管的内容。
执行到(14),位码改变,第二个数码管被选中,这时段码和位码共同作用,第二个数码管显示ge所对应的数字。
然后延时。
由于第一个数码管显示ge的时间很短,只有不到十个机器周期,而正常显示的时间很长,这个时间是delay(5),所以看不出ge曾经在第一个数码管上经过,所以看上去显示效果是对的。
这也就是为什么要加延时程序(8)和(16)。如果不加的话,第一个数码管会快速的在ge和shi之间进行“切换”,最后的结果是数码管一显示8,而数码管二正常显示,你可以试一下。
因此回答如下:
问题一:延时程序的目的是为了掩盖数码管一上的“切换”,给你的眼睛“错觉”。
问题二:没有讲究,是锁存器的锁存特性造成的,延时程序很好解决了这一问题。
楼上的回答很不准确,我不赞同。即使把13.14.15和9.10.11换一下,如果不加延时程序,问题同样存在,只不过成了数字shi经过数码管二而已。
郭天祥讲的时候,程序不是现成的,是当时现场写的,出现错误也是正常的。