×
嵌入式 > 技术百科 > 详情

PLC和点阵液晶显示模块组成的监控电路与显示软件设计

发布时间:2020-06-09 发布时间:
|

    摘要:点阵液晶显示模块在工业控制设备中正逐步得到推广,依据DMF50081NB-FW点阵液晶显示模块的要求,阐述了监控电路的设计,论述了点阵液晶显示模块汉字和字符显示的编程方法。在确保可编程序控制器对被控对象控制的可靠性和抗干扰性的前提下,该电路可对系统运行状态的监控达到比较高的性能价格比。

    关键词:液晶显示模块 字符 起始地址 行列

点阵液晶显示模块在工业控制中,已得到越来越广泛的应用。如许多可编程序控制器(PLC)生产公司相继推出了各种型号、各种系列的液晶显示模块,有单色的、彩色的、触摸式等。这些模块能够显示字符和图形,若配备汉字还能够显示汉字。使用这些模块可组成高性能的控制操作面板,但是各公司的显示模块兼容性能不是很好,且售价较高。本文提出应用单片机和PLC的接口电路组成点阵液晶显示模块的控制操作面板,既达到了高性能,又降低了成本。

1 DMF50081NB-FW点阵液晶显示模块与SED1330控制器

DMF50081NB-FW是320×240=76800个显示点的点阵液晶显示模块,每8个显示点构成一个字节,每行40个字节,全屏共计40×240=9600个字节。DMF50081NB-FW点阵液晶显示模块可以显示图形,也可以显示汉字和字符,汉字和字符可以采用32×32、24×24、16×16、8×8等点阵形式。DMF50081NBFW点阵液晶显示模块的接口信号有13根,它直接与SED1330控制器相连。SED1330控制器是专门用于DMF系列点阵液晶显示模块控制器,而且很容易与单片机接口。其主要功能特点是:内部有功能较强的I/O缓冲器;有丰富的指令功能;最大可驱动640×256的点阵液晶显示模块;图形和文本方式混合显示;内部存储器最大容量达64k,可选用只读存储器和随机存储器。SED1330控制器的指令集如表1所示。从指令集中可看出,除了一般液晶显示器所具有的设置功能之外,其突出的一个特点是还可以设置光标四个方向的移动等功能。控制器的命令字简单、易于掌握、便于编程[3]。

表1 SED1330控制器指令集

功  能 指  令 代  码 说  明 参数量
系统控制 SYSTEM SET
SLEEP IN
40H
53H
初始化,显示窗口
设置空闲操作
8
-
显示操作 DISP ON/OFF
SCROLL
CSRFORM
CGRAM ADR
CSRDIR
HDOT SCR
OVLAY
59/58H
44H
5DH
50H
4C-4FH
5AH
5BH
显示开,设置显示方式
设置显示区域,卷动
设置光标形状
设置CGRAM起始地址
设置光标移动方向→←↑↓
设置点单元卷动位置
设置合显示方式
1
10
2
2
-
1
1
绘制操作 CSRW
CSRR
46H
47H
设置光标地址
读出光标地址
2
2
存储操作 MWRITE
MREAD
42H
43H
数据写入显示缓冲区
从显示缓冲区读出数据
 

2 监控电路与输入信号采集时序

监控系统电路如图1所示。左边的信号来自于可编程序控制器(PLC),当PLC输出被控对象工作状态(Y20~Y25)和数据参数(Y10~Y17、Y4~Y7)时,PLC(Y27)向单片机发出断申请。单片机通过可编程芯片82C55与PLC实现信息输入。液晶显示器通过SED1330控制器与单片机接口,其接口电路是按照液晶显示器和SED1330控制器接口说明要求设计的。根据应用需要编制的32×32字库和32×16字符库存放在16K的EPROM中。由于输入信号来自于PLC,单片机采集信息需结合PLC输出信号并遵循一定的采集时序。时序要求如图2所示。Y27应在PLC一个扫描周期内输出低电平,作为单片机的中断申请信号,通常PLC一个扫描周期至少数毫秒乃至十多信号,通常PLC一个扫描周期至少数毫秒乃至十多毫秒。为了确保单片机读入的数据和状态准确无误,单片机响应中断信号后,启动定时器延时2~3ms,即t=2~3ms,然后才从82C55读入PLC输出的参数与状态。PLC输出数据是按8421码编制好的三位十进制数:Y14~Y17,Y10~Y13,Y4~Y7。

3 系统软件设计

单片机程序主要分为三个部分:初始化;输入信号采集;字符和汉字显示。初始化程序需对液晶显示模块[2]、82C55以及其它存储单元初始化。输入信号采集程序由INT0中断服务程序和定时器0中断服务程序组成。INT0中断服务程序的任务是设置定时器0的时间常数、开定时器0中断和启动时器0;定时器0中断服务程序的任务是从82C55三个口读入数据和状态;C口状态信号送入31H,B口四位数据送入32H;并在中断服务程序中设置采集一次信息标志(置位单元00H为“1”)。字符和汉字显示程序是主体。为了使显示内容在控制现场醒目,有一定的视觉范围,便于对被控设备监控,设计了32×32汉字和32×16字符点阵库。显示程序设计时,首先对屏幕显示画面进行设计。设某控制对象的工作状态有数十种,每个状态下有三个数据,并有多种工作模式和工作选件选择。屏幕共有240行,每行40个字节,屏幕显示和地址排列如表2所示。表左边列出每一行显示字符的起始地址,表的上边列出第一行每一字节的地址,该地址作为每一列的列地址,这两组地址值可决定屏幕上每一个字符的起始地址,例如第二行参数2低位数据显示起始地址为0C80H+17H。显示屏每屏可动态显示5组状态和参数,可以采用按顺序翻转和按屏显示两种方式。按顺序翻转就是当第6组参数要显示时,每行显示内容按顺序向上移位,即6→5→4→3→2→1→取消。按屏显示就是当第六组参数要显示时,首先清状态和参数显示区域,然后将第六组参数设置为第一级并显示在第一组显示位置上。本文采用按屏显示方式。

    编程之前需对单片机内存作具体的分配,表2列出显示需用的部分内存分配。为了便于调用数据显示子程序,分配8个字节来存放显示数据。设置了要显示的字符和汉字在显示位置的起始地址和字库起始地址和暂存器以及显示行号、采集次数记录等。

显示程序编程的关键问题是确定每一行显示的起始地址、每一个文字和数据列显示起始地址以及文字和数据在字库中的起始地址。这些地址的确定是由状态字、采集次数、显示面板设计和字库设计确定的。

显示程序框图如图3所示。显示程序首先判断信息是否已被采集,若无则等待或处理其它程序,若有则判断采集次数(41H)。若(41H)>3,对41H置1,然后根据41H中的内容,转云执行处理不同采集次数的程序。这里重点介绍(41H)=1的情况,此时先判断(30H)是否大于#30H。若大于#30H,编制多个判断分支程序,根据30H中内容分别调用不同的汉字显示程序;若小于#30H,首先按照表2进行数据处理,然后判断显示行号是否大于5,大于则使(3BH)=1,并经判断程序是出行号,然后根据行号分别执行不同行号下的显示程序。图3中设行号等于3,此时先将屏幕显示第3行文字显示的起始高位地址赋给3DH,低侠地址赋给3CH,并调用状态显示子程序。然后确定每一行数据显示的列起始地址,调用数据显示子程序。执行完,采集次数+1.当二次采集数据全部处理完,显示行号+1,使下一组状态和数据显示内容自动换行。

字库中的字模在EPROM中是按照32×32点阵先从字模第一行第一个字节到第四个字节,然后从第二行第一个字节到第四个字节,依此类推,直到32行。数据的字模也是按照类似的方式排列,只是每行为两个字节。

图4为显示状态和汉字的子程序。虚线框中的内容是显示一个汉字的子程序,进入显示一个汉字子程序之前,只要将汉字在字库中的起始地址送入3EH、3FH单元以及将汉字在屏幕显示位置的起始地址送入42H、3DH即可。显示程序主要应用5HA、42H、4FH(↓)和4DH(←)命令,由于每一个汉字有32行,所以需循环32次。显示状态文字时,首先设置所要显示的文字数,赋给43H,根据30H中的状态字内容判断程序执行的方向,因为状态字决定了要显示的文字个数和文字内容,也就决定了每个文件在字库中的起始地址和显示屏幕上的位置。对于数据的显示,其显示编程的方法和文字显示编程的方法类似,只要把握住地址正确即可。而对于操作模式、选择和报警信息的显示,根据(30H)>#30H,此时只有一组信号,编程时间样按照屏幕设计的要求,将地址设置正确,调用方案显示子程序,同时需将采集次数复位。报警信息显示在状态和数据显示区,应注意显示行号和文字个数的设置,显示输出完之后对行号进行修改。

综上所述,系统的组成易于实现。软件虽然分支判断程序多,但程序的编制有规律可循。其执行速度主要受文字和数据显示程序的影响(32次循环)。但信息采集采用中断方式,单片机每两次中断响应之间至少间隔近10ms,才能够满足应用的要求。

本文应用PLC组成点阵液晶显示模块的控制操作面板的设计方法适应于工业控制现场,显示部分的电路和单片机程序没有参与对被控对象的控制。实际上,键盘操作也是由PLC输入端口予以输入,这样保证了控制系统的控制高可靠性和高抗干扰性。




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
灾难本可避免?美媒:波音偷改737Max防失速系统 少装一个传