LCD与单片机的4种常用接口电路Four Kinds of Common Interface Circuits Between Chinese Fonts LCD and SCMTIAN Jun-xia,LU Ping(Ordnance Engineering College,Shijiazhuang 050003,China)Abstract:Three kinds of ordinary operation timing diagrams of Chinese fonts LCD moduleswere firstly introduced.Then four kindsof different interface circuits were presented for different agreements and control modes,with some reference program.In practice,canselect different interface circuits for design rules.Key Words:Display Interface Circiut;SCM;Chinese Fonts LCD Module摘要:介绍了中文液晶显示模块3种常见的操作时序,并针对不同的协议和控制模式,提供了其与单片机4种不同的接口电路,同时列出了相应的参考程序。实际使用时,可以根据电路设计要求,选择不同的显示接口电路。关键词:显示接口电路;单片机;中文液晶显示模块1 引言液晶显示模块具有显示信息量丰富、功耗低、体积小、质量轻、无辐射等优点[1]。而针对不同型号的液晶显示模块,其硬件接口电路和软件编程原理不同。以LG128321和OCMJ5X10B为例,介绍了中文液晶显示模块与单片机的4种常用接口电路。其中LG128321接口协议采用的是状态查询方式,可分为并行和串行;而OCMJ5X10B接口协议则为请求/应答(REQ/BUSY)握手方式,可分为一般连接模式和外部数据存储器模式。2 两种中文LCD的简介LG128321显示屏按照每个中文字符16×16点阵分为2行8列,共32个区。每个区可显示1个中文字符或2个16×8点阵全高ASCⅡ码字符。内部的中文字型点矩阵LCD控制/驱动器为ST7920-0B。为便于和多种微处理器、单片机接口,模块提供了4位并行、8位并行(常用)、2线串行(常用)、3线串行(通过控制4脚CS信号的电平)多种接口模式[1]。OCMJ5X10B显示屏按照每个中文字符16×16点阵分为5行10列,共50个区。提供了10个用户接口命令代码,降低了编程难度,避免了用户和控制/驱动器8310指令的直接接触。模块还提供一条专用的复位线,可对工作中的模块进行软件或硬件强制复位。3 中文LCD 3种常见的操作时序3.1 8位并行模式(LG128321)的操作时序(状态查询)8位并行模式下,模块的操作时序如图1所示。图1 8位并行(LG128321)操作时序 RS=0,R/W=0,单片机在E信号下降沿写指令到模块的指令寄存器IR;RS=0,R/W=1,单片机在E信号下降沿从模块读出忙标志位BF及地址计数器AC的值;RS=1,R/W=0,单片机在E信号下降沿写数据到模块的数据寄存器DR;RS=1,R/W=1,单片机在E信号下降沿通过DR读出模块内部RAM的数据。3.2 2线串行模式(LG128321)的操作时序(状态查询)串行模式下,模块的操作时序如图2所示[4]。图2 串行(LG128321)操作时序由图2可知,单片机与模块之间传送1字节的指令或者数据共需24个时钟脉冲。首先,单片机要给出5个连续的“1”作为同步位元组,显示模块接收到连续的5个“1”,则内部传输计数被重置,串行传输被同步。而后,由RW和RS位决定内部数据寄存器或指令寄存器的读写,最后的第8位固定为“0”。在接收到第1个字节后,下一个字节的数据或指令将被分为2个字节来传送或接收。数据或指令的高4位被放在第2个字节串行数据的高4位,其低4位为“0”;数据或指令的低4位被放在第3个字节的高4位,其低4位也为“0”,如此完成一个字节指令或数据的传送。需要注意的是,当有多个数据或指令要传送时,必须确认一个指令完成执行完毕后再传送下一个指令或数据,否则,会造成指令或数据的丢失。3.3 请求应答方式(OCMJ5X10B)的操作时序请求应答方式的操作时序如图3所示[2]。图3 OCMJ5X10B的操作时序 BUSY=1表示模块忙于内部处理,不能接收用户命令;BUSY=0表示模块空闲,可以接收用户命令。发送命令到模块可在BUSY=0后的任意时刻开始,用户先把命令或数据放到数据线上,接着使REQ=1,启动模块处理当前数据线上的命令或数据。模块在收到外部的REQ高电平信号后,立即读取数据线上的命令或数据,同时将应答线BUSY变为高电平,表明模块已收到数据并正在忙于数据的内部处理。用户得知BUSY又为高电平后,就可以撤消数据线上的信号并可作模块显示以外的其它工作。当然,用户也可不断地查询BUSY是否为“0”,如果BUSY=0,表明模块的内部操作已经执行完毕。可以再送下一个数据。4 中文LCD与单片机的4种常用接口电路4.1 LG128321与单片机的接口电路(8位并行模式)8位并行模式下,模块与单片机的接口电路如图4所示。模块的数据线可与单片机数据线直接相连,但因读写信号共用一根信号线R/W,故不能与单片机的读信号及写信号连接。从操作时序可以看出,模块的读写操作实际上是用E信号下降沿完成的。因此,设计接口电路的关键是让单片机向模块提供合适的R/W、RS、E信号。可以利用RD和WR与CS的配合来实现对E信号的代替。使用A0和A1作为RS和R/W信号。当P2.0(低电平有效,因为上电时P2.0为高电平)作为寻址线时,写指令寄存器地址为FE00H,读B及AC值地址为FE02H,写数据寄存器地址为FE01H,读数据寄存器地址为FE03H。程序举例如下:图4 8位并行模式的接口电路 MOV 70H,#30H;设定8位并行方式LCALL WRITE ORDERMOV 70H,#0CH;整体显示LCALL WRITE ORDERMOV 70H,#01H;屏幕清除LCALL WRITE ORDERMOV 70H,#80H;显示位置为第一行行首LCALL WRITE ORDERMOV 71H,#4FHLCALL WRITE DATAMOV 71H,#4BHLCALL WRITE DATA;显示OK。写指令代码子程序:WRITE ORDER:MOV DPTR,#0FE02HORDER1:MOVX A,@DPTRJB ACC.7,ORDER1MOV DPTR,#0FE00HMOVA,70H;指令存放在70H中MOVX @DPTR,ARET写显示地址和数据子程序:WRITE DATA:MOV DPTR,#0FE02HDATA1:MOVX A,@DPTRJB ACC.7,DATA1MOV DPTR,#0FE01HMOVA,71H;数据存放于71H中MOVX @DPTR,ARET4.2 LG128321与单片机的接口电路(2线串行模式)2线串行模式下,只要将模块PSB引脚接低电平,CS(RS)引脚接高电平,SID(R/W)引脚接P1.0,SCLK(E)接P1.1即可。其中,SCLK时钟是通过P1.1口的CLR和SETB命令实现的,SCLK上升沿有效。程序举例如下:写指令寄存器WRITE ORDER:396
LCD与单片机的4种常用接口电路SETB CS;CS接高电平时,可舍去该命令。SETB P1.0;SID=1CLR P1.1SETB P1.1CLR P1.1SETB P1.1CLR P1.1SETB P1.1CLR P1.1SETB P1.1CLR P1.1SETB P1.1;上升沿送5个“1”作业同步位元组。CLR P1.1CLR P1.0;SID=0SETB P1.1;RW=0CLR P1.1;RS=0SETB P1.1;设定操作类型CLR P1.1SETB P1.1CLR P1.1MOV P1.0,ACC.7;指令放在寄存器A中SETB P1.1CLR P1.1MOV P1.0,ACC.6;指令放在寄存器A中SETB P1.1CLR P1.1MOV P1.0,ACC.5;指令放在寄存器A中SETB P1.1CLR P1.1MOV P1.0,ACC.4;指令放在寄存器A中SETB P1.1CLR P1.1…(A中低4位的数据发送与上类似)CLR CSRET4.3 OCMJ5X10B与单片机的接口电路(一般接线模式)一般接线模式下,单片机全部利用自身的端口进行显示控制,接口电路如图5所示。模块占用单片机口线10条。其中,数据线8条,应答线2条。厂家提供的使用说明书上,17和18脚之间的灰度调节电位器的一端是接地的,实际使用时,接+5 V也是可以的。经过测定,发现18脚其实只是得到一定的分压,而17脚必须保证流经一定的电流。通常,将17和18脚之间的电位器阻值调节到2~3 kΩ即可程序举例如下:CLR P3.1SETB P3.0MOV B,#0F0H;选显示汉字命令LCALL SUB1MOV B,#04H;设定显示的列标LCALL SUB1MOV B,#02H;设定显示的行标LCALL SUB1MOV B,#19LCALL SUB1MOV B,#41;显示“成”LCALL SUB1MOV B,#05H;设定显示的列标LCALL SUB1MOV B,#02H;设定显示的行标LCALL SUB1MOV B,#25LCALL SUB1MOV B,#06;显示“功”LCALL SUB1写模块子程序:SUB1:SETBP 3.0SUB2:JB P3.0,SUB2MOVA,BMOV P1,ANOPSETB P3.1BB:JNB P3.0,BBCLR P3.1RET4.4 OCMJ5X10B与单片机的接口电路(外部数据存储器模式下)图5电路中,模块占用了单片机较多资源,限制了单片机其他功能的发挥。因此,为了节省单片机的端口,可以将中文液晶显示模块连接为外部数据存储器模式,如图6所示。通过其地址译码信号(CS)和WR信号的或非,将送给模块的数据锁存到模块数据端口,而后通过BUSY和REQ信号的配合将其输入到模块中。其实质是,通过加入一片373而解放了原来的P1口,此片373不可以再作为共用的锁存器。另外,REQ和BUSY信号应使用单片机上具有锁存器的端口。图6 外部数据存储器模式下的接口电路5 结束语使用中文液晶显示模块时,可以根据不同的设计选择不同的显示模块和接口电路。显示字符较少可选择LG128321;显示字符较多时,可选择OCMJ5X10B.显示实时性较强时,可采用并行方式;实时性不强,则可用串行方式。单片机端口紧张时,可选用类似外部数据存储器的连接方式。以上的4种接口电路基本上包括了现有的中文LCD与单片机的接口电路。参 考 文 献[1] 李敏,孟臣.串行接口中文图形点阵液晶显示模块的应用.单片机及嵌入式系统应用,2003(8):43-46.[2] OCMJ中文模块B系列液晶图文显示器使用说明书.肇庆:金鹏科技有限公司:1-12.[3] 于龙成,史延龄.仪表用中文LCD与单片机的接口技术.仪表技术,2003(3):18-22.[4] 中文字型点矩阵LCD控制/驱动器ST7920C20芯片使用说明.台北:台湾矽创电子公司,2001:16-30.[5] 孙涵芳,徐爱卿.MCS-51(96)系列单片机原理及应用.北京:北京航空航天大学出版社,1996.)Roberts算子对噪声比较敏感,能够突出图像中梯度特征,所以可对实时图像进行梯度Roberts算子运算,得到所需的灰度梯度分布。通过这3种特征同一区域信息的加权运算,基本可以准确的判断模板内是否存在有螺纹钢。4.2.3 二次阈值分割在模板搜索过程中,如果没有采取适当的措施屏蔽已经搜索过的像素点附近区域或已判断存在钢材的搜索子图中一部分像素点,会造成搜索效率低,并且容易重复计数,造成主动误差。针对这种情况,通过实验,对某些区域制定了相关规则进行屏蔽,并对搜索区域优化,显著提高了运行效率和搜索精度。5 实验结果与分析为了验证系统的效果,在某钢铁公司小型钢厂螺纹钢生产线上进行了长时间实时在线测试。图5为一张采集到的原始图片和一张处理计数后的图片作对比。由表1中可以得到该检测方法是可靠的,其中准确性=(实际支数-测量支数误差)/实际支数×100%=(144-3)/144×100%≈97·9%由以上数据分析可知,该系统的准确性已经达到工业生产的控制标准要求[4]。现场应用结果表明:所设计的算法简单,抗干扰能力强,检测效率高,能够满足在复杂工业现场中实时性指导生产的要求。而且随着CCD传感器分辨率、计算机运行速度以及图像采集卡精度等参数的改善,可以使该系统运行更为可靠。由于系统原来存在较多漏检的情况,经过分析,主要是由于一些钢材的位置异常,无法采集其截面上足够的特征信息,为了提高识别率,在数据融合原始特征量的获取方面针对现场做了许多优化,实践表明,效果非常理想。参 考 文 献[1] 张毓晋.中国图像工程及当前的几个研究热点.计算机辅助设计与图形学学报,2002,12(6):489-500.[2] 孙涛,张宏建.目标识别中的信息融合技术.自动化仪表,2001,22(2):1-4.[3] QI Suiping,ZHANGHongjian,HUANG Yongmei.An application of infor-mation fusion to detect and measure the steel rods of online sensed im-ages.Second IEEE Sensors Conference,Toronto,Canada,2003.[4] 黄文清,汪亚明,周志宇.计算机视觉技术在工业领域中的应用.浙江工程学院学报,2002,19(2):92-96.