在单片机系统设计中,LCM(液晶显示模块)人机交互界面的设计往往是很重要的一个环节。LCM可以用于智能仪器上的显示设定参数、状态提示符、检测结果和待输入参数等功能。本文结合电解质分析仪的设计要求,采用液晶显示模块YXD—12864A2LCM,研究并实现了以单片机C8051F020为基础的液晶显示的接口电路和程序设计,添加了按键系统,从而达到方便用户使用的目的。
1电解质分析仪简介
本系统所设计的电解质分析仪(Electrolyte Analyzer)是一种具有高分辨率和高精度的仪器,可以与多种离子选择电极配套使用,可用自动方法测定样品中钾、钠、氯、钙离子的浓度和pH值。其结构方框图如图1所示。仪器采用单片机C8051F020为核心芯片进行设计,在测量室内由化学传感器采集电解质的电位信号传送给信号调理电路,经过信号调节后送给主电路板进行A/D转换,然后输出显示到LCM上,LCM参数、测量结果的显示等都可由键盘操作。与上位机的通信上,采用RS 232通信方式传输数据。本仪器的特点是可以单机使用、也可以与上位机连接使用,与上位机连接后通过界面操作可以帮助用户完成病人信息的查询、存储、仪器工作情况的实时检测等功能。
图1电解质分析仪结构方框图
系统显示部分采用图形液晶显示模块YXD-12864A2LCM,安装在仪器的表面,用来显示参数设置、测量结果、定标、质控等的情况。界面显示与参数设定及翻页等功能通过按键的控制来实现。
2 YXD-12864A2LCM
2.1模块介绍
YXD-12864A2LCM是一种图形点阵液晶显示模块,它主要由行驱动器、列驱动器及128x64全点阵液晶显示器组成。可完成图形显示,也可以显示4x8个(16×16点阵)汉字。YXD-12864A2模块共有20个引脚。其中,第1脚VSS接系统地;第2脚VDD接电源电压;第3脚V0接液晶显示器驱动电源;第4脚D/I接数据指令选择信号;第5脚R/W接读写选择信号;第6脚接读写使能信号,E为高时,数据被读出,而在E的下降沿到来时,数据被锁存到DB0~DB7;第7~14脚接三态数据总线;第15、16脚接片选信号;第17脚接复位信号;第18脚Vout接内部负压发生器输出电压端;第19脚接LED背光电源正极;第20脚接LED背光电源负极。
2.2接口电路
接口电路图和原理图如图2,图3所示,C8051F020的P3口作为数据口与液晶模块DB口相连;P2.0为复位引脚控制端;P2.1、P2.4、P2.5作为普通的I/O口使用,分别接液晶模块的使能端E、寄存器选择引脚D/I、读写引脚R/W;P2.2、P2.3分别接片选信号左或者右,对显示进行定位。
图2 LCM接口电路图
图2的电路图中,R28和R41为上拉电阻,因为它每个端口是与单片机相连的,对于显示器而言工作电压是5 V,而C8051F020工作电压是3.3 V,要使C8051F020输出能更好地驱动5 V输入的LCM,就要将每个端口通过一个上拉电阻接到5 V电源,这样就可以保证C8051F020的逻辑“1”输出能被提升到5 V.
图3接口电路原理图
2.3软件设计
显示字符:从屏幕指定的位置开始显示指定的字符串。此LCM是128x64位的液晶显示屏,每个字符所占用的点阵是8x8.显示位置由两个坐标参数据决定,横坐标x表示“行”,取值范围为0~7;第0行对应屏幕最上边的一行,第7行对应最下面一行。纵坐标y表示“列”,取值范围为0~15,第0列对应屏幕最左边的一列,第15列对应屏幕最右边的一列。
假设要从第4行第8列的位置显示字符“K”,则程序段如下:
;entrancd:C(left,right),R4(X),R5(Y),DPTR,R6(length)
data_to_lcd:
SETB CS1_LCD
CLR CS2_LCD
JNC data_to_lcd2
CLR CS1_LCD
SETB CS2_LCD
data_to_lcd2:
MOV A,R4
LCALL display_X_line
MOV A,R5
LCALL display_Y_line
MOV A,R6
MOV R7,A
LCALL write_LCD_bytes
MOV A,R4
INC A
LCALL display_X_line
MOV A,R5
LCALL display_Y_line
MOV A,R6
MOV R7,A
INC DPTR
LCALL write_LCD_bytes
CLR CS2_LCD
CLR CS1_LCD
RET
SETB C;片选的设定
MOV R4,#04H;位置行号
MOV R5,#08H;位置列号
MOV DPTR,#K;字符内容
MOV R6,#08;定义字符的长度
LCALL data_to_lcd;调用输出字符的子程序
汉字的显示与字符类似,只是汉字所占的点阵为16×16的形式,因此在本LCM中,汉字只可以显示4行8列。第一行汉字的坐标为00H~07H,第二、三、四行坐标依次为10H~17H、20H~27H、30H~37H.汉字的显示要先将汉字的坐标起始位置作为命令写入,把汉字的字模作为数据写入,连续写入多个汉字可用查表法。
3按键系统
按键系统的硬件设计可以采用独立方式和矩阵方式两种。
(1)独立式中每一个键单独占用一根I/O口线,每一根I/O口线上的按键工作状态不会影响其他I/O口线上的状态,一般应用于按键数量较少的场合;
(2)矩阵式的按键排列为行列式矩阵结构,4行4列共16个键,只占用8根I/O口线,因此当按键数目较多时,可以使用这种方式节省I/O口线。
本仪器共定义了8个按键,考虑到C8051F020上的I/O接口非常丰富,因此采用了独立式。在仪器上共设计了“Yes”、“No”、“↑(上)”、“↓(下)”、“←(左)”、“→(右)”、“复位”和“打印”8个按键,除“复位”键(其按下后直接复位)不通过键盘信息处理程序处理外,其余的7个键的按下处理均由键盘信息处理程序在主循环程序中完成。对于独立式按键,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值可直接进行按键识别。每个键的编码值如表1所示。
按键的具体定义如下:
(1)“↑(上)”、“↓(下)”、“←(左)”、“→(右)”:移动光标或切换不同内容的屏目、数据修改、完成口令输入等;
(2)“Yes”:确认所做的操作,包括确认所选择的菜单项或数据、确认所输入的口令、确认被修改的数据等;
(3)“No”:可取消输入的口令值或被修改的数据;
(4)“复位”:软复位系统;
(5)“打印”:控制打印机打印输出。
按键的工作方式分为编程控制方式和中断控制方式两种。本仪器采用中断控制方式,流程图如图4所示。此方式可以提高CPU的效率,当有键按下时,便向CPU申请中断,CPU响应中断后,在中断服务程序中进行键盘扫描、查键值与处理等工作。而编程控制方式是指在一个工作周期内,利用完成其他任务的空余时间,调用按键扫描子程序。经程序查询,若无键操作,则返回;若有键操作,则进而判断是哪个键,并执行相应的键处理程序。这样对CPU的使用效率就受到了影响。因此选用中断控制方式。
图4中断法控制流程图
本仪器采用的按键的开关为机械弹性开关。从按键按下到接触稳定要经过数毫秒的抖动时间,松开时也有这样的问题。抖动时间的长短由按键的机械特性决定,一般为5~10 ms.这样就会引起一次按键多次读取,对于抖动问题可以采用软件方法。可以通过延时去抖动的方法避免,即检测出按键闭合后执行一个延时程序产生20 ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平则确认为真正有键按下。当检测到按键释放后,也要给20 ms的延时,待后沿抖动消失后才能转入该键的处理程序。
4结语
利用YXD-12864A2图形液晶显示模块设计电极质分析仪的显示界面,采用8位并型模式传递数据,主要是因为虽然占用了较多的I/O引脚,但与串行模式相比,编程简单的多;而且C8051F020有8个8位I/O端口、64个数字I/O引脚,非常丰富,所以也不用考虑引脚不够的问题。通过添加按键系统,使显示的内容可以由用户来操作,非常方便。