kaiyun官方注册
您所在的位置: 首页> 显示光电> 设计应用> 四线电阻式触摸屏控制器的应用研究
四线电阻式触摸屏控制器的应用研究
摘要:介绍以C8051为核心的触摸屏控制系统的设计,分析了在系统设计过程中出现的干扰信号、测量值偏差和信号采集中延时时间的设定不当等问题以及它们对系统控制效果的影响,并给出了解决方法。
Abstract:
Key words :

1引言

ADS7843是一种四线式触摸屏控制器,目前较多应用于电阻式触摸屏输入系统中尽管有很多相关的典型应用和应用注意事项但是在实际使用过程中仍然会遇到一些问题应用在通用的单片机中所出现的问题及解决方法已有一些介绍本文是对基于高速、流水线结构的C8051的触摸屏控制系统设计中所遇到的问题进行分析处理并给出了解决方法

2液晶触摸屏的系统设计

2.1硬件组成

采用典型的四线电阻式触摸屏其主要特点是精确度高不受环境干扰适用于各种场合控制器为四线电阻式触摸屏通用的ADS7843控制芯片具有12位转换精度支持SPI通讯协议内建512KByt e ROM,提供繁体或简体中文支持2 Page显示模式支持文本显示和图形显示(320×240)两种方式显示模块内建有512KByt e16× 16中文显示字型ROM(FontROM)8× 6A SCI I半型字型除内建8× 1616× 16的字号外还提供字型放大的功能

单片机采用CygnalC8051F020,高速、 流水线结构的C8051兼容的CIP - 51内核64K字节的FLA SH,4K +256字节的RAM, 12位的AD转换精度硬件实现的SPIS MBus/I2C接口5个通用的16位定时器70%的指令执行时间为一个或两个系统周期

2 . 2  接口电路

如图1ADS7843串行接口的一次完整操作需要3× 8=24DCL K时钟周期8个脉冲接收8位的命令并在第6个脉冲的上升沿开始A / D转换器进入采样阶段从第9个脉冲开始进入转换阶段输出12位采样值转换结束进入空闲阶段直到24DCL K结束CS置高电平一次测量结束如图2所示此外ADS7843还支持其他的工作方式这里不再详述


2 . 3  工作原理

当用户在触摸屏上的有效区域内点击时触摸屏的X方向、Y方向输出电阻分别随XY呈线性变化ADS7843控制器将其分别转换为12位数据通过中断告知C8051F020需要接收数据C8051F020接收到数据后进行处理首先进行触点数据是否有效判断包括两方面一是判断是否误操作即是否是由于人的抖动产生的错误数据二是ADS7843传过来得数据是否有效由于刚开始的传过来的第一个坐标是用户开始接触触摸屏时产生的电阻不准确导致数据也不准通常要去掉在接收过程中采用多次平均的方法假如有一次接收的数据和平均值差别很大则这次测量就作废需要重新测量一旦数据有效C8051F020接着计算触点坐标落在液晶屏的位置根据计算的结果判断执行相应的功能函数使触摸屏和液晶屏有机的结合起来建立一定的逻辑关系交互地进行信息存取和输出

2 . 4  触摸屏坐标读取的软件流程

3  设计中出现的问题及解决方法

3 . 1  干扰信号

在测试时手指或触摸笔触摸时会产生一定的干扰信号干扰情况分为两种(1)通过中断管脚会一直向C8051F020发出中断请求解决方法中断信号接缓冲器然后将输出管脚接1 μF的钽电容滤除中断干扰信号(2) ADS7843输出值不稳定解决方法X +Y +管脚上连接15pF钽电容滤波经过测试验证问题解决良好连接电路见图1

3 . 2ADS7843的测量值偏差

当有触摸动作时触摸点电阻膜会抖动或错误触发解决方法先延时以消除抖动采样16去掉采样的最先两个值和最后两个值利用软件滤波去除采样中的抖动造成的偏差和误触发利用中间连续采样的12次值从采样的第3次值到第14个值求出每次相邻两次采样值之差求和后取平均值与预设值相比较如果大于预设值则此触摸动作无效小于预设值则把采集数据的最小6个差值对应的数据求平均值作为坐标值可以消除抖动和误触发的无效值得到的坐标采样值精确度较高相对于其他的滤波算法,该方法最优

3 . 3  信号采集中的延时时间设定

因为C8051F020的速度是普通51芯片的12ADS7843在进行数据采集时时钟信号高低电平持续的时间必须足够方可保证能采集到坐标值测试中发现在高低电平后延迟4“_n op_( )空指令时触摸X坐标线可以采集到X值坐标且有起始点坐标值有线性变化触摸Y坐标时采集到的Y坐标值无起始点在触摸屏上的Y坐标上的值相差无几,几乎没有变化将延时指令由原来的4“_nop_( )改为16发现测试结果正常能同时读出XY值坐标且两坐标值均有起始点且线性变化因此在信号采集程序中将时钟信号的延迟时间改为16“_n op_( )例程如下

void Ext _int 0( )int err upt0

{//关中断

//延时以消除抖动

//去除初次不稳定值,软件滤波

//以下程序为多次循环读取多组XY坐标值

Whit e Char T07843(0X90)//送控制字

While(BUSYT)//判忙

DCL K =1_nop_( )_nop_( )_nop_( )_nop_( )

_nop_( )_nop_( )_nop_( )_nop_( )

_nop_( )_nop_( )_nop_( )_nop_( )

_nop_( )_nop_( )_nop_( )_nop_( )

//时钟信号足够时间来读取坐标值

DCL K =0_nop_( )_nop_( )_nop_( )_nop_( )

_nop_( )_nop_( )_nop_( )_nop_( )

_nop_( )_nop_( )_nop_( )_nop_( )

_nop_( )_nop_( )_nop_( )_nop_( )

//时钟信号足够时间来读取坐标值

X_pos[ r] =ReadFr omChar Fr om7843( )//X

//以下为读取坐标Y值;

Whit e Char T07843(0XD0)

//下同读取X值程序

// C80 51F0 20读取ADS7843AD转换值

//关中断,延时

//开中断 }

4  结束语

经过反复测试后得出在系统控制中所产生的问题均被解决触摸屏上每个设定的触摸键反应都很灵敏在触摸键的有效区域内都有反应


此内容为AET网站原创,未经授权禁止转载。
Baidu
map