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

2013-01-13 07:54河源职业技术学院陆宇立张秋容张涛川
电子世界 2013年10期
关键词:数码管子程序译码

河源职业技术学院 陆宇立 张秋容 张涛川 杨 伟

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

河源职业技术学院 陆宇立 张秋容 张涛川 杨 伟

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全部发送一遍。

表1 MAX7219一条指令数据的组成

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

表3 MAX7219译码寄存器设置

表4 译码方式可显示字形

图1 MAX7219显示模块工作图片

图2 MAX7219内部结构框图

4.2 子程序设计

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

图3 MAX7219写入控制时序图

图4 MAX7219显示模块与台达DVP-24EC连接图

图5 刷新MAX7219显示区子程序P4流程图

图6 16位二进制数移入并写入MAX7219子程序P0流程图

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

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

图7 16位二进制数移入并写入MAX7219子程序P0清单

D7=1点亮小数点 表中×可为任意值

子程序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.

Based on the MAX7219 display module in Delta PLC control system application

Yuli Lu,Qiurong Zhang,Taochuan Zhang,Wei Yang
(Heyuan Polytechnic)

MAX7219 is a multiple LED display drive control chip,the structure of display module,a display digits,a control terminal,less controllable brightness and low cost characteristics.The article focuses on the problems in actual application of the hardware and software aspects of technical skills,while the structure principle is simply described.

MAX7219;LED;DVP;PLC

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

猜你喜欢
数码管子程序译码
分段CRC 辅助极化码SCL 比特翻转译码算法
基于校正搜索宽度的极化码译码算法研究
微课教学设计之“数码管动态显示”
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
从霍尔的编码译码理论看弹幕的译码
浅谈子程序在数控车编程中的应用
LDPC 码改进高速译码算法
子程序在数控车加工槽中的应用探索