单片机的液晶显示触摸屏控制系统的工作方案介绍
摘要: 在分析液晶触摸屏的工作原理基础上,分析触摸屏专用控制器ADS7846 的工作原理与控制方式。通过ADS7846 与MCU 的SPI 接口,给出AT89S51 的测量子程序流程图,提出触摸屏触点坐标的获得方法与液晶屏显示实现同步的算法,以提高设计触摸屏与液晶屏的效率,满足控制精度。
在分析液晶触摸屏的工作原理基础上,分析触摸屏专用控制器ADS7846 的工作原理与控制方式。通过ADS7846 与MCU 的SPI 接口,给出AT89S51 的测量子程序流程图,提出触摸屏触点坐标的获得方法与液晶屏显示实现同步的算法,以提高设计触摸屏与液晶屏的效率,满足控制精度。
1 引 言
嵌入式触摸屏装置是人机交互设备,一般将触摸屏安装在液晶显示屏上面,利用微处理器对触摸屏与液晶显示屏进行控制,实现触摸屏对液晶显示屏的控制,方便、直观,取代了传统的键盘输入,成为嵌入式计算机系统的输入设备,广泛应用于电子产品与工业控制中。由于触摸屏边缘电阻不均匀,不易找到变化规律,难于实现触摸屏坐标与点阵式液晶显示屏相互对应,会出现触摸点与液晶显示屏显示信息错位,造成触摸控制信息不灵敏。本文基于AT89C51 单片机和ADS7846芯片,辅以点阵式液晶显示屏,进行嵌入式触摸屏输入与显示系统的软硬件设计,实现触点测量与液晶屏上像素相对应,实现预期的控制功能,提高触摸控制的灵敏度。
2 液晶显示触摸屏的硬件设计
液晶触摸屏包含图形液晶显示模块和附着在显示屏上的触摸屏两部分,借助于触摸屏控制器ADS7846 与微处理器A T89S51 实现软硬件接口,通过检测用户在触摸屏上的触摸位置,实现显示与控制功能。
2. 1 触摸屏的工作原理
触摸屏从工作原理上可以分为电阻式、电容式、红外线式、声表面波式、矢量压力传感器式等多种形式,本文采用目前使用最为普遍的四线电阻式触摸屏。
电阻式触摸屏由4 层透明的复合薄膜组成,底层是玻璃或有机玻璃构成的基层,顶层则是经过硬化处理的光滑防刮塑料层,底层、顶层内表面间为两层铟锡氧化物( ITO) 透明导电层,形成触摸屏的两个工作面,在每个工作面的两端各涂有一条银胶,称为该工作面的一对电极,若在一个工作面的电极对上施加电压,则在该工作面上就会形成均匀连续的平行电压分布。当在X 方向的电极对上施加一确定的电压,而Y 方向电极对上不加电压时,在X 平行电压场中,触点处的电压值可以在Y+ (或Y - ) 电极上反映出来,通过测量Y+ 电极对地的电压大小,经过A/ D 转换便可得知触点的X 坐标值。同理,当在Y 电极对上加电压,而X 电极对上不加电压时,通过测量X +电极的电压,经过A/ D 转换便可得知触点的Y坐标。电阻式触摸屏有四线和五线两种,四线式触摸屏的测量过程工作原理如图1 所示。
图1 四线电阻式触摸屏测量原理
触摸点P 处测量结果计算如下:
2. 2 ADS7846 控制器
ADS7846 是Burr2Brown 公司的一款触摸屏专用控制器,其内部结构如图2 所示。
图2 ADS7846 内部结构图。
ADS7846 内部由一个多路选择器和一个12位的A/ D 转换器构成,根据串行控制口的控制字控制多路选择开关的工作状态,控制工作面的工作电压,并把相应电极上的触点坐标位置对应的工作电压送到A/ D 转换器,变成数字量通过串行口再传递给CPU ,经过计算得到触点的X 、Y 方向的坐标,确定触点位置,程序根据触点坐标位置显示的信息执行相应的功能。
则P 点的二进制输出代码为:
其中:V ref_full为加在ADS7846 内部A/ D 转换器上的参考电压。
ADS7846 控制字见表1 所示,S 为数据传输的起始标志位,改为必须为"1";A2、A1、A0 用于通道选择控制,坐标与通道选择之间的关系见表2 所示。MODE用于控制A/ D转换的精度", 1"选择8位", 0"选择12 位。SER/ DFR 选择输入参考电压模式", 1"为单端模式", 0"为差分模式。PD1、PD0选择省电模式:"00"为省电模式允许,在两次A/ D转换之间掉电,且中断允许;"01"与"00"相似,但不允许中断;"10"保留;"11"禁止省电模式。
表1 ADS7846 的控制字
表2 ADS7846 的坐标与通道选择之间的关系
ADS7846 与MCU 之间通过标准的SPI 接口相连接,如图3 所示。当检测到有触摸动作时,ADS7846 的笔中断请求端( PENIRQ) 输出一个低电平信号向MCU 发出测量触点坐标的中断请求。MCU 通过SPI 接口,选中ADS7846 ,发出坐标测量控制字,然后读取ADS7846A/ D 转换结果数据,经过两次控制即可分别得到触点位置的X 、Y 坐标。ADS7846 工作时序如图4 所示。
图3 ADS7846 与MCU 之间SPI 接口。
图4 ADS7846 与MCU 通信时序。
3 触点坐标与液晶显示屏控制功能对应定位的确定
本例中ADS7846 采用差动参考电压方式,以减小测量误差,由于触摸屏存在着个体差异,不同触摸屏边沿的测量值不同,测量值达不到0 或者满量程(4096) ,而液晶显示屏具有较为准确的定位数值,很难实现触摸屏与液晶显示屏的点与点一一对应,给编程调试带来很大麻烦,只能实现触摸屏与液晶显示屏之间的区域对应,不影响液晶显示屏的显示功能和触摸屏的控制功能。
触摸屏控制器ADS7846 通过SPI 接口连接到微控制器A T89S51 上。当发生触摸时, 由ADS7846 向A T89S51 提出中断请求, 接着A T89S51 就会响应该中断请求,通过SPI 读取ADS7846 的转换结果,得到触摸点的坐标。图5为中断服务子程序与ADS7846 测量子程序流程图。
图5 中断服务子程序与ADS7846 测量子程序流程图。
为了有效地找到触摸屏触摸点与点阵式液晶显示屏对应区域坐标范围,按照液晶显示屏的显示功能区域的点阵坐标,按照液晶屏上显示的控制信息字符格式,合理选择水平线和竖直线,按照液晶显示和触摸屏控制功能区域进行触摸点数值测量,找到与液晶显示屏对应的触摸屏控制区域的触摸点数值范围。根据触摸屏触摸点坐标实测数据分析可以得到对应的液晶屏上像素点坐标。
液晶屏像素点坐标与触摸屏触摸点实测数值之间的关系可以表示为:
式中: X 、Y 为触点测量值; ( Xmin , Ymin ) 和( Xmax ,Xmax ) 分别为触摸屏上的最大值和最小值坐标触点测量; ( X1 , Y1 ) 为触点在液晶屏上的像素坐标,表3 、表4 中数据为实测数据。
表3 实测竖直直线上等距离测量坐标值
表4 实测水平直线上等距离测量坐标值
值得注意的是,经测量触摸屏X 方向的转换值为从大到小, Y 方向的转换值为从小到大,坐标值在一定范围内基本是成线性变化的。但是在触摸屏的边缘地带X 方向输出电阻和Y 方向输出电阻的变化较大,是非线性关系,因此为了比较准确地标定触摸屏坐标,在大范围内采用线性变化的规律,而在边缘地带需采用查表的方式。
4 结 论
利用ADS7846 实现触摸屏控制,可以方便利用SPI 接口实现与单片机之间的接口。与点阵式液晶显示屏相配合使用,通过液晶屏与触摸屏之间的坐标变换,可以便捷实现工业控制,同时提高液晶屏的反映速度。
暂无评论