MAX7219
电子元件7219
MAX7219
MAX7219是一个采用3线串行接口的8位共阴极7段LED显示驱动器。本文分析了MAX7219各个寄存器的功能,并结合MAX7219的工作时序,给出了
MAX7219在Motorola MC68HC908单片机系统中的一个应用实例。
MAX7219是一个高性能的多位LED显示驱动器,可同时驱动8位共阴极LED或64个独立的LED。其内部结构框图如图1所示,主要包括移位寄存器、控制寄存器、译码器、数位与段驱动器以及亮度调节和多路扫描电路等。
MAX7219采用串行接口方式,只需LOAD、DIN、CLK三个管脚便可实现数据传送。DIN管脚上的16位串行数据包不受LOAD状态的影响,在每个CLK的上升沿被移入到内部16位移位寄存器中。然后,在LOAD的上升沿数据被锁存到数字或控制寄存器中。LOAD必须在第16个时钟上降沿或之后,但在下一个时钟上升沿之前变高,否则数据将会丢失。DIN端的数据通过移位寄存器传送,并在16.5个时钟周期后出现在DOUT端,随CLK的下降沿输出。MAX7219的操作时序如图2所示。
MAX7219的串行数据标记为D15~D0,其中低8位表示显示数据本身,最高的4位D15~D12未使用,寻址内部寄存器的地址位占用D11~D8,选择14个内部寄存器
MAX7219内部具有14个可寻址数字和控制寄存器。其中的8个数字寄存器由一个片内8×8双端口SRAM实现。它们可直接寻址,因此可对单个数进行更新并且通常只要V+超过2V数据就可保留下去。除8个数位寄存器之外,还有无操作、译码方式、亮度调整、扫描位数、睡眠模式和显示器测试6个控制寄存器。
无操作寄存器用于多片MAX7219级联,在不改变显示或不影响任意控制寄存器条件下,它允许数据从DIN传送到DOUT。
睡眠模式控制寄存器用于节省电源消耗,延长显示器的使用寿命。当睡眠模式控制寄存器控制字节中的最低位D0=0时,为睡眠模式;D0=1时,为正常操作模式。上电时所有的控制寄存器都复位,显示器都熄灭,芯片进入睡眠模式。睡眠模式下的各个寄存器保留原数据而不更新,消耗的电流少于250mA。
显示器测试寄存器有正常与测试两种设定模式,数据字节的D0位置0为正常模式,D0置1为测试模式。测试时以31/32或15/16的占空比扫描全部数位段,使得所有显示器的所有段以最大的亮度点亮。
译码方式控制寄存器可以设置每个数位工作于BCD译码方式,或者非译码方式,控制字节的8位正好对应8个数位,该位为1表示该数位工作于BCD码方式,为0表示该数位工作于非译码方式。当采用代码BCD译码方式时,对10个数字“0~9”和5个字符“-,E,H,L,P”,译码器仅针对数字寄存器中数据的低四位D3~D0,而不考虑D6~D4位。设置小数点(SEG DP)的D7与编码方式,点亮时,D7置"1",熄灭时,D7置“0”即可。表2是BCD码的字符编码。
当选择不译码方式时,数据位D7~D0对应于LED的段线如图3所示。
显示器的亮度可以通过模拟与数字两种方式进行调整,模拟方式是在Vcc与ISET


