七段LED(数码管)显示器如图9-6所示,它实际上是由8个发光二极管构成,其中7个发光二极管排列成“8”字形的笔画段,另一个发光二极管为圆点形状,安装在显示器的右下角作为小数点使用。通过发光二极管亮暗的不同组合,可显示出0~9的阿拉伯数字符号以及其他能由这些笔画段构成的各种字符。
图9-6 七段LED显示器
七段LED显示器的内部结构共有两种不同形式:一种是共阳极显示器,其内部电路如图9-7a所示,即8个发光二极管的正极全部连接在一起组成公共端,8个发光二极管的负极各自独立引出,使用时公共阳极接5V,这时负极接低电平的发光二极管就导通点亮,而接高电平的则不点亮;另一种是共阴极显示器,其内部电路如图9-7b所示,即8个发光二极管的负极全部连接在一起组成公共端,8个发光二极管的正极则各自独立引出,使用时公共阴极接地,这时正极接高电平的发光二极管就导通点亮,而接低电平的则不点亮。
图9-7 七段LED显示器的内部电路
实验中使用的89S51单片机,其P0~P3口具有20mA的电流输出能力,因此可直接驱动共阳极的七段LED显示器。
为了显示数字或符号,要为七段LED显示器提供代码,因为这些代码是为显示字形的,因此称为字形代码。7个发光二极管,再加上一个小数点位,共计8位代码,由一个数据字节提供,各数据位的对应关系见表9-5。
表9-5 七段LED显示器数据位的对应关系
七段LED显示器的字形(段)码见表9-6。
表9-6 七段LED显示器的字形(段)码(www.xing528.com)
在单片机应用系统中,七段LED显示器的显示方法有两种:静态显示法和动态扫描显示法。
(1)静态显示法 所谓静态显示,就是每一个显示器各笔画段都要独占有锁存功能的输出口线,CPU把欲显示的字形代码送到输出口上,就可以使显示器显示出所需的数字或符号,此后,即使CPU不再去访问它,显示的内容也不会消失(因为各笔画段接口具有锁存功能)。
静态显示法的优点是显示程序十分简单,显示亮度高;由于CPU不必经常扫描显示器,所以节约了CPU的工作时间。但静态显示法也有其缺点,主要是占用的I/O口线较多,硬件成本较高。所以静态显示法常用在显示器数目较少的应用系统中。
(2)动态扫描显示法 动态扫描显示法是单片机应用系统中最常用的显示方式之一。它是把所有七段数码显示器的8个笔画段a~h的各端互相并接在一起,并把它们接到字段输出口上。为了防止各个显示器同时显示相同的数字,各个显示器的公共端COM还要受到另一组信号控制,即把它们接到位输出口上。这样,一组七段LED数码显示器需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位显示器工作,称为位码。在这两组信号的控制下,可以一位一位地轮流点亮各个显示器显示各自的数码,以实现动态扫描显示。
在轮流点亮一遍的过程中,每位显示器点亮的时间是极为短暂的(1~5ms)。由于LED具有余辉特性以及人眼视觉的暂留效应,尽管各位显示器实际上是分时断续地显示,但只要适当选取扫描频率,给人眼的视觉印象就会是在连续稳定地显示,不会察觉有闪烁现象。动态扫描显示由于各个LED的字段线是并联使用的,因而大大简化了硬件电路。动态显示示意图如图9-8所示。
图9-8 动态显示示意图
在实际的单片机系统中,LED显示程序都是作为一个子程序供监控程序调用,因此各位显示器都扫过一遍之后,就返回监控程序。返回监控程序后,进行一些其他操作,再调用显示扫描程序,通过这种反复调用来实现七段LED显示器的动态扫描。
动态扫描显示接口电路虽然硬件简单,但在使用时必须反复调用显示子程序,若CPU要进行其他操作,那么显示子程序只能插入循环程序中,这往往束缚了CPU的工作,降低了CPU的工作效率。另外扫描显示电路中,显示器数目也不宜太多,一般在12个以内,否则会使人察觉出显示器在分时轮流显示。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。