8*8点阵如何驱动
8*8点阵是一种应用广泛的显示器件,像户外的显示屏、点阵屏都是由点阵拼接而成。而点阵其实是发光二极管LED的矩阵。在驱动点阵时,虽然具有专用的点阵驱动芯片,如MAX7219,但是该芯片价格比较高,所以应用并没有很普遍。而74HC595和74HC138的组合来驱动点阵应用却非常广泛。我在上学阶段,给公司有偿设计过户外点阵屏,使用的就是74HC595和74HC138。下面就介绍这种方案。点阵的实物图如下图所示。
8*8点阵,故名思意就是由8*8总共64个发光二极管所构成的点阵矩阵,每行每列各8各发光二极管,点阵在使用时也区分共阳型和共阴型。这里的共阳和共阴与数码管的共阳共阴稍有区别。这里的共阳和共阴其实是指行共阳和行共阴。行共阳,第一行的发光二极管阳极作为公共端连在一起;行共阴,第一行的发光二极管阴极作为公共端连在一起。如下图所示。
熟悉了8*8点阵的基本原理,就可以驱动点阵了,驱动点阵的过程,其实就是分时点亮/熄灭发光二极管的过程。以共阴型点阵为例,可以使用74HC595和74HC138来驱动。由于74HC138是低电平输出,所以用来驱动列,用74HC595来驱动行。其硬件原理图如下图所示。
74HC595只需要占用单片机的3个GPIO口即可,74HC138也占用3个GPIO口,所以使用6个GPIO口即可驱动一个8*8点阵。点阵的程序写起来也并不复杂,在显示文字或者图形时,一般都借助字模软件来取模。所谓取模的过程就是画点涂色的过程。比如要在8*8点阵中显示一个“热”字,则只需要将需要显示的地方图上颜色即可,而图了颜色的圆点就用1来表示,不涂就用0来表示,这样就可以取出“热”的字模,着就是取模的原理。
8*8点阵由于像素较少,所以显示的内容存在较大失真,如果想要像素高,就要扩展,点数越多,则像素越高。行用74HC595来级联,列用74HC138来级联。用四片8*8点阵级联成16*16点阵,级联方式如下图所示。
在扩展点阵时所遵循的原则就是行行相连,列列相连。上面两个行行相连,下面两个行行相连;左侧两个列列相连,右侧两个列列相连。这样就可以完成四片8*8点阵级联成16*16的点阵,总共需要两片74HC595用来控制行,和两片74HC138用来控制列。74HC595和74HC138是一种低成本的控制方案,两片芯片总共的价格大约为1.5元,而一片MAX7219就要5元,户外屏点阵众多,如果采用MAX7219无疑大大增加了成本。