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