动态扫描,就是将LED点阵中的LED灯逐行轮流点亮,这样扫描就能实现多行(本设计是16行)的阴极共用一套驱动器。具体就本设计的点阵来说,就是把所有同1行的LED灯的阴极接在一起,把所有同1列的LED灯的阳极连在一起;首先将对应第一行LED亮灭的数据送出并锁存,然后选通第1行使其点亮一定的时间,然后熄灭;然后将第2行的数据送出并锁存,然后选通第2行使其点亮,并且点亮的时间和第一行的相同,然后熄灭;以此类推,第16行之后,又重新燃亮第1行,如此往复循环。当这样循环的频率超过一定值时(一般为24次每秒以上),由于人眼的视觉暂留原理,人们就可以看见显示屏上显示的稳定图形了。
1.2 传输方式的选择
利用动态扫描方式进行扫描时,每一行使用同一个驱动器,各行的同名列共同使用同一个驱动器。显示数据一般都是存储在单片机的存储器中,按字节的形式顺序排列,每个字节是8位数据。显示前必须把同一行中每列的数据都传输到与之对应的列驱动上去,这就出现了一个数据传输的问题。从控制电路到列驱动器的数据传输可以有并列方式和串行方式两种方式。很明显,在采用并行传输方式的时候,从控制电路到列驱动器的线路量很大,需要的驱动器数目太多[4]。如果当列数很多时,并行传输的方案是非常不可取的。
利用串行传输方式进行扫描时,控制电路只需要用一根信号线,将数据一位一位地传输到列驱动器,这种传输方式经济方面无疑是十分划算的。但是,串行传输的过程比较长,如果数据按照顺序一位一位地传送给列驱动器,必须当一行的全部列数据全部都传输到位之后,这一行的各列才可以并行地显示出来[5]。如此,对于每一行的显示就能分成列数据准备(传输)和列数据显示两部分。一般来说,对于串行传输而言,列数据的准备时间也许会很长,如果扫描周期确定的话,行显示的时间就有些不足了,以致有可能影响到发光二极管的亮度。
解决串行传输中列数据显示的时间和数据准备的矛盾问题,可以采用重叠处理的方式[6],即在显示某一行的各列数据的同一时间,传送下一列数据。为了能够实现重叠处理,列数据的显示需要具有所存功能。
1.3 确定方案
经过上述分析,可以总结出列驱动器电路应该具有的功能。对于列数据准备来说,它应该可以实现串入并出的移位功能;而对于列数据的显示来说,驱动器应具有并行锁存的功能[7]。这样,某一行已准备好的数据传入到并行锁存器进行显示时,串入并出移位寄存器就能准备下一行的列数据,而且不会影响到本行的显示。点阵显示电路的结构框图如图1.1所示。
1.4 总体框图
本设计使用AT89C51单片机设计点阵电子显示屏,并使用一些辅助电路,主要实现16*16LED显示屏对文字及简单图像的显示,扩展功能有实时时钟及实时温度采集,并通过LCD1602及LED点阵屏静态及滚动显示。另外,本设计还增加了复位电路,可以进行复位操作。
总体结构框图如图1.2所示。
图1.2 总体框架图
2. 系统硬件设计
硬件电路大致上可以分成单片机系统及外围电路、列驱动电路和行驱动电路以及LED点阵阵列3部分,用到的芯片有单片机AT89C51,4线-16线译码器74LS154,带锁存功能的串入并出移位寄存器74LS595。
2.1 单片机系统及外围电路
单片机采用AT89C51。系统采用频率为24MHz的晶振,以获得较高的刷新频率,使显示更稳定。单片价的串口与列驱动器相连,用来送显示数据。P2口低4位与行驱动器相连,送出行选信号,P3.0口则用来发送控制信号。P0.1-P0.7与LCD1602相连,P1口与按键电路相连,实现对电路的控制。 AT89C51单片机的汉字点阵显示系统设计+源程序+硬件电路图(2):http://www.751com.cn/zidonghua/lunwen_969.html