MAX7219是一种串行接口的8位数码管显示驱动器。它与通用微处理器只有3根串行线相连,最多可驱动8个共阴数码管或64个发光二极管。它内部有可存储显示信息的8×8静态RAM,动态扫描电路,以及段、位驱动器。
它的特点有:串行接口的传输速率可达10MHz;独立的发光二极管段控制;译码与非译码两种显示方式可选;数字、模拟两种亮度控制方式;可以级联使用。
MAX7219的典型应用如图1所示。
2 MAX7219使用简介
MAX7219的内部功能框图如图2所示。
MAX7219的数据输入主要由三根输入线完成。
它们分别是串行数据线、时钟线与加载线。当1个16位的数据从高位到低位依次输入MAX7219后,在加载的上升沿将D7-D0送入对应的内部寄存器。
MAX7219的输入时序图如图3所示。
MAX7219的串行输入数据格式,高位字节的高4位保留,低4位为片内寄存器地址;低位字节为8位数据。
MAX7219的内部寄存器地址分配如表1所示。
此外,MAX7219的RSET值与段电流及LED的驱动电压有关,应按表2选择。(RSET是ISET端的外接电阻,单位kΩ)
为使MAX7219能够正常工作,必需在使用前对其进行初始化。MAX7219的软件初始化框图略。正常显示时的程序十分简单,只需向内部寄存器地址X1~X8H写入相应的显示值即可。
3 MAX7219在发射显示中的应用
随着新技术的不断运用,雷达的发射部分变得越来越复杂,需要指示的内容也越来越多。发射部分中相当数量的状态显示需要用到数码管和发光二极管等器件,但原先的电路使用的芯片多,驱动数码管与发光二极管的数量少,所以必需寻找一种集成度高,驱动能力强的芯片来取代原先的电路,MAX7219就是其中一个很好的选择。
图4就是MAX7219在目前发射显示中的一个应用实例。
在图5中,8位51单片机与MAX7219组成了一个数码管或发光二极管的显示系统。其中单片机的P1.0作为串行数据线,P1.1作为数据加载控制线,P1.2作为时钟线。由单片机向MAX7219输送信息的工作流程描述如下:
(1)将P1.1置“低”;
(2)将P1.0置成与“D15”相同的状态;
(3)将P1.2先置“低”,再置“高”,产生1个移位脉冲将“D15”移入MAX7219;
(4)重复过程(2)(3)将“D14~D0”移入MAX7219;
(5)将P1.1置“高”,将“D7~D0”送入MAX7219片内相应的寄存器。
过程(1)~(5)用软件实现非常方便,可以由专门的子程序来完成。此外,对MAX7219各控制寄存器和位寄存器赋值也可方便地由循环程序来完成。因为MAX7219有自动的动态刷新功能,所以赋值完毕后,单片机不必对它有其它的操作(如定时刷新),这就大大减轻了单片机的工作负担。
如果在实际工作中需要驱动的数码管个数大于8个,或需要驱动的发光二极管个数大于64个,可以用多片MAX7219的级连来实现,即将一片MAX7219的串行数据输出与下一片MAX7219的串行数据输入相连,时钟信号与加载信号多片复用,图6就是一个MAX7219级连驱动16个共阴数码管的例子。
4 结束语
经过多个产品的实际应用,证明MAX7219是一种非常好的共阴数码管及发光二极管显示驱动芯片。它与微处理器只有3根连线,印制板走线简单,占用系统软、硬件资源少。它适用范围广,通过改变RSET的阻值,可适用于驱动电压为1.5V~3.5V,驱动电流为10mA~40mA的所有发光二极管。它扩展能力强,可实现多片的级连。由于MAX7219具有较多优点,所以今后它的应用将越来越广泛。