数码管动态显示原理?
发布网友
发布时间:2022-04-13 17:16
我来回答
共6个回答
懂视网
时间:2022-04-13 21:38
数码管显示原理是:一个数码管有八段:A,B,C,D,E,F ,G,H即由八个发光二极管组成;发光二极管导通的方向是一定的(导通电压一般取为1.7V),这八个发光二极管的公共端有两种:可以分别接+5V(即为共阳极数码管)或接地(即为共阴极数码管)。
共阳极: 位选为高电平(即1)选中数码管, 各段选为低电平(即0接地时)选中各数码段,共阴极: 位选为低电平(即0)选中数码管, 各段选为高电平(即1接+5V时)选中各数码段。1位数码显示数字其实就是这8个发光二极管,哪个亮哪个不亮,从而达到显示数字的效果,亮和不亮无非就是0或1。以共阴极为例。的二进制数字为:00000110,转换为16进制为0x06。即段码为0X06时,这个数码管就能显示数字1了。以此类推就可以得出1-9的断码了。共阳极的原理也是如此,对共阴极的段码取反即可。8位数码管可以理解为8个1位数码管组成的,这就涉及到位码,你可以理解为位置,像第一位数码管,第二位数码管这样。以共阴极为例。位选为低电平(即0)时选中该数码管。
热心网友
时间:2022-04-13 19:02
动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
热心网友
时间:2022-04-13 20:37
就拿8位8段共阴极数码管来说明
每一位都是将8个发光二极管(下面简称LED)的负极接在一块,就有8个负极,接上8个IO口,这个就是位选,相应IO口输出低电平算是选通该位。
相同字段LED的正极连在一起,也有八根线,接上8个IO口,这就是段选,相应IO口输出高电平算是选通该段。
一般情况下8个位选只有一个选通,8个段选如果是数字2,那么选通的那一位数码管就会显示2,其它位数码管都是黑的。延迟一段再熄灭它,再选通另一位显示在那一位该显示的数字,延迟一段再熄灭,如此循环,人眼有暂留效应,只要足够快人眼看起来就是几个数字稳定地显示在8位数码管上。
当然一般会在IO上接三极管,控制三极管饱和或者截止,那分析就稍微复杂一点。
热心网友
时间:2022-04-13 22:28
动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码。
但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮。
但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
热心网友
时间:2022-04-14 00:36
我先来帮你分析一下这个程序:
(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经过数码管二而已。
郭天祥讲的时候,程序不是现成的,是当时现场写的,出现错误也是正常的。
热心网友
时间:2022-04-14 03:01
每位显示1~5ms,然后熄灭,再下一位。。。。
利用人眼的暂留效应,看起来就好像每位都显示的。
动态显示将各位的同名段连接在一起,每位的位控分别控制,这样,就比静态扫描省了不少的IO口。