电子常识
MAX7219/MAX7221是一种集成化的串行输入/输出共阴极显示驱动器,它连接微处理器与8位数字的7段数字LED显示,也可以连接条线图显示器或者64个独立的LED。其上包括一个片上的B型BCD编码器、多路扫描回路,段字驱动器,而且还有一个8*8的静态RAM用来存储每一个数据。
只有一个外部寄存器用来设置各个LED的段电流。 MAX7221与SPI™、 QSPI™以及 MICROWIRE™相兼容,同时它有限制回转电流的段驱动来减少EMI(电磁干扰)。 一个方便的四线串行接口可以联接所有通用的微处理器。 每个数据可以寻址在更新时不需要改写所有的显示。MAX7219/MAX7221同样允许用户对每一个数据选择编码或者不编码。 整个设备包含一个150μA的低功耗关闭模式,模拟和数字亮度控制,一个扫描限制寄存器允许用户显示1-8位数据,还有一个让所有LED发光的检测模式。 在应用时要求3V的操作电压或segment blinking
MAX7219是一个采用3线串行接口的8位共阴极7段LED显示驱动器。本文分析了MAX7219各个寄存器的功能,并结合MAX7219的工作时序,给出了MAX7219在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个内部寄存器。
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的占空比扫描全部数位段,使得所有显示器的所有段以最大的亮度点亮。
显示器与寄存器数据位的对应关系
译码方式控制寄存器可以设置每个数位工作于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。
MAX7219应用连接图
MAX7219 有驱动8个数码管的能力,但实际应用中不一定恰好是8个。扫描位数寄存器用于设置显示器数码管的实际扫描个数,由扫描位数寄存器的D2~D0设定,其数据为×0H时,表示仅扫描数位0,数据为01H时
高、功能强和价格低等特点,其指令码与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矩阵显示器等众多场合。
全部0条评论
快来发表一下你的评论吧 !