《电子技术应用》
您所在的位置:首页 > 模拟设计 > 业界动态 > MAX7219在PLC中的应用

MAX7219在PLC中的应用

2009-03-11
作者:刘 凯 李少慧 张 冈

  摘 要: 介绍了静态显示芯片MAX7219的工作原理,提出了一个适于PLC的结构简单且十分实用的静态显示系统,并以SIEMENS公司的S7-200PLC为例,讨论了硬件连接和软件编程
  关键词: MAX7219 PLC 静态显示系统


  最新推出的小型高集成度的PLC如SIEMENS S7-200系列,其主模块上就带有多个开关量输入/输出点,并且具有符合工业标准的485串行通讯口,便于用户进行设备的单机独立控制或连接成完全分布式的计算机监控网络,与远方控制室连接。但在实际运用中,有些单机控制器或一些远离控制室的设备往往需要就地显示,便于操作人员操作或巡视。SIEMENS PT200显示器就是为此而研制的。但其显示屏小且多为液晶显示,不适合强光和光线极弱的场合,而且占用串行口资源、安装不便、价格较贵。通常解决的方法是充分利用PLC开关量输出点,采用并行方式驱动LED显示器。并行显示占用的资源较多,而一般小型PLC主模块上的开关量输出点不多(S7-212为6个输出点,S7-214为10个输出点),难以满足多位显示和多点控制的要求。本文提出了一种采用MAX7219芯片与PLC输出点配合的方法,通过简单的硬件连接,利用PLC强大的编程能力,可根据实际情况对它灵活编程,实现LED的显示和功能控制。
1 MAX7219简介
  MAX7219是一种新型的串行接口的8位数字静态显示芯片。它是由MAXIM公司新推出的24脚双列直插式芯片,其引脚图如图1所示。


  SEGA~SEGG和SEGDP为LED七段驱动器线和小数点线,供给显示器源电流;DIG0~DIG7为8位数字驱动线,输出位选信号,从每位LED共阴极吸入电流。
  图2为MAX7219工作时序图。由图2可知,DIN是串行数据输入端,在CLK的上升沿,一位数据被加载到内部16位移位寄存器中,CLK端最高输入频率可达10MHz,在输入时钟信号的每个上升沿,均有1位数据由DIN移入到内部寄存器中,LOAD用来装载数据,在LOAD的上升沿,16位串行输入数据被锁存到数字或控制寄存器中。LOAD必须在第16个时钟上升沿的同时或之后、在下一个时钟上升沿之前变高,否则数据将会丢失。


  规定一组数据为16位二进制数据包,其格式如下:

  
  其中D15~D12位不用,D11~D8为内部5个控制寄存器和8个LED显示数据寄存器的地址,地址编码如表1所示。D7~D0为5个控制寄存器命令字或8个LED数码管待显示的数据。因为控制寄存器与显示数据寄存器均独立编址,所以可以通过程序单独对每个寄存器进行操作。一般情况下,程序先送控制命令,后向显示寄存器送数据,但必须注意,每16位为一组,从高位地址字节最高位开始送起,直到低位数据字最后一位为止。


2 MAX7219与PLC的硬件连接
  现以SIEMENS公司小型PLC S7-214为例讨论PLC与MAX7219的硬件连接和软件编程。S7-214输出点不多(Q0.0~Q1.1,共十位)且只有一个RS-485通信端口。S7-214与MAX7219的硬件连接如图3所示。S7-214的Q0.0,作串行数据输出,连接到MAX7219的DIN脚,Q0.1和Q0.2通过程序分别模拟MAX7219的时钟脉冲CLK及数据加载LOAD信号。MAX7219的SEGA~SEGGF,SEGDP端连接到各LED数码管对应的a~f及dp端,DIG0~7分别接8位LED数码管的共阴极,以实现位选。


  实际上,数码管的位数可在1~8之间任意选择,这可由写入的扫描界线寄存器的命令字决定。注意:18脚和19脚间9.6kΩ的电阻是必须的,并且为了使由峰值数字驱动器电流引起的纹波减到最小,需要在V+和GND之间尽可能靠近芯片的地方外接一个10μF的电解电容和一个0.1μF的瓷片电容。MAX7219应放在紧靠LED显示器的地方,且连线尽可能短,两个GND引脚都必须连接到地线上。
3 软件编程
  在S7-214的V存储区开辟两个字节的存储单元VW0,专门用来放16位二进制数据包,其中高位字节VB1规定放高位地址字节,低位字节VB0规定放低位命令字或待显示的数字。
  由于MAX7219的控制寄存器和显示寄存器均独立编址,显示程序实际上就是S7-214在Q0.1(CLK),Q0.2(LOAD)时序的配合下不断通过Q0.0(DIN)向MAX7219的相应控制寄存器和数据显示寄存器写入16位二进制数据包的过程。所以问题的关键在于编写一个通用的写入子程序,将VW0的内容从高位到低位在Q0.1(CLK)的作用下依次移入移位寄存器,最后由Q0.2的上升沿(LOAD信号)锁存到相应的内部控制寄存器和数据显示寄存器中去。写入子程序的程序流程图如图4所示。


  无论初始化MAX7219的控制寄存器,还是在相应的数码管显示数字,均可通过调用上述通用写入子程序完成。注意在调用子程序之前,必须先用MOVW指令将正确的16位二进制数据移入VW0中。
  MAX7219按5个控制寄存器规定的方式对待显示的数字自动扫描显示,所以在显示程序之前,必须初始化5个控制寄存器。各控制寄存器的功能分述如下:
  (1)译码方式寄存器 对每个数字设置BCD码B(0~9、E、H、L、P和-)或非代码操作。寄存器中的每一位与一个数字对应。逻辑高电平选择代码B译码,而低电平选择旁路译码器。
  (2)显示亮度寄存器 其中D7~D4位可任意,而D3~D0可选择0000~1111。D3~D0的值越大,LED显示器越亮。
  (3)扫描范围寄存器 其扫描范围寄存器设置所显示数据的多少,可从1至8。它们一般以扫描速率1300Hz、8位数据、多路复用方式显示。
  (4)关闭寄存器 其中D7~D1位可任意。D0=0,关闭所有显示器;D0=1,允许显示。
  (5)显示测试寄存器 其中D7~D1位可任意;D0=0,LED处于正常工作状态;D0=1,允许显示。LED处于显示测试状态。
  在送完控制字后,可根据实际需要调用显示子程序,改变1~8个数据寄存器的内容,完成显示功能。
  MAX7219只需一组+5V电源和PLC的三个输出口,且无附加电路,可驱动1~8个LED显示器,显示亮度可调,工作可靠。
参考文献
1 MAXIM.新产品数据手册 V2,1998
2 SIEMENS.S7-200PLC用户指南,1998.6

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。