首页 > 范文大全 > 正文

基于MAX7219的显示模块在台达LC控制系统中的应用

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于MAX7219的显示模块在台达LC控制系统中的应用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘要】MAX7219是一款8位LED显示驱动控制芯片,由其构造的显示模块,具有显示位数多、控制端子少、亮度可控且成本低廉等特点。文章重点介绍了实际应用中遇到的硬件和软件方面技术技巧问题,而结构原理则简叙。

【关键词】MAX7219;LED;DVP;Plc

1.引言

可编程控制器(简称PLC)在自动化设备中应用非常普遍,与其配套使用的有各种品牌种类的文本屏和触摸屏。这些人机界面,很好地解决了控制系统所需的数据输入、键盘输入及数据显示问题。今有某设备,因产品升级,控制器改为PLC,但保留原MAX7219显示模块电路(台达PLC型号为DVP24EC00T3)。

MAX7219是一款集成化的串行输入显示驱动器,它接收微处理器串行数据,控制至多8位共阴数码管显示,或控制至多64线条显示器或64个独立的发光LED。除了5V电源线,只需3根口线连接微处理器。LED亮度可调,硬件设定发光段最大电流,软件设定16级亮度。数码管1-8位,亮度与显示位数无关,显示无频闪,支持级联。显示效果如图1所示,每位数码管的小数点都可单独点亮。

2.MAX7219的组成结构与控制

2.1 MAX7219内部结构分析

内部结构框图如图2所示。24PIN,有“窄DIP双列直插”、“宽SO贴片”和“CERDIP”三种封装。其中:

引脚A-G、DP数码管8段码驱动线(含小数点)。

引脚DIG0-7为数码管位码驱动线,分别控制8个共阴数码管的公共端。

引脚18,硬件设定亮度端。所接RSET阻值决定了LED最大段电流。如:外接10K电阻,最大段电流约在38mA~54mA之间。外接20K电阻,最大段电流约在20mA~30mA之间。阻值越小,段电流越大。而实际电流还与组成数码管的每段LED的额定工作电压相关,要根据环境亮度需求调整电阻值。

引脚DIN/DOUT/CLK/LOAD:DIN串行数据输入端;DOUT串行数据输出端,级联用;CLK移位时钟脉冲,上升沿有效;LOAD锁存控制端,上升沿有效。

MAX7219内部还有5个控制寄存器和8个数据单元。

2.2 MAX7219指令数据的组成

MAX7219一条完整指令或数据由16位二进制位构成,如表1,其中,高8位中的低4位为MAX7219内部单元与控制寄存器地址号,低8位为相应数据内容。

2.3 内部address及功能

表2为MAX7219内部单元与寄存器地址分配表。

各内部控制寄存器和数据存储器说明如下:

(1)地址01~08H:显示RAM,分别存放8位数码管显示字形或BCD数字。

(2)地址09H:译码方式寄存器,可设置每位数码管BCD译码方式或直显方式。见表3,在BCD译码显示模式,可显示字形,见表4,共15个。在非译码方式,“DATA”为8段数码字形,显示字形或图形有更多选择,如等。两种模式,“DATA”的D7均为小数点显示控制位,=1显示。

(3)地址0AH:亮度控制寄存器,芯片18脚设定最大段电流,此处将最大段电流数控16级,0H最小亮度,0FH最大亮度。

(4)地址0BH:扫描范围寄存器,设定值0H~7H,分别表示实际数码管有1~8个。

(5)地址0CH:关闭显示寄存器,其中D7~D1位可任意。D0=0,关闭所有显示器;D0=1,允许显示。

(6)地址0FH:显示测试寄存器,其中D7~D1位可任意;D0=0,LED处于正常工作状态;D0=1,允许显示。LED处于显示测试状态。在测试状态,不管MAX7219其它寄存器设置,所有LED笔划(含小数点)将按最大亮度显示。

MAX7219每次上电,这些控制寄存器和数据寄存器会出现随机值,所以,在显示程序之前,必须初始化5个控制寄存器。然后写入显示数据。MAX7219自动完成动态显示扫描。本例中写入的5个初始化数据是H09FF/H0A07/H0B05/H0C01/H0F00。

2.4 MAX7219控制时序

图3为MAX7219数据写入时序图。根据时序,在LOAD=0才可接收移入数据。DIN是串行数据输入端。CLK移位脉冲,频率可达10MHz,在CLK的每个上升沿,均有1位数据由DIN移入到内部锁存器暂存。LOAD必须在D0位CLK上升沿的同时或之后、至下一个CLK上升沿之前变高,否则数据将会丢失。只有LOAD上升沿信号,才能把暂存在锁存器数据装载到内部相应RAM或寄存器。

根据图3控制时序,可以作如下时序分解。

首先,在无写入行为时,保持LOAD=1,可屏蔽CLK时钟线,有效阻止干扰写信号。

在准备写入一帧数据前,先增加两个起步:第0步,LOAD=1,CLK=0;第1步,LOAD=0,CLK=0。第2步到第16步,保持LOAD=0。第17步,即D0位,在CLK上升沿的同时或之后、至下一个CLK上升沿前,产生LOAD=1。在本例中,是在CLK之后的第18步产生LOAD上升沿。

2.5 PLC简介

台达DVP24EC00T3,是一款经济型PLC,14点I和10点O,晶体管漏型NPN输出,带一485口,不可扩展。EC系列内部资源有:XY编号均可至128、M特殊继电器M1000(280点,与FX的M8000基本对应)、T定时器T0~T127(1ms定时器仅T127),变址寄存器E/F,跳转指针P0~P63。指令与编程方法和三菱FX基本相同,初次用感觉不逊FX:指令无限制,高速脉冲输出频率更高,支持双轴直线和圆弧插补等。编程软件要用WPLSOFT_V2.20版。

3.MAX7219与PLC的硬件连接

MAX7219显示模块接受TTL电平,PLC的Y0/Y1/Y2,接上拉电阻至+5V。根据资料,流过晶体管电流大小,不影响导通速度,但影响关断,电流越小晶体管关断时间越长,影响工作频率,一般电流在100mA以上,关断延时可忽略。此处工作频率不高,电阻选1KΩ。

设计电路板时要注意几点:MAX7219应放在紧靠LED显示器的地方,使连线尽可能短;芯片的4/9PIN单独连到0V上;在V+和GND之间尽可能靠近芯片的地方外接10μF的电解电容和0.1μF的瓷片电容;在信号LOAD、CLK、DIN各接0.01~0.033(μF)瓷片电容。如果是购买的成品模块,信号线上拉电阻要改1KΩ以下、补焊瓷片电容。这些措施,才能消除显示电流引起的纹波和工业现场对显示的干扰。

4.软件设计

4.1 整体程序设计

在PLC上电工作开始,完成MAX7219显示模块的初始化,然后送显示数据。以后在每次显示内容更新时,8个显示RAM全部发送一遍。

4.2 子程序设计

建立3个子程序P0/P2/P4。

子程序P2:MAX7219内5个寄存器初始化程序。

子程序P4:MAX7219内8个显示RAM内容更新程序。流程图见图5。子程序P2和P4差不多,只是合成16位数据时生成方法及循环次数不同。

子程序P0:16位二进制数逐位移入暂存并装载到内部相应RAM或寄存器中。P0流程图见图6,P0程序清单见图7。在本段程序中,最大技巧是多次使用“输出刷新”REF Y0 K8指令,这样,可以在PLC的一次扫描周期里多次改变Y的输出,类似单片机编程方法。

5.结束语

基于max7219显示模块已经在客户设备的PLC中稳定运行。但是,根据自己的使用经历,还是觉得在PLC系统中应用不是很方便,主要有:(1)显示刷新时间长。一般PLC定时中断10ms,定时器最短1ms,要完成16位二进制传送,至少16ms,照此,要完成8位显示字符刷新,必需128ms,实际感觉也是刷新慢,目前也有带RS232/485的LED显示模块可用。(2)可能有乱字符显示。工业现场信号干扰严重,硬件必须加瓷片电容,抗干扰效果明显,但不保证100%。(3)PLC程序可能复杂。若还需键盘输入一些数据,编程特别繁琐,不如采用性价比优秀的文本屏或触摸屏。

参考文献

[1]刘凯,张志鹏.MAX7219在PLC中的应用[J].电子技术,2000(2):62-63.

[2]王建华,玉台.MAX7219原理及其应用[J].电子技术,2003(12):37-39.

[3]丁启胜,王刚峰.PLC外扩LED显示器的一种实用方法[J].电子技术,2006(1):40-41.

[4]范永明.基于MAX7219的PLC数码管显示器[J].科技向导,2010(30):112-113.

[5]高阳,罗玉峰.数码显示驱动器的编程[J].国外电子元器件,2008(10):90-91.

作者简介:陆宇立,男,助教,研究方向:机电一体化、现代制造技术。