来源:本站整理 作者:佚名 2009-03-31 14:04:49
地址F9H为译码控制寄存器,译码方式寄存器可以对每个数据位进行设置,使其为B码译码方式或不译码方式。寄存器中的每一位和一个数据位相对应。为“1”时,选择B译码方式,为“0”选择不译码方式。当用于驱动LED光柱显示器时,应设置为不译码方式,此时,数据D7~D0分别对应每段光柱显示器VD8~VD1发光二极管。
地址FAH为显示亮度寄存器,通过对该寄存器的D3~D0位写入不同的数值可实现对LED显示亮度的控制(D7~D4不用,可为任意值),从×0H到×FH共16级可调。D3~D0的值越大,LED显示越亮。在模拟控制方式时,调节V+与ISET端之间的外接电阻Rset的阻值可控制LED段电流的大小,达到硬件调节亮度的目的。
地址FBH为扫描段数寄存器,其D3~D0位数值设定为00H~07H(D7~D4不用,可为任意值),表
示显示器动态扫描段数为1~8。
地址FCH为待机模式控制寄存器,当其D0位为0时(D7~D1不用,可为任意值),MAX7219处于停机状态,扫描振荡器停振,所有显示器消隐,寄存器数据保持不变;当D0为1时,正常工作。地址FFH为显示测试寄存器,当其D0位为0时(D7~D1不用,可为任意值),正常工作;当D0为1时处于测试状态,全部LED显示器的所有字段都以最大亮度接通显示。
3 硬件组成
现以三菱公司小型PLC系列继电器输出型为例,LED光柱显示器与PLC的接口电路如图1所示。64线光柱显示器构成8×8结构,由一片MAX7219驱动。因PLC输出模块已具有隔离PLC内部电路与外部执行元件的作用,因此将PLC的Y0,Y1,Y2输出点经电平转换后分别作为MAX7219的时钟脉冲、装载数据、串行数据的输入端,连接到MAX7219的CLK,LOAD,DIN脚;MAX7219的SEG A~SEG F、SEGDP端分别连接到每段LED光柱显示器对应的VD1~VD8发光二极管的阳极,DIG0~7分别接各段光柱显示器的共阴极,以实现段选。电阻Rset值用于调节LED的亮度,Rset的最小值为9.53 kΩ。
4 驱动程序的设计
4.1 初始化
MAX7219按5个控制寄存器规定的方式对显示的LED线数自动扫描显示,所以在显示程序之前,必须初始化5个控制寄存器。其参考设置见表3所示。
4.2 软件设计
在PLC中,可以用16位的数据寄存器来存放16位的二进制数据包,其中高位字节存放地址字节,低位字节存放低位命令或显示的数字。例如,我们可以在PLC的数据存储区中建立一个LED显示缓冲区,显示缓冲区首地址为D0,末地址为D7,分别对应各显示段的段码和位地址,用程序控制数据以16位数据包的形式串行送入。假设PLC通过输入模块将工业现场的状态信息读入,通过用户程序的运算与操作,欲使LED光柱显示器有46线亮时,其显示区的数据格式如表4所示。
MAX7219的控制寄存器和显示寄存器均独立编址,显示程序实际上就是PLC在Y0(CLK),Y1(LOAD)时序的配合下不断通过Y2(DIN)向MAX7219的相应控制寄存器和数据显示寄存器写入16位二进制数据包的过程。所以问题的关键在于编写一个通用写入子程序,将D0等的内容从高位到低位在Y0(CLK)的作用下依次移入移位寄存器,最后由Y1(LOAD)的上升沿锁存到相应的内部控制寄存器和数据显示寄存器中去。写入子程序的梯形图程序如图2所示,PLC与MAX7219间串行通信工作流程图如图3所示。
5 结 语
基于MAX7219的LED光柱显示器与PLC的接口电路,数码显示器驱动芯片MAX7219只占用可编程控制器的3个输出点,通过芯片级联可成倍增加扩展显示LED的数量。应用时可利用PLC强大的编程能力,根据实际情况灵活编程,实现多线LED的显示和功能控制,利用光柱显示器色彩变化,还可达到显示与警示相结合的目的。