kaiyun官方注册
您所在的位置: 首页> 模拟设计> 设计应用> 基于C8051F021和ADS7846的触摸屏系统设计
基于C8051F021和ADS7846的触摸屏系统设计
摘要:触摸屏凭借其独特的操作特性,应用日益广泛,它配合微控制器使用,能使嵌入式设备或手持式设备具有更加良好的人机交互界面,操作更加方便快捷。本文给出了一个基于C8051F021单片机和ADS7846 触摸屏控制器的触摸屏控制系统的设计方法。
Abstract:
Key words :

  0 引言

  随着现代电子产品设计技术的不断发展,电子产品的设计,尤其是人机交互界面的设计越来越趋向于人性化。触摸屏凭借其独特的操作特性,应用日益广泛,它配合微控制器使用,能使嵌入式设备或手持式设备具有更加良好的人机交互界面,操作更加方便快捷。本文给出了一个基于C8051F021单片机和ADS7846触摸屏控制器的触摸屏控制系统的设计方法。

  1 触摸屏工作原理

  触摸屏有电阻式、电容式、红外线式、表面声波式等多种。其中电阻式触摸屏是目前应用较为广泛的一种,可分为四线、五线、七线等几类。其中四线制电阻式触摸屏采用的是四线电阻模拟量技术,即两个阻性层工作时,每层均加有5 V恒定电压,一个竖直方向,一个水平方向,含四根导线;其特点主要是传输反应快,解析度高,稳定性好,一次校正,不易漂移,比较适合于工业控制领域,但使用时要注意防止外导电层被划伤。

  电阻式触摸屏实际上是一种传感器,它采用分压器原理将矩形区域中的触摸点(X,Y)的物理位置转换为代表X坐标和Y坐标的电压,图1所示是其原理图。四线制触摸屏一般包含两个阻性层:其中一层在屏幕的左右边缘各有一条垂直总线,而另一层在屏幕的底部和顶部各有一条水平总线。为了在X轴方向进行测量,可将左侧总线偏置为0 V,右侧总线偏置为VREF,并将顶部或底部总线连接到ADC,这样,当两个阻性层相接触时(即有触摸时)即可作一次测量;为了在Y轴方向进行测量,可将底部总线偏置为0 V,顶部总线偏置为VREF,并将左侧或右侧总线连接到ADC,这样,当两个阻性层相接触时,即可对电压进行测量;该屏最理想的连接方法是将偏置为 VREF职的总线接在ADC的正参考输入端,而将偏置为OV的总线接在ADC的负参考输入端。

电阻式触摸屏

  2 系统的硬件设计与实现

  2.1 C8051F021的主要功能特点

  本系统选用性能优良且成本较低的SOC单片机C8051F021作为控制核心。它是完全集成的混合信号系统级MCU芯片,具有32个数字I/O引脚。其主要的内部资源有8通道12位ADC,2通道12位DAC,4 KB的RAM,64 KB的FLASH,以及硬件实现的SPI、SMBus/I2C和两个UART串行接口,同时带有时钟振荡器,看门狗定时器,VDD监视器,温度传感器等。其所有模拟和数字外设均可由IDE软件使能/禁止和配置。同时,它还采用了与8051兼容的CIP-51微控制器内核,因采用流水线结构,其指令执行速度有了很大的提高。此外,C8051F021还配置了标准的JTAG接口,在IDE软件的支持下,可对安装在最终产品上的MCU进行非侵入式、全速、在系统调试。该器件的封装为TQFP-64,可在工业温度范围内(-45℃~+85℃)使用2.7~3.6 V的电压工作。

  2.2 ADS7846的主要功能和特点

  ADS7846是BB公司生产的一种四线制触摸屏控制器。可广泛应用在电阻式触摸屏系统中。ADS7846的核心是一个具有采样和保持功能的12位逐次逼近式A/D转换器,其转换速率可达125kHz.且分辨率可编程为8位或12位。该器件不仅具有X、Y坐标测量功能,还具有电池电压、芯片温度、触摸压力和外模拟量4种测量功能,其工作方式可由控制字决定,片内的6选1模拟多路开关可根据微控制器送来的命令字来选择6个电压量之一(X+、Y+、Y-、 VBAT、TEMP、AUX-IN),并将其送入A/D转换器转换,然后再通过SPI接口将转换值送入微控制器。此外,ADS7846还集成有触摸识别电路,当检测到有触摸时,该电路会在PENIRQ(笔中断)引脚输出一个低电平信号,并以该信号向微控制器提出测量触点坐标的中断请求。该芯片采用单电源供电,工作电压为2.2~5.25 V,且内部自带+2.5 V的参考电压。

  2.3 C8051F021和ADS7846的硬件接口

  基于C8051F021单片机和ADS7846触摸屏控制器的触摸屏控制系统的硬件接口电路如图2所示。

C8051F021和ADS7846的硬件接口

  图2中。TX+、TX-、TY+、TY-为位置输入端,分别对应四线制电阻式触摸屏的四线制接口:

BUSY为忙信号指示,可在数据转换时持续一个时钟周期的高电平状态,当TCS为高时,BUSY为高阻状态:
TCS为片选输入,只有当TCS为低时,串行数据才可以从DIN读入;
DIN为串行数据输入,在DCLK的上升沿读入数据;
DOUT为串行数据输出,用于输出转换后的触摸点位置数据,12位工作方式下,其最大为4095,可在DCLK的下降沿输出数据,当TCS为高时,DOUT为高阻状态;
DCLK为外部时钟输人引脚,其输入时钟信号的频率决定了电路的转换速度,其推荐占空比为40%~60%;
PENIRQ为笔中断引脚。工作时应通过10~100 kΩ电阻器上拉,当有触摸事件发生时,可向微控制器申请中断服务;
VREF为A/D参考电压输入;

  TCS、DCLK、 DIN、 BUSY、DOUT、PENIRQ分别接C8051F021的P1.0、P1.1、P1.2、P1.3、P1.4、PO.3。另外,IN3、IN4为两个附属A/D输入通道,本系统没有用到,使用时可将其接地。

  3 系统软件的设计与实现

  ADS7846可通过片内模拟多路开关的切换,将X+/Y+端接VCC,将X-/Y-端接地,并将X+/Y+和X-/Y-以差分形式接到A/D转换器的输入端。这样,当点击触摸屏的不同位置时,输入到A/D转换器中的电压就不相同,然后再经A/D转换后,就可得到触点的输出值,该输出值与触点的位置成近似线性关系。ADS7846通过一般控制字来设置工作方式,其控制字如表1所列。

控制字

  在表1中,S为数据传输起始标志位,该位必为“1”;A2~A0用于通道选择;MODE用来选择A/D转换精度: “1”选择8位, “0”选择12位;SER/DFR选择参考电压的输入模式;PD1、PD0选择省电模式: “00”为省电模式,可在两次A/D转换之间掉电,且允许中断,而“01”同“00”相似,但不允许中断; “10”为保留; “11”为禁止省电模式。

  ADS7846与C8051F021之间通过标准的SPI接口相连。并由C8051F021启动3次SPI传送来完成转换。第1次SPI传送由 C8051F021向ADS7846发送控制字,含起始位、通道选择、8/12位模式选择、差分/单端选择和掉电模式选择;后两次SPI传送则是 C8051F021读取A/D转换后的结果数据,至此便完成了ADS7846和C8051F021之间的一次通信。其数据传送时序如图3所示。

数据传送时序

  本系统中的触摸屏应用流程图如图4所示。

触摸屏应用流程图

  在编程过程中,通常应该注意以下问题:

(1) C8051F021的初始化,一般还会包括显示模块的初始化等;
(2)DS7846的初始化,一般包括寄存器和笔中断的初始化等;
(3)防止抖动和连击,通常需要加入消抖子程序和延时子程序;
(4)减小测量误差,往往应采用多次测量并加入软件滤波子程序;
(5)触摸屏与液晶屏的坐标系不一致,还必须加入坐标变换子程序。

  4 结束语

  本文给出了一个基于C8051F021单片机和ADS7846触摸屏控制器的触摸屏控制系统的设计方法。讨论了在触摸屏控制系统开发过程中的若干软、硬件问题。在工程实际中,本系统经过多次测试,效果良好。

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