选用MAXIM公司的SPI接口显示驱动器芯片MAX7219组成LED数码管显示器,接口电路结构简单,编程方便。
(1)LED显示驱动器MAX7219
MAX7219是一个专用的串行输入/输出七段共阴极LED显示、图条、柱图显示或64点阵显示驱动器。它采用3线串行接口传送数据,接口简便。每片可驱动多达8个LED数码管,最多可以串接8片MAX7219,驱动64个数码管。内部共有14个寄存器,其中6个为控制寄存器,8个为数据寄存器。数据寄存器存放待显示的数值,控制寄存器决定MAX7219的工作模式。只需一个外部电阻(最小为9.53kΩ,此时典型段电流为37mA)即可调节LED的段电流,且允许程序方便地调节LED显示的亮度。MAX7219可选择LED显示器的扫描个数。有非译码和BCD码译码2种显示模式。具有150μA的低功耗停机模式、从1~8选择扫描位数和对所有LED显示器的测试模式。
图15-21给出了MAX7219芯片的引脚排列。图中V+接+5V电源,GND接地;DIN为串行数据输入端,当CLK为上升沿时,数据载入16位内部移位寄存器;CLK为串行时钟输入端,最大工作频率为10MHz;LOAD为片选端,当LOAD为低电平时,该器件接收来自DIN的数据,接收完毕,LOAD返回高电平时,接收的数据将锁定;DIG0~DIG7为吸收显示器共阴极电流的位驱动线,其最大值可达500mA,在关闭状态时,输出V+;SEGA~SEGG和SEGDP驱动显示器7段及小数点的输出电流(约40mA),可软件调整,关闭状态时,接到GND;DOUT为串行数据输出端,用于直接接到下一片MAX7219的DIN端进行串联;ISET端接一个电阻到电源+V,设置峰值段电流,以调节显示器亮度。
图15-21 MAX7219引脚图
MAX7219的数据接收装载时序图如图15-22所示。由图可知,当LOAD信号为低时,在每个CLK的上升沿,DIN端的数据移入MAX7219内部移位寄存器中。LOAD必须在16个CLK同时或之后由低变高(上升沿),被移入的数据才会被锁存进入内部控制寄存器或数据寄存器中。接收的第一个数据放置在内部寄存器的D15位,最后一个数据放置在D0位。在16.5个CLK之后,在DOUT端可以观测到DIN端输入的数据。在CLK的下降沿有数据输出。
下表给出了MAX7219命令与数据所组成的16位数据格式。
MAX7219片内包括BCD译码器、多路扫描控制器、字和位驱动器和8×8静态RAM。MAX7219有14个可寻址命令寄存器,其中8个是8位LED数据寄存器,6个是控制寄存器包括非工作寄存器、译码方式寄存器、亮度寄存器、扫描界限寄存器、停机寄存器和显示测试寄存器。各内部功能寄存器含义如下:
图15-22 MAX7219的数据接收装载时序图(www.daowen.com)
●数据存储寄存器(DIG0~DIG7)。用来存放显示数据,其地址码分别为x1H~x8H(x为0~F的任意数)。MAX7219在BCD译码显示方式时,x1H~x8H中存储的数据为x0H~xFH,这时数码管显示0~9、-、E、F、H、L、P或空显示,按数据位的最高位设定小数点状态,置1则点亮小数点,否则为0;在非译码方式显示中,x1H~x8H中存放的数为一个不定值,相应的笔划要显示时其值为1,不显示时为0。DP、A~G与D7~D0为一一对应关系。
●非工作寄存器(No Operation)。作为MAX7219串联时使用,其地址为x0H。这个寄存器是在MAX7219串联时,允许数据通过而不会对当前MAX7219产生影响。当其最低位D0=0时,MAX7219处于停止工作状态;当D0=1时,处于正常工作状态。
●译码方式寄存器(Decode Mode)。作为DIG0~DIG7显示方式选择寄存器,其地址为x9H。该寄存器的8位二进制数各位分别控制8个LED显示器的译码方式。当高电平时,选择BCD译码模式,当低电平时选择非译码模式(即送来数据为字型码)。当x9=00H时,DIG0~DIG7全部选择非译码示;当x9=01H时,DIG0选择BCD译码方式显示,DIG1~DIG7选择非译码方式显示;当x9=0FH时,DIG0~DIG3选择BCD译码方式盘示,DIG4~DIG7选择非译码方式显示;当x9=0FFH时,DIG0~DIG7全部选择BC′D译码方式显示。
●亮度寄存器(Intensity)。用来调节显示器的显示段电流(占空比),其地址为xAH。亮度寄存器中的D0~D3位可以控制LED显示器的亮度。xA=00H、01H……0EH、0FH时,相应的占空比为1/32、3/32…29/32、31/32。软件亮度控制可替代硬件限流亮度控制。
●扫描界限寄存器(Scan Limit)。用来限定显示扫描显示位数,其地址为xBH。该寄存器中D0~D2位数据设定值为0~7H,表示显示器动态扫描个数为1~8。即xBH=x000B时,DIG0位显示,其他位不显示;xBH=x001B时,DIG0、DIGl位显示,其他位不显示;当xBH=x010B时,DIG0、DIGl、DIG2位显示,其余类推。
●停机寄存器(Shutdown)。用来设定显示器是否显示的寄存器。其地址为xCH。当寄存器内容最低位D0为0时,所有的显示器停止显示;当为1时,所有的显示器按设定的方式显示。
●显示测试寄存器(Display Test)。用来测试显示芯片是否正常的寄存器,其地址为xFH。当寄存器内容最低位D0为0时,MAX7219按设定模式正常工作;当为1时,处于测试状态。在该状态下,不管MAX7219处于什么模式,全部LED将按最大亮度显示。
(2)MAX7219与DSP接口电路
MAX7219通过SPI串行接口与DSP连接,故连接电路简单。硬件电路如图15-23所示。28035 DSP的SPI接口的SPICLK、SPISIMO分别用作MAX7219的时钟信号CLK、串行数据输入信号DIN;28035的GPIOD19/SPISTEA用作MAX7219的数据锁存信号LOAD。为了匹配DSP的3.3V电平与7219的5V电平,通过10kΩ的上拉电阻与二极管将3.3V电平提高到5V。MAX7219的V+引脚接+5V电源,2个GND引脚接地。SEGA~G、SEGDP用于驱动数码管的7段显示和小数点显示,DIG0~DIG7用于驱动多达8个数码管的位。
图15-23 显示器电路
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。