引 言
条图显示器也叫光柱显示器。用条图显示器(光柱显示器)组成的条图显示方法是继数字显示方法之后出现的另一种新型模拟显示方式,它除可以显示被测量的大小外,还可以直观地反映被测量的变化、变化趋势及量程范围等。条图显示器(光柱显示器)采用电子技术,由电子器件组成,因具有显示直观、亮度均匀、可靠性高、成本低、抗振动、耐冲击、无阻尼、抗干扰能力强、对被测量的变化反映迅速、真实等优点,已广泛用于各种显示调节仪表、工业控制设备中,作为过程量或控制量等参数的模拟指示。可见,它具有指针式仪表和数字式仪表的一些共同优点。
LCD条图显示器(光柱显示器)功耗低,显示时一般需要背光配合,否则,不适合在光线极弱的场合使用。LED条图显示器(光柱显示器)的发光体是发光二极管,亮度大,基本适用于所有场合,但功耗较大。
一、 L E D条图显示器(光柱显示器)简介
条图显示器(光柱显示器)由一串发光或不发光的点(条)状显示器排成长条(直线或圆弧状)组成。长条边有标度尺,发光点在标度尺上的位置反映被测量的大小。显示方式既可以用点方式,也可以用条方式。点显示方式下,只显示参考点(通常为。点)和被测量值点;条显示方式下,显示。点至被测量值点的所有点。
LED条图显示器(光柱显示器)是由若干LED管芯按规定长度等距排列而组成的,具有红、绿、橙、黄等不同颜色。一般有128线、101线(或100线),64线、51线等规格,线数为所含LED数。其中一个LED(对101线、51线等产品)一般用于电源指示,也可以作其他用途或不用。其他LED一般组成×8或×10结构,采用行列扫描方式以节省资源。如,100线有10×10结构和8×13结构。线间距有1mm,0.9mm,0.75mm等,有共阴型和共阳型可选。在使用中,除了购买成品外,也可根据需要自行设计条图显示器(光柱显示器)的LED颜色、布局、形状等。我们在某自动化设备的技术改造中,自行设计的LED条图显示器(光柱显示器),使用效果很好。
二、MAX7219介绍
目前,一些过程仪表常采用LM3914点/柱显示驱动器和附属电路组成LED条图显示器(光柱显示器),将输人的模拟量直接转变为数字量,通过LED进行条图显示。此法简单易行,但须对输人的模拟信号进行零度和满度校正,不适于在采用单片机组成的检测控制系统或仪表中使用,使用范围受到一定限制。
MAX7219是美国MAXIM公司推出的多功能串行LED显示驱动器,采用3线申行接口传送数据,可直接与单片机接口。它内含硬件动态扫描显示控制,每片可驱动8个LED数码管,因此,可直接驱动64段LED条图显示器(光柱显示器)。当多片MAX7219级联时,可控制更多的LED。也可以将MAX7219的一部分用于数字显示,一部分用于条图显示。显示的数据通过单片机数据处理(如量程标定、线性化、漂移处理等)后送至MAX7219,因而显示结果更加可信。
1.MAX7219引脚说明
MAX7219是共阴极显示驱动器,采用24脚DIP和SO两种封装,其引脚排列如图1所示。其中SEGA~G和SEGH为LED七段显示器段和小数点驱动端,供给显示器源电流;DIGO-7为8位数字驱动线,输出位选信号,从每位LED显示器公共阴极吸人电流;DIN为串行数据输人端,在CLK的上升沿,数据被装人到内部的16位移位寄存器中;CLK为串行时钟输人端,最大速率为l0MHz,在CLK的上升沿,数据被移人内部移位寄存器,在CLK的下降沿,数据被移至DOUT端;LOAD为装人数据控制端,在LOAD的上升沿,最后移人的16位串行数据被锁存到数据或控制寄存器中;Iset端通过一个电阻与电源相连,以提供给LED段的峰值电流;ROUT为串行数据输出端,进人DIN的数据在16.5个时钟之后送到DOUT端,以便在级联时传到下一片MAX7219;V+为5V电源端;GND为接地端。
图1 MAX7219引脚图
2 .内部寄存器
MAX7219片内寄存器分为8个数位寄存器和6个控制寄存器。规定16位二进制数据为一串行数据包,其格式如表1所列。
表1 串行数据格式
其中D15~D12位不用,可为任意值;D11~D8为内部控制寄存器和显示数据寄存器的地址,地址编码如表2所列;D7~DO为5个控制寄存器的命令字或8个待显示的数据。D15为串行传送的第一位,DO为最后一位。16位数分成二字节,第一字节是地址,第二字节是数据。
无操作寄存器:允许数据通过而不对当前MAX7219产生影响,主要用于多片MAX7219级联时。
表2 寄存器地址分配
译码方式寄存器:决定数位寄存器的译码方式。可将数位寄存器工作方式设置为BCD译码方式—B码方式或不译码方式。译码方式适用于驱动LED数码管,不译码方式适用于驱动条图显示器(光柱显示器)。译码方式寄存器的每位对应一个数位,1为B码方式,0为不译码方式。
数位寄存器:数位寄存器决定该位LED显示的内容。采用B码方式时,要在指定数位上显示字符,只要按B码字符表将字符代码写人相应的数位寄存器即可。B码对应的字符如表3所列,其中D7位控制小数点:1为点亮小数点;0为不点亮。
表3 日码字符表
亮度控制寄存器:当采用数字控制方式时,可通过D3~DO位控制内部脉宽调制DAC的占空比来控制LED段电流的平均值,从而控制LED的亮度。当D3~DO为0000~1111时,电流占空比从1/32变化到31/32,共16级,每级变化2/32;而D7~D4位可任意。D3~DO的值越大,LED显示越亮。在模拟控制方式时,调节V+与Iset端之间的外接电阻Rset,的阻值可控制LED段电流的大小,达到硬件调节亮度的目的。
扫描范围寄存器:设置显示数据位的个数。该寄存器的低3位(D2~DO)指定要扫描的位数,可从1到8。各数位以1300H:的扫描频率被分路驱动。
关断寄存器:其中D7~D1任意。D0为0,关闭所有显示器,但各寄存器中的数据保持不变;D0为1,正常显示。
显示测试寄存器:用于检查各LED或数码管各段的好坏。其中D7~D1位任意。DO为1,LED处于显示测试状态,所有8位LED的段被扫描点亮,电流占空比为31/32;DO为0,处于正常工作状态。
三、MAX7219与8031的接口
1 .硬 件
由MAX7219驱动的100段条图显示器(光柱显示器)电路如图2所示。100段条图显示器(光柱显示器)构成8X13结构,由两片MAX7219级联驱动。8031的P1.0,P1.1,P1.2分别与MAX7219的DIN,CLK,LOAD端相连,而第一片MAX7219的DOUT与第二片MAX7219的DIN相连接。两个GND脚都必须接地。电阻Rset可调节LED的亮度,每段的驱动峰值电流约为Rset。中电流的100倍。Rset的最小值为9.53kΩ,实际使用中可先用电位器调节亮度,合适后再取一标称值。要注意的是,MAX7219的段电流正常工作范围为10~40mA。当要求段电流超过40mA时,必须外加驱动器,这时一般取Rset=47kΩ。
图2 MAX7219与8031的接口
2 . 软 件
上电时,所有控制寄存器均被复位,显示器熄灭,MAX7219进人关断方式。故在使用显示器之前须进行控制寄存器的初始化,包括退出关断方式、指定译码方式(本例是条图显示,故采用不译码方式),扫描范围(本例为13位),设置显示亮度,最后进入正常工作方式。MAX7219将按5个控制寄存器规定的方式对待数字自动扫描显示。
无论初始化MAX7219的控制寄存器,还是在相应的LED数码管(条图显示器(光柱显示器))显示数字或光柱,均须对数据进行写人。下面给出通用的写人子程序WRITE供参考。R3中为控制寄存器的地址,R4中为传送的命令字或待显示的数据。
- WRITE: MOV A,R3
- ACALL SEND ;传送地址
- MOV A,R4
- ACALL SEND ;传送地址
- CLR P1.2
- NOP
- SETB P1.2
- NOP
- CLR P1.2
- NOP
- RET
- SEND: MOV R6,#08H ;向MAX7219传送8位数据或地址
- LOOP: NOP
- NOP
- CLR P1.1
- RLC A ;移位
- MOV P1.0,C
- NOP
- NOP
- SETB P1.1
- DJNZ R6,LOOP
- RET