摘 要: MAX7219是一个采用3线串行接口的8位共阴极7段LED显示驱动器。本文分析了MAX7219各个寄存器的功能,并结合MAX7219的工作时序,给出了MAX7219在Motorola MC68HC908单片机系统中的一个应用实例。
MAX7219是一个高性能的多位LED显示驱动器,可同时驱动8位共阴极LED或64个独立的LED。其内部结构框图如主要包括移位寄存器、控制寄存器、译码器、数位与段驱动器以及亮度调节和多路扫描电路等。
MAX7219的串行数据标记为D15~D0,其中低8位表示显示数据本身,的4位D15~D12未使用,寻址内部寄存器的地址位占用D11~D8,选择14个内部寄存器。
显示器测试寄存器有正常与测试两种设定模式,数据字节的D0位置0为正常模式,D0置1为测试模式。测试时以31/32或15/16的占空比扫描全部数位段,使得所有显示器的所有段以的亮度点亮。
显示器的亮度可以通过模拟与数字两种方式进行调整,模拟方式是在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。
显示器测试寄存器有正常与测试两种设定模式,数据字节的D0位置0为正常模式,D0置1为测试模式。测试时,以31/32的占空比扫描MAX7219全部数位段,使得所有显示器的所有段以的亮度点亮。
MAX7219采用串行通信,只需通过CLK、LOAD、DIN三根线便可与多种MCU接口。M68HC908系列单片机是新一类 Motorola高性能的8位单片机,具有速度高、功能强和价格低等特点,其指令码与M68HC05完全兼容。Motorola自1999年推出该系列单片机以来,至今已推出了三十余种不同型号的MC68HC908单片机。本文以Motorola在中国大力推广的通用型芯片MC68HC908GP32为例,介绍MAX7219与MC68HC908系列单片机的接口电路。由于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的数据传送时序。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。