基于触摸屏的太阳能热水器控制系统设计
李香宇, 任建存
(海军航空工程学院控制工程系, 山东烟台264001)
摘要: 在分析液晶触摸屏的工作原理基础上,分析触摸屏专用控制器RA8806 的工作原理与控制方式。通过RA8806与单片机PIC16F877 的接口设计,给出系统中触摸屏的显示画,以及触摸控制的程序流程图,同时写出了具体程序。实践证明该设计方法完全能够满足实际应用的需要。
关键词: 触摸屏; 控制器RA8806; 太阳能热水器; PIC16F877
中图分类号: TN873+.93 文献标识码: A 文章编号:1674-6236(2011)10-0089-03
触摸屏作为智能仪器、仪表的输入设备,是具有简单、方便、自然的人机交互方式。而电阻式触摸屏对外完全隔离,不怕油污、灰尘、水,经济性很好,适应于各种恶劣的环境,因此应用到太阳能热水器的显示界面,同时起到控制执行器工作的作用。
1 触摸屏的结构和原理
触摸屏的基本原理是,用手指或其他物体触摸安装在显示器前端的触摸屏时,所触摸的位置(以坐标形式)由触摸屏控制器检测,并通过I/O 口送到CPU,从而确定输入的信息。触摸屏的本质是传感器,它由触摸检测部件和触摸屏控制器组成。触摸检测部件安装在显示器屏幕前面,用于检测用户触摸位置,接受后送触摸屏控制器;而触摸屏控制器的主要作用是从触摸点检测装置接收触摸信息,并将它转换成触点坐标送给触摸屏控制器,它同时能接收触摸屏控制器发来的命令并加以执行[1]。
本设计选用的是四线制电阻式触摸屏,是在强化玻璃表面分别涂上两层透明氧化金属导电层,利用压力感应进行控制。当手指触摸屏幕时,两层导电层在触摸点位置就有了接
触,电阻发生变化。在X 和Y 两个方向上产生信号,然后传送到触摸屏控制器RA8806。控制器侦测到这一接触并计算出(X,Y)的位置,再根据模拟鼠标的方式动作[2]。
电阻式触摸屏将矩形区域中触摸点的物理位置转换为代表X 方向和Y 方向的电压。上下两个导电层一个是水平方向,一个是竖直方向,分别用来测量X 和Y 的坐标位置,在水平面上的电极称为X+电极和X-电极,在竖直平面的电极称为Y+电极和Y-电极,如图1 所示。测量X 方向的时候,将X+、X-之间加上参考电压VCC,Y-断开, 用Y+电极作为测量点,获得X 方向的电压,得到的电压值经A/D 转换,就可对应的判断出接触点的X 坐标;同理测量Y 方向的电压,之后再完成电压与坐标的换算[3]。触摸点M 处测量结果计算如下:
图1 四线电阻式触摸屏测量原理
2 液晶显示触摸屏的硬件设计
液晶触摸屏包含图形液晶显示模块和附着在显示屏上的触摸屏两部分, 借助于触摸屏控制器RA8806 与微处理器PIC16F877 实现软硬件接口, 通过检测用户在触摸屏上的触
摸位置,实现显示与控制功能。
2.1 RA8806 控制器
对触摸屏的控制需要选用专门的触摸屏控制芯片,触摸屏控制芯片不仅能够完成A/D 转换而且能够实现电极电压的切换,本设计选用了四线电阻式触摸屏控制器RA8806。RA8806 是一个文字与绘图模式的点矩阵液晶显示控制器,其内建了双图层(Two Page)显示内存,及512 kB ROM 的字型码,可以显示全型(16×16 pixels)的繁体中文字型或是简体中文字型。RA8806 支持可转换8-bit 数据总线的8080/6800 系列之MPU 接口,而对于LCD 驱动接口,RA8806 亦可以被设定为4-bit 或8-bit 的数据总线。在一般模式下,RA8806 可支持最大到320×240 点分辨率的LCD 面板。RA8806 也内建了智能型触控扫瞄控制器, 支持了4 线电阻式触控扫瞄接口,而可程序化的PWM 可以用来调节LCD 面板的对比或背光。RA8806 也提供一个强大且聪颖的4×8(32键)或8×8(64 键)的键盘扫瞄接口,其中更包含了长按键的功能,同时透过适当的中断和轮询机制让使用者可以轻易的操作触控扫瞄、键盘扫瞄和电源管理等功能,因此可以有效的减轻MPU 的负担[4]。
2.2 液晶显示模块接口设计
本设计中采用的液晶显示模块是一种分辨率为320×240点阵的液晶显示器DV320240GB, 是一款内含硬件字库的图形点阵液晶显示器,具有体积小、重量轻、显示灵活等优点。它主要采用动态驱动原理,由行驱动控制器和列驱动器两部分组成了320×240 的全点阵液晶显示, 编程模式简洁方便。具有两种显示方式:文本显示和图形显示[5]。触摸屏液晶显示DV320240GB 和控制器RA8806 之间的连接如图2 所示。
图2 液晶显示屏DV320240GB 与控制器RA8806 接线图
3 控制系统硬件设计
由下位机采集温度和水位信息, 经过通信传输给上位机,之后通过液晶显示模块将其显示在液晶屏上,同时显示日历时钟DS1302 的实时时间。同时四线电阻式触摸屏通过触摸送给触摸屏控制器RA8806, 将触摸的信息送给上位机进行处理之后,一方面改变了液晶屏上的显示信息,另一方面主动发送给下位机进行处理,由此来控制电磁阀、加热器、水泵的工作[6]。控制系统的总体框图如图3 所示。
4 系统软件设计
4.1 触摸屏画面设计
单片机开始运行,首先进入主界面显示,显示采集的温度、水位信息和北京时间,同时在主界面通过触摸相应位置又可以进入参数设置界面和手动控制界面,以及故障检测界面。主界面示意图如图4 所示。
图4 参数显示的主界面
4.2 触摸屏控制程序设计
触摸屏控制器RA8806 连接到微控制器PIC16F877 上。当发生触摸时, 由RA8806 向PIC16F877 提出中断请求, 接着PIC16F877 就会响应该中断请求, 通过RA8806 的转换结果,得到触摸点的坐标。图5 为RA8806 测量子程序流程图。
图5 RA8806 测量子程序流程图
触摸屏控制器RA8806 进入中断程序后,采集X、Y 坐标值的命令程序如下:
LCD_CmdWrite ( INTR); //Check INT status
INT_Sta=LCD_DataRead ( );
if (INT_Sta&0x01 ) //Check if TP interrupt
{
LCD_CmdWrite ( TPXR);
X1=LCD_DataRead ( ); //MSB of X
LCD_CmdWrite ( TPYR);
Y1=LCD_DataRead ( ); //MSB of Y
LCD_CmdWrite ( TPZR);
X2= LCD_DataRead ( ) &0x03; //LSB two Bits of X
LCD_CmdWrite ( TPZR);
Y2= LCD_DataRead ( ) &0x0C; //LSB two Bits of Y
… …
LCD_CmdWrite ( INTR); //Clear Touch Panel
Status
temp=LCD_DataRead ( ) &0xfe;
LCD_CmdWrite(INTR);
LCD_DataWrite ( temp);
}
5 结论
触摸屏作为一种新型的输入设备正在得到日益广泛的应用。而利用RA8806 实现触摸屏控制,可以方便实现与单片机之间的连接,与点阵式液晶显示屏DV320240GB 相配合使用,通过单片机与触摸屏之间的接口设计,可以便捷地实现控制功能。
参考文献:
[1] 王富东. 电阻式触摸屏与单片机的接口技术[J].苏州大学学报,2006,12
[2] 石杨, 闵子建. 基于触摸屏控制器的在线动态数据采集及预处理[J].微计算机信息, 2008,24
[3] 刘彬, 韩进. 基于单片机的液晶显示触摸屏控制设计[J].液晶与显示,2010,4
2010,4(2):240-244.
[4] 刘升. 基于RA8806 控制器的LCD和51单片机接口技术[J],电子设计工程,2009,17
[5] 黎安军,蓝飘先. 51单片机的触摸屏系统的应用[J].计算机科学与技术,2008,26
[6] 王选民, 李明利,等.基于ADS7846 的电阻式触摸屏接口设计[J].现代电子技术,2010(11)