对于图7-6所示电路,要占用4个8位VO口(或锁存器)。如 果数码管数目增多,则还需要增加O口的数目。在实际的系 统设计中,如果显示位数较少,可采用静态显示方式。但显示 位数较多时,为了降低成本,一般采用动态显示方式。 2.动态扫描显示方式 显示位数较多时,静态显示所占用的O口多,为节省VO 口与驱动电路的数目,常采用动态扫描显示方式。将所有LED 数码管显示器的段码线的相应段并联在一起,由一个8位O端 口控制,而各显示位的公共端分别由另一单独的O端口线控 制。 图7-7所示为一个4位8段LED数码管动态扫描显示电路的 26
对于图7-6所示电路,要占用4个8位I/O口(或锁存器)。如 果数码管数目增多,则还需要增加I/O口的数目。在实际的系 统设计中,如果显示位数较少,可采用静态显示方式。但显示 位数较多时,为了降低成本,一般采用动态显示方式。 2. 动态扫描显示方式 显示位数较多时,静态显示所占用的I/O口多,为节省I/O 口与驱动电路的数目,常采用动态扫描显示方式。将所有LED 数码管显示器的段码线的相应段并联在一起,由一个8位I/O端 口控制,而各显示位的公共端分别由另一单独的I/O端口线控 制。 图7-7所示为一个4位8段LED数码管动态扫描显示电路的 26
段码线 8 8位I/O(1 8/ dp 8/ dp8 adp 8 adp 位选线4位I/O(2) 图7-74位LED数码管动态显示示意图 27
图7-7 4位LED数码管动态显示示意图 27
示意图。其中单片机向O(1)端口发出欲显示字符的段码 ,而显示器的位点亮控制 使用VO(2)端口中的4位口线,来控制数码管公共端的电 平,每一时刻,只有1位位选线有效,即选中某一位显示,其 他各位位选线都无效,不显示。每隔一定时间逐位地轮流点 亮各数码管(扫描),由于数码管的余辉和人眼的“视觉暂 留”作用,只要控制好每位数码管点亮显示的时间和间隔, 则可造成“多位同时亮”的假象,达到4位同时显示的效果。 28
示意图。其中单片机向I/O(1)端口发出欲显示字符的段码 ,而显示器的位点亮控制 使用I/O(2)端口中的4位口线,来控制数码管公共端的电 平,每一时刻,只有1位位选线有效,即选中某一位显示,其 他各位位选线都无效,不显示。每隔一定时间逐位地轮流点 亮各数码管(扫描),由于数码管的余辉和人眼的“视觉暂 留”作用,只要控制好每位数码管点亮显示的时间和间隔, 则可造成“多位同时亮”的假象,达到4位同时显示的效果。 28
各位数码管轮流点亮的时间间隔(扫描间隔)应根据实际 情况而定。发光二极管从导通到发光有一定的延时,如果点 亮时间太短,发光太弱,人眼无法看清;时间太长,产生闪 烁现象,而且此时间越长,占用单片机时间也越多。另外, 显示位数增多,也将占用单片机的大量时间,因此动态显示 的实质是以执行程序的时间来换取O端口数目的减少。 为克服动态显示的弊病,可采用76.4小节介绍的专用的键 盘/显示器芯片,由芯片内部硬件扫描电路自动完成显示数据 的扫描刷新。 29
各位数码管轮流点亮的时间间隔(扫描间隔)应根据实际 情况而定。发光二极管从导通到发光有一定的延时,如果点 亮时间太短,发光太弱,人眼无法看清;时间太长,产生闪 烁现象,而且此时间越长,占用单片机时间也越多。另外, 显示位数增多,也将占用单片机的大量时间,因此动态显示 的实质是以执行程序的时间来换取I/O端口数目的减少。 为克服动态显示的弊病,可采用7.6.4小节介绍的专用的键 盘/显示器芯片,由芯片内部硬件扫描电路自动完成显示数据 的扫描刷新。 29
7.3.3LED数码管静态显示设计 【例7-4】用AT89S52设计一个2位LED数码管显示的“秒 表”,显示时间为00~99秒,每秒自动加1。原理电路如 图7-8所示。电路采用单片机的P2口、P3口分别控制两个LED 数码管作为“秒表”的时间显示。显示数字的段码采用查表方 法。“秒”计时产生采用软件延时的方法。 由本例可见,采用静态显示,需要一个数码管对应一个O端 口。当数码管的数目较多时,需要占用较多的O端口。但是软 件编程比较简单,只需向P2口、P3口输出显示数字的段码即可 ,且显示不闪烁。 参考程序如下: 30
7.3.3 LED数码管静态显示设计 【例7-4】 用AT89S52设计一个2位LED数码管显示的 “秒 表”, 显示时间为00~99秒,每秒自动加1。原理电路如 图7-8所示。电路采用单片机的P2口、P3口分别控制两个LED 数码管作为“秒表”的时间显示。显示数字的段码采用查表方 法。“秒”计时产生采用软件延时的方法。 由本例可见,采用静态显示,需要一个数码管对应一个I/O端 口。当数码管的数目较多时,需要占用较多的I/O端口。但是软 件编程比较简单,只需向P2口、P3口输出显示数字的段码即可 ,且显示不闪烁。 参考程序如下: 30