欢迎来到查IC网

串行输入输出共阴极显示驱动器MAX7219应用

来源:电子工程世界   2020-08-10 阅读:22

MAX7219是美国MAXIM(美信)公司生产的串行输入/输出共阴极显示驱动器。它采用了3线串行接口,传送速率达10M数据,能驱动8位七段数字型LED或条形显示器或64只独立的LED。MAX7219内置BCD码译码器、多路扫描电路、段和数字驱动器和存储每一位的8*8静态RAM。能方便的用模拟或数字方法控制段电流的大小,改变显示器的数量;能进入低功耗的关断模式(仅消耗150uA电流,数据保留);能方便地进行级联。可广泛用于条形图显示、七段显示、工业控制、仪器仪表面板等领域。而且其最重要的一点是,每个显示位都能个别寻址和刷新,而不需要重写其他的显示位,这使得软件编程十分简单且灵活。MAX719后缀表示其封装方式和工作温度,如表所示:

后缀

封装

工作温度

CNG

窄24脚

0----70℃

CWG

SO24脚

0----70℃

ENG

窄24脚

-40---85℃

EWG

SO24脚

-40---85℃

一. MAX7219的结构和功能


1.引脚说明

MAX7219的引脚排列如图所示,各引脚功能叙述如下:

(1)脚:DIN,串行数据输入。在CLK的上升沿到来时,数据被移入到内部的16位移位寄存器中。

(2)、(3)、(5)~(8)、(10)、(11)脚:DIG0—DIG7,输入。8位数字位位选线,从共阴极显示器吸收电流。

(4)、(9)脚:GND,地。两个引脚必须连接在一起。

(12)脚:LOAD,数据装载输入端。在LOAD上升沿,移位寄存器接受的数据被锁存。

(13)脚:CLK,时钟输入端,最高时钟频率10MHz。在CLK的上升沿,数据被移入到内部的16位移位寄存器中。在CLK的下降沿,数据从DOUT脚输出。

(14)~(15)、(20)~(23)脚:输出。七段驱动器和小数点驱动器。它供给显示器电流。

(18)脚:ISET,电流调节端。通过一个电阻和VCC相连,来调节最大段电流。

(19)脚:VCC。电源输入端。

(24)脚:DOUT。串行数据输出。输入到DIN的数据在16.5各时钟周期后,在DOUT端有效。该脚常用于几个MAX7219的级联。


2.串行数据传送的说明

MAX7219采用串行寻址方式,在传送的串行数据中包含内部RAM的地址。加在DIN脚上的串行数据,必须在LOAD信号为高电平的前提下,以每个字节为一个数据包,在CLK信号上升沿移入16位的移位寄存器。然后在LOAD信号的上升沿锁存进数字或控制寄存器中。LOAD信号必须在第16个CLK信号上升沿的同时,或在下一个CLK信号上升沿之前升高,否则,数据会丢失。DIN脚上的串行数据在16.5个CLK信号后出现在DOUT脚上,以便级联应用时传到下一个MAX7219上。

其数据串行传送时序图如下图所示:

发送的16位串行数据格式为:

D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

X

X

X

X

地址

高         数据               低

发送的16位串行数据格式如上表所示:D15在先,D15---D12位(4位)可为任意值。D11---D8位(4位)指定14个内部寄存器的地址。D7---D0位(8位)为送入的指定寄存器的数据(包括显示数据和控制数据)。

3.寄存器功能及说明

MAX7219内部共有14个可寻址的数字、控制寄存器和空操作寄存器。数字寄存器由一个片内8×8静态RAM组成。控制寄存器包括译码方式、亮度控制、扫描数量、停机模式、测试模式等寄存器组成,如下表所示:

寄存器名称

十六进制数地址

寄存器名称

十六进制数地址

空操作

00H

DIG6

07H

DIG0

01H

DIG7

08H

DIG1

02H

译码控制

09H

DIG2

03H

亮度控制

0AH

DIG3

04H

扫描控制

0BH

DIG4

05H

停机控制

0CH

DIG5

06H

显示测试控制

0FH

下面从使用的角度,对MAX7219内部控制器的功能加以说明:

(1)译码控制寄存器(地址09H):译码方式寄存器可以对每个数进行设置,使其为BCD译码方式或不译码方式。寄存器的每一位和一个数位相对应。为“1”时,选择BCD译码方式,为“0”选择不译码方式。例如,0---7位不译码,则给译码寄存器09H送00H。第一位译码,其余位不译码,则给译码寄存器09H送01H。

译码方式控制寄存器举例(地址09H):


寄存器数据

16进制代码(HEX)

D7

D6

D5

D4

D3

D2

D1

D0

第1-8位LED不译码

0

0

0

0

0

0

0

0

00

第1位译码,其余不

0

0

0

0

0

0

0

1

01

低四位译码,高不

0

0

0

0

1

1

1

1

0F

第1-8位LED译码

1

1

1

1

1

1

1

1

FF

* 当采用BCD译码方式时,译码器仅对寄存器中数据的低四位(D3-D0)有效,高四位(D7-D4)位无效。BCD码的字形为:当数据为00-09H时,显示为0-9;当数据为0AH-0EH时,显示为-,E,H,L,P。当数据为0FH时,数据被消隐,处于不显示状态。

代码BCD字形表:

显示字符

寄存器数据

段码点亮=1

D7

D6

D5

D4

D3

D2

D1

D0

DP

A

B

C

D

E

F

G

0


×

×

×

0

0

0

0


1

1

1

1

1

1

0

1


×

×

×

0

0

0

1


0

1

1

0

0

0

0

2


×

×

×

0

0

1

0


1

1

0

1

1

0

1

3


×

×

×

0

0

1

1


1

1

1

1

0

0

1

4


×

×

×

0

1

0

0


0

1

1

0

0

1

1

5


×

×

×

0

1

0

1


1

0

1

1

0

1

1

6


×

×

×

0

1

1

0


1

0

1

1

1

1

1

7


×

×

×

0

1

1

1


1

1

1

0

0

0

0

8


×

×

×

1

0

0

0


1

1

1

1

1

1

1

9


×

×

×

1

0

0

1


1

1

1

1

0

1

1

-


×

×

×

1

0

1

0


0

0

0

0

0

0

1

E


×

×

×

1

0

1

1


1

0

0

1

1

1

1

H


×

×

×

1

1

0

0


0

1

1

0

1

1

1

L


×

×

×

1

1

0

1


0

0

0

1

1

1

0

P


×

×

×

1

1

1

0


1

1

0

0

1

1

1


×

×

×

1

1

1

1


0

0

0

0

0

0

0

小数点由D7设置,D7=1亮,D7=0不亮。

* 当采用不译码方式时,数据位D7-D0和字段的对应关系如图3所示:


需要说明的是:不管对MAX7219设置的是译码方式还是非译码方式,D7位始终和数码位的小数点DP相连,当D7=1时,小数点亮,当D7=0时,小数点灭。

(2)亮度控制寄存器(地址0AH):MAX7219的亮度控制有两种方式:即模拟法和数字法。

* 模拟法:在引脚ISET和VCC之间接电阻RSET,各段驱动峰电流约为RSET中电流(Iset)的100倍,RSET的最小阻值为9.53KΩ,这时数码显示处于最亮状态。RSET可用电位器代替,放到面板上用来调节数码显示的亮度。

* 数字法:将数据写入到亮度控制寄存器中,即可按16各等级控制亮度。数值为00H,对应电流1/32Iset(最暗);数值为0FH,对应电流31/32Iset(最亮)。此数值加1,电流增大1/16。

亮度寄存器格式(地址0AH)

占空比

寄存器数据

16进制代码(HEX)

D7

D6

D5

D4

D3

D2

D1

D0

1/32

×

×

×

×

0

0

0

0

×0

3/32

×

×

×

×

0

0

0

1

×1

5/32

×

×

×

×

0

0

1

0

×2

7/32

×

×

×

×

0

0

1

1

×3

9/32

×

×

×

×

0

1

0

0

×4

11/32

×

×

×

×

0

1

0

1

×5

13/32

×

×

×

×

0

1

1

0

×6

15/32

×

×

×

×

0

1

1

1

×7

17/32

×

×

×

×

1

0

0

0

×8

19/32

×

×

×

×

1

0

0

1

×9

21/32

×

×

×

×

1

0

1

0

×A

23/32

×

×

×

×

1

0

1

1

×B

25/32

×

×

×

×

1

1

0

0

×C

27/32

×

×

×

×

1

1

0

1

×D

29/32

×

×

×

×

1

1

1

0

×E

31/32

×

×

×

×

1

1

1

1

×F

(3)扫描位数(界限)寄存器(地址0BH):扫描(界限)寄存器用来设定多少个数位处于显示态,范围为1到8。MAX7219的各个数位按1300Hz的扫描频率分路驱动,轮流点亮8各显示器。若需要显示的数位少,可降低扫描数量,以提高扫速和亮度。该寄存器的低3位指定要扫描的数位,即00-07H分别对应1-8个数位。但此值最好不要小于4,否则需要改变RSET的值。

扫描位数寄存器(地址0BH)的格式:


寄存器数据

16进制代码(HEX)

D7

D6

D5

D4

D3

D2

D1

D0

显示位1

×

×

×

×

×

0

0

0

×0

显示位1,2

×

×

×

×

×

0

0

1

×1

显示位1,2,3

×

×

×

×

×

0

1

0

×2

显示位1,2,3,4

×

×

×

×

×

0

1

1

×3

显示位1,2,3,4,5

×

×

×

×

×

1

0

0

×4

显示位1,2,3,4,5,6

×

×

×

×

×

1

0

1

×5

显示位1,2,3,4,5,6,7

×

×

×

×

×

1

1

0

×6

显示位1,2,3,4,5,6,7,8

×

×

×

×

×

1

1

1

×7

(4)停机控制寄存器(地址0CH):关断寄存器的D0位控制MAX7219处于怎样的显示状态。当D0=0时,MAX7219处于关断状态,当D0=1时,MAX7219处于正常显示状态。当处于关断状态时,扫描振荡器暂停,显示器熄灭,各寄存器中的数据不变,这时总电流小于150uA,,但仍可以编程。进入此状态后,至少250uS才能退出。当将D0位置1后(即0CH写01H),即可回到正常显示状态。

(5)显示测试寄存器(地址0FH):显示测试寄存器有两种工作方式:当送01H时,MAX7219便进入测试工作状态,所有数码管显示8及小数点,电流占空比为31/32,内部的所有数据及控制寄存器的值都不改变。当送00H时,MAX7219进入正常工作方式。

(6)空操作寄存器(地址00H):即写入0000H,可允许数据通过而不对当前的MAX7219产生影响,可用于两个或多个MAX7219进行级连。这样只要三根信号线就可以驱动,在控制时只要把待编程的MAX7219之前的那些MAX7219设置为空操作即可。

4.典型应用电路

典型应用

级联应用连线

二 MAX7219的PROTUES仿真电路

   

据说PROTEUS里的MAX7219模型在级连时仿真有问题,时序和实际电路的不同。

三 MAX7219的PROTUES仿真源程序

#include

#include

#define uchar unsigned char


sbit DIN=P3^1;

sbit CLK=P3^3;

sbit LOAD=P3^2;

void send(uchar add,uchar dat)

{

                 uchar ADS,i,j;

                 CLK=0;

              LOAD=0;

              DIN=0;

                 i=4;

                 while(i<16)

                 {

                   if(i<8)

                              {

                                            ADS=add;

                            }

                else

                              {

                                          ADS=dat;

                            }

免责声明:
以上相关内容来自互联网公开信息分享;如涉及内容、版权、图片等问题,请联系我们。会第一时间删除!

查IC网

服务热线

400-861-9258

客服企业微信