max7219

简介: MX7219是一个高集成化的串行输入/输出的共阴极LED驱动显示器。具有软件译码,硬件译码功能,单一数据能被寻址更新,可广泛用于工业控制,7段码LED矩阵显示。本文介绍了该驱动器的引脚功能,并给出应用实例。

    MAX7219 是一种高集成化的串行输入/输出共阴极显示驱动器, 可实现微处理器与7段码的接口, 可以显示8 位或64 位单一L ED 。芯片上包括BCD 码译码器、多位扫描电路、段驱动器、位驱动器、内含8 ×8 位静态RAM ,用于存放显示数据。只需外接一个电阻就可为所有的L ED 提供段电流。

   MAX7219 的三线串行接口适用于所有微处理器,单一位数据可被寻址和修正,无需重写整个显示器。MAX7219 具有软件译码和硬件译码两种功能, 软件译码是根据各段笔划与数据位的对应关系进行编码, 硬件译码采用BCD码(简称B 码) 译码。MAX7219 工作模式包括150μA 低压电源关闭模式、模拟数字亮度控制、限扫寄存器(允许用户从第1 位数字显示到第8 位) 及测试模式(点亮所有L ED) 。

1. 引脚功能和功能框图: MAX1279 引脚排列如图1 所示,

max7219 - medikstock - 蓝海

引脚功能如下:

      1          DIN 为串行数据输入端。当CLK为上升沿时,数据存入内部的16位寄存器

 13          CLK 为时钟输入端。其最大工作频率可达10 MHz。时钟上升沿是数据输入,时钟下降时数据从串行数据输出口输出
 12           LOAD 输入数据装载端,在装载的上升沿,串行输入的最后一个16位数据被锁存。 

  2,3,5-8,10,11    DIG0~DIG7 显示器位驱动线(8位)。
 14-17,21-23        SEGA~SEGG,DP显示段驱动线。

 24    DOUT 为串行数据输出端,通常直接接入下一片MAX7219的DIN端。

    4,9   GND    地线

    18   IEST       段电流输入端。 通过连接在V+与irest端的电阻改变电流的大小

     19   V+         电源

MAX7219 的功能框图
 
max7219 - medikstock - 蓝海

      串行输入数据在时钟上升沿时移入内部的16 位移位寄存器, 在装载的上升沿时数据被锁存在每一位或寄存器中。装载信号必须在第16 个时钟上升沿发生时或之后达到高电平, 但要在下一个时钟的上升沿和数据丢失之前到达。串行输入数据通过移位寄存器传输, 在以后数据输出的16. 5 个时钟循环出现,数据在时钟的下降沿记录下来。数据各位记录为D0~D15 (如表2 所列) , D8~D11 为移位寄存器地址, D0~D7 为数据, D12~D15 是无关位。第一位接收到的位是最高位D15。D7 为数据最高有效位,D0 为数据最低有效位。

max7219 - medikstock - 蓝海

 2. MAX7219 控制字
MAX7219 有14 个可寻址的控制字寄存器(如表3) , 控制字寄存器由芯片的8 ×8 双端口SRAM 识别,SRAM 直接寻址, 这样单一的位能被更改或保留, 条件是电源电压明显大于2V 。控制字寄存器包括译码模式、显示强度、扫描限制(被扫描位的个数) 、关闭模式、显示测试(点亮所有的L ED) 。另外还有一个空操作寄存器, 该寄存器允许数据从DIN 直送DOU T , 在设备串接情况下, 不会改变显示或影响任何控制寄存器。max7219 - medikstock - 蓝海


 

 3. 工作原理
3. 1 关闭模式
当MAX7219 处于关闭模式时, 扫描振荡器停止工作,所有的段电流源接地,所有的位驱
动器上拉为高电平,显示器为消隐状态,寄存器的数据保持不变。关闭模式寄存器数据的16 进制码为×0 ,正常工作的16 进制码为×1。系统上电时MAX7219 进入关闭模式,这样,用户必须在使用MAX7219 之前为显示驱动器编程,
否则, 它一开始就置位扫描, 数据寄存器不译码,强度寄存器也将置于最小值。
3. 2 译码模式寄存器
可对译码模式寄存器的每位进行硬件译码(B 码) 或软件译码操作, 寄存器的每位字对应
一个数, 逻辑高电平选择B 码译码。控制寄存器译码模式如表4 所列。

max7219 - medikstock - 蓝海

     当选择软件译码方式时, 数据D7~D0 对应的MAX7219 码的各段笔划如表5 所列。当工作于硬件(B 码) 译码模式时, 译码器只选择数据寄存器中较低的几位(D3~D0) ,不考虑D4~D6 位。D7 位显示十进制小数点,独立于译码器, 当D7 = 1 时, 十进制小数DP 点亮。字符0~9 对应的16 进制码为×0~ ×9 ,字符- 、E、H、L 、P 和消隐分别对应的16 进制码为×A~ ×F 。

max7219 - medikstock - 蓝海

3. 3 强度控制
MAX7219 允许用一个接于电源输入( V +) 和段电源( Iset ) 端之间外部电阻控制显示亮度,并且利用强度寄存器,调节面板亮度。段电流常为37mA ,最大值为40mA ,由于L ED的电压降为2. 5 V , 故调节亮度电阻的电压降V + - VL ED 为2. 5V (设V + = 5V) , 故7 段码全部点亮的总电流7 ×37mA = 259mA , 外部调节亮度电阻Rset 最小值是2. 5V/ 259mA = 9. 53kΩ。段电流的位控制由一个内部脉宽控制的DAC 提供。DAC 从强度寄存器的低位载入,D段电流的调整可分成16 阶, 从31/ 32 减到1/32 ,每步减少2/ 31。当循环到31/ 32 时最亮,此时内部位消隐时间为一个周期的1/ 32 , 消隐时间的增加则减少了工作周期。31/ 32 对应的16进制码为×F , 随着亮度的降低对应的16 进制码依次减1 ,1/ 32 对应的16 进制码为×0。
3. 4 限扫描寄存器
限扫寄存器设定显示几个数字(1~8) , 8位显示时的典型扫描频率为1300Hz ,有多种显示方式, 。如果想显示较少的位数,扫描频率是8fosc/ N ,其中N 是被扫描位的个数。由于扫描的位数影响显示亮度, 限扫寄存器不适用于显示消隐部分(如先行清零) 。扫描7 位时对应的16 进制码为×7 , 随着扫描位数的减少对应的16 进制码依次减1 ,仅扫描0 位时对应的16 进制码为×0。
3. 5 显示检测寄存器
显示检测寄存器有两种操作模式: 一般测试和显示测试。显示测试模式时所有的L ED点亮,方法是将所有控制字寄存器(包括关闭寄存器) 置成无效。在显示测试模式下扫描8 位的串行接口8 位L ED 显示驱动器MAX7219工作周期是31/ 32。正常测试的16 进制码为×0 ,显示测试的16 进制码为×1。
3. 6 空操作寄存器
空 操作寄存器在MAX7219 串接时使用,把所有芯片的LOAD 端连在一起, 并将DOU T 连接到下一个MAX7219 的DIN 上。DOU T 是CMOS 输出, 可以驱动后边的串接MAX7219 。例如,4 个MAX7219 串联,然后写第4 个片子, 再送入设想的16 位字, 紧跟3 个空操作码( ×0 ××) ,当LOAD 升高时,所有装置的数据被锁存,前3 个芯片接到空操作命令,第4 个芯片接到设想的数据。

4. 应用实例
图3 为8051 与MAX7219 接口组成的8位L ED 硬件扫描动态显示器。假如使显示器
显示出"HEL P7219", 软件译码和硬件译码的具体实现方法如下。

max7219 - medikstock - 蓝海
(1) 软件译码编程:
先 找出各字符的编码,根据a 、b 、c 、d 、e 、f 、g 各段与数据位的对应关系,可得: H 中a 、d 段为0 , 。其余为1 ,即00110111 或37H ,同样E、L 、P 、7、2、1、9 的编码分别为4FH、0EH、67H、70H、6DH、30H、73H。将HEL P7219 字符编码分别存入8051 地址为50H 单元(片内RAM存放显示数据的8 个字节单元首地址) 。显示器最左边一位为第一位,R0 为对应的显示位,R1 为显示数据单元地址,R2 为显示位数,共8 位。因8051 串行输出的时序顺序为将一字节的最低位最先送出, 而MAX7219 的时序顺序为将接收到的第一位当作该一字节数据的最高位, 所以需要改变送出位的顺序。
程序如下:
SHOW: CL R P1. 0 ;LOAD 置低
MOV A , # 09H ;译码模式控制字
LCALL CHAN GE
MOV A , # 00H ;软件译码
LCALL CHAN GE
SETB P1. 0 ; 置LOAD 为高, 锁
存软件译码控制字
ACALL DISPLA Y8 ;显示8 位数据
DISPLA Y8 :MOV R0 , # 01H ;置显示位,从第
0 位开始
MOV R1 , # 50H ;置显示数据首址
MOV R2 , # 08H ;共8 位显示
A GAIN : CL R P1. 0
MOV A ,R0 ;显示位
LCALL CHAN GE
MOV A , @R1 ;取出显示数据
LCALL CHAN GE ;输出数据
SETB P1. 0
INC R0 ;指向下一位
INC R1 ;指向下一位显示数据
DJNZ R2 ,A GAIN ;8 位未完,继续
RET
CHAN GE : MOV C ,ACC. 7 ; 改变位顺序,对
应于接收位
MOV 0A0H ,C
MOV C ,ACC. 6
MOV 0A1H ,C
MOV C ,ACC. 5
MOV 0A2H ,C
MOV C ,ACC. 4
MOV 0A3H ,C
MOV C ,ACC. 3
MOV 0A4H ,C
MOV C ,ACC. 2
MOV 0A5H ,C
MOV C ,ACC. 1
MOV 0A6H ,C
MOV C ,ACC. 0
MOV 0A7H ,C
MOV A ,0A0H
MOV SBU F ,A (下转P45图3 8051 与MAX7219 组成的8 位L ED 显示器)
JNB TI , $ ;等待发送完毕
CL R TI ;清TI 标志,允许再发
RET
(2) 硬件译码编程:
若采用B 码译码显示"HEL P7219"字符
串,对应的编码分别为:0CH、0BH、0DH、0EH、
07H、02H、01H、09H。8 个数据字节存50H
开始的单元中,程序如下:
SHOW: CL R P1. 0 ;LOAD 置低
MOV A , # 09H ;译码模式控制字
LCALL CHAN GE
MOV A , # FFH ;B 码硬件译码
SETB P1. 0 ; 置LOAD 为高, 锁存硬
件译码控制字
ACALL DISPLA YS ;显示8 位数据
(以下从略)
在 使用MAX7219 时, 为了减少峰值驱动电流引起的电源波动, 在电源输入端和地线之间应接入10μF 电解电容和0. 1μF 独石电容。在显示数据时, 可以控制段电流Iset 的大小,如每8ms 工作时间后停止2ms , 以减少MAX7219 产生的噪声。MAX7219 已用于血氧监护仪的脉搏强度柱状图显示及血氧、脉率的L ED 显示, 节省了许多锁存器、译码器及驱动器,大大提高了仪器显示器部分的集成程度。

posted on 2013-03-15 21:18  AI_JJ  阅读(624)  评论(0)    收藏  举报

导航