微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于C8051F021和ADS7846的触摸屏系统设计

基于C8051F021和ADS7846的触摸屏系统设计

时间:11-04 来源:互联网 点击:
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触摸屏控制器的触摸屏控制系统的设计方法。讨论了在触摸屏控制系统开发过程中的若干软、硬件问题。在工程实际中,本系统经过多次测试,效果良好。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top