>
首页 » 市场趋势 » MAX7219在MC68HC908系统中的应用

MAX7219在MC68HC908系统中的应用

作者:华中科技大学电子与信息工程系Motorola MCU&DSP 实验中心 杨明 谢瑞和  时间:2004-09-07 14:45  来源:本站原创

电子设计应用2003年第5期

摘 要:MAX7219是一个采用3线串行接口的8位共阴极7段LED显示驱动器。本文分析了MAX7219各个寄存器的功能,并结合MAX7219的工作时序,给出了MAX7219在Motorola MC68HC908单片机系统中的一个应用实例。
关键词:MCU;MAX7219;LED Motorola MC68HC908

MAX7219工作时序及其寄存器
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个内部寄存器,见表1。

图1 MAX7219内部结构框图

图2 MAX7219的数据传送时序
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的占空比扫描全部数位段,使得所有显示器的所有段以最大的亮度点亮。

图3 显示器与寄存器数据位的对应关系


译码方式控制寄存器可以设置每个数位工作于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引脚之间外接一个电阻RSET,这时段驱动器提供的峰值电流约为ISET引脚电流的100倍,调整该电阻的大小即可改变显示器亮度,电阻的最小值为9.53KW,此时提供的段驱动电流典型值为40mA。
亮度的数字化调整是使用亮度调整寄存器,此时芯片内启用一个脉宽调制器,它受亮度调整寄存器低半字节D3~D0的控制,产生16种占空比不同的输出脉冲,形成16级亮度调整,此时以RSET设定峰值电流。寄存器数据为×0H时,脉冲占空比为1/32,表示MAX7219驱动的段点亮时间仅为整周期的1/32,这是最暗的情况。数据从×0H变化到×FH,表示脉冲占空比由1/32变化到31/32 (注意这里的分子只有奇数),此时扫描消隐期按比例递减,亮度线性递增。因此寄存器数据为×FH时最亮,消隐期仅为1/32。

图4 MAX7219应用连接图

MAX7219有驱动8个数码管的能力,但实际应用中不一定恰好是8个。扫描位数寄存器用于设置显示器数码管的实际扫描个数,由扫描位数寄存器的D2~D0设定,其数据为×0H时,表示仅扫描数位0,数据为01H时,扫描数位0与数位1,如此类推,直至数据为×7H,表示8个全扫描。8个全部扫描时,扫描速率为800Hz,只扫描N个时,扫描速率为8fOSC/N。应注意扫描的位数变化对亮度有明显影响。当扫描的数码管等于或少于3个时,单个数位驱动器将消耗较大的功率,因而必须依据使用的数码管实际数量调整电阻RSET的大小,限制消耗的电流。
显示器测试寄存器有正常与测试两种设定模式,数据字节的D0位置0为正常模式,D0置1为测试模式。测试时,以31/32的占空比扫描MAX7219全部数位段,使得所有显示器的所有段以最大的亮度点亮。
MAX7219与MC68HC908GP32接口应用
MAX7219采用串行通信,只需通过CLK、LOAD、DIN三根线便可与多种MCU接口。M68HC908系列单片机是新一类 Motorola高性能的8位单片机,具有速度高、功能强和价格低等特点,其指令码与M68HC05完全兼容。Motorola自1999年推出该系列单片机以来,至今已推出了三十余种不同型号的MC68HC908单片机。本文以Motorola在中国大力推广的通用型芯片MC68HC908GP32为例,介绍MAX7219与MC68HC908系列单片机的接口电路,如图4所示。由于MC68HC908系列的单片机都具有一定数量的I/O管脚,所以该应用实例同样适用于其它型号的MC68HC908单片机,具有一定的代表性。
图中MC68HC908GP32的PORTB口工作于输出方式,并结合MAX7219的工作时序,对MAX7219进行控制。WRI_INSTRU为MAX7219控制子程序,它在CLK管脚产生8个时钟脉冲,并将入口参数A中的8位值在CLK的上升沿串行输出到DIN。LED_WR为MAX7219控制主程序,它首先置LOAD为低电平,然后通过两次调用WRI_INSTRU完成向MAX7219写入16位串行数据,最后再置LOAD为高电平,产生一个上升沿脉冲以满足MAX7219的数据传送时序。

结语
MAX7219能够驱动8个LED,可方便地对每位LED进行单独控制、刷新,不需重写整个显示器寄存器,通信方式采用串行数据方式,可与任何一种单片机方便接口。Motorola MC68HC908系列单片机,多采用32.768KHz外部晶体,或内部集成了晶振电路,功能强大,抗干扰能力强。它们构成的显示系统可应用在条状图形显示器、7段数码管显示器、工业控制器显示模板、面板表与LED矩阵显示器等众多场合。■

参考文献
1 Maxim.New Releases Data Book. 1997
2 Motorola.MC68HC908GP32/MC68HC08GP32 Technical Data. 2002
3 刘慧银,陈建平,龚光华等.Motorola 微控制器M68HC08原理及其嵌入式应用.北京:清华大学出版社.

相关推荐

LED产业整体迎来加速成长期

LED  照明  2014-01-17

普及也有致命缺点 LED背光显示器的秘密揭示

LED  背光显示器  2014-01-08

盘点LED行业那些没能躲过“倒闭潮”的“倒霉儿”

LED  光电  2014-01-07

芯片级拆解:全面剖析新型LED灯泡设计的艺术

LED  芯片  2014-01-07

台韩产品质量佳 陆LED封装面临“出去难”

LED  封装  2013-12-31

市场分析:2014年将出现LED照明换灯潮

LED  照明  2013-12-31
在线研讨会
焦点