单片机与触摸屏_第1页
单片机与触摸屏_第2页
单片机与触摸屏_第3页
单片机与触摸屏_第4页
单片机与触摸屏_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机扩展触摸屏人机接口的应用实例本文介绍了四线电阻式触摸屏控制器 BBADS7843 与 AVR 单片机 Atmega128 的硬件连接和驱动程序设计。触摸屏如图 1,典型触摸屏的工作部分一般由三部分组成:两层透明的阻性导体层、两层导体之间的隔离层、电极。阻性导体层选用阻性材料,如锢锡氧化物层衬底用塑料,下层衬底用玻璃。隔离层为粘性绝缘液体材料,如聚脂薄膜。电极选用导电图 1 触摸屏触摸屏工作时,上下导体层相当于电阻网络。当某一层电极加上电压时,会在该网络上形成电压梯度。如有外力使得上下两层在某一点接触,则在电极未加电压的另一层可以测得接触点处的电压,从而知道接触点处的坐标。比如,在顶层的电

2、极(X+,X)上加上电压,则在顶层导体层上形成电压梯度,当有外力使得上下两层在某一点接触,在底层就可以测得接触点处的电压,再根据该电压与电极(X+)之间的距离关系,知道该处的 X 坐标。然后,将电压切换到底层电极(Y+,Y)上,并在顶层测量接触点处的电压,从而知道 Y 坐标。四线制电阻触摸屏也是目前最常用的触摸屏产品。本系统中选用 AMT9502。(ITO)涂在衬底上构成,上性能极好的材料(如银粉墨)构成,其导电性能大约为ITO 的 1000 倍。Y+XJIX触摸屏控制器硬件设计Atmega128 单片机是 Atmel 公司的 8 位 RISC 单片机,片内有 128Kflash、4KRAM、

3、4KEEPROM、两个可编程的 USART、1 个可工作在主机/从机的 SPI 串行接口。此外还有丰富的 I/O接口,8 通道 10 位分辨率 ADC 转换器等硬件资源。单片机最小系统设计如图 2 所示。低电压版本的 Atmega128 支持 3.3V、5V 两种供电电压,本系统采用 5V 供电,便于供电电压统一。晶振采用常规直插晶振 7.373800M,选用标准晶振的目的主要是为了提高 USART 通讯波特率的准确性,使单片机能够使用于比较高的通讯波特率。复位电路采用常规的 RC 复位,没有使用特殊的复位器件,Atmega128 已经内置了看门狗,并且可以通过编程使看门狗在程序启动前启动,即

4、上电后程序启动前,看门狗已经启动,这样系统的可靠性可以得到保证,看门狗最高分频系数是 2048K,最小分频系统是 16K。系统中 PB0(SS)已经直接接到+5V,这样硬件配置了单片机为主机,下面所有外挂的均为从机,本系统外挂只有一个就是 ADS7843o 单片机和触摸屏控制器连接如图 3 所示,PB1(CLK)为 SPI 时钟,PB2(MOSI)为 SPI 主机输出从机输入,PB3(MISO)SPI 主机输入从机输出。这三根线为 SPI 总线。图 2 单片机最小系统图PM闽4-1HUIiXEjj-rIErM?aiFj心q”川1Alm畀 . 打旺电p”献小FJUi4t|f4*6弛*厚士居叫21

5、*16JO(43ItFT*IAl;心141347载事齐1Ii-5IiKKrt-a01加KliXM4fl一iH-?iKJiUlTTimuMOJTKlE 以联送I?EiPFL-I一J兰二jviMiQaii-r.-1|lOClJbl5-, 三二1之工:M:二VMEJIKAUV曾*喻告:一左 T 皿皿所.jS-BKWHrQ一JHuI._r_,Fi-一l*3MTA:1Tl际Etk!H 宠图 3 单片机和触摸屏控制器连接图ADS7843 是 TI 公司的触摸屏控制器芯片专门应用于四线电阻式触摸屏,最高达到125K 的转换率 8 位或者 12 位可编程精度。外部参考电压范围从 1V 到 VCC 均可,VCC

6、 最高电压为 5V,高速低功耗使得 ADS7843 非常适合于使用电阻触摸屏的手持设备。 宽温度设计使得它很适用于大量的工业现场。ADS7843 连接触摸屏的示意图如图 4 所示。+J7VIo*5VXT:图 4ADS7843 和触摸屏连接图触摸屏是一个四线电阻屏幕,可以示意出两个电阻,测量 X 方向的时候,将 X+,X-之间加上参考电压 Vref,Y-断开,Y+作为 A/D 输入,进行 A/D 转换获得 X 方向的电压,同理测量 Y 方向的时候,将 Y+,Y-之间加上参考电压 Vref,X-断开,X+作为 A/D 输入,进行 A/D 转换获得 Y 方向的电压,之后再完成电压与坐标的换算。整个过

7、程类似一个电位器,触摸不同的位置分得不同的电压。以上所需要的加参考电压断开 A/D 转换等工作都是 ADS7843 直接完成的,只需要将相应的命令传输到 ADS7843 即可,等待转换周期完成,检测到 BUSY 信号不再忙,即可以获得相应电压O-K-8 口2DIN&USVDOUT的数据。此外 PENIRQ 一般需要一个上拉电阻,因为 ADS7843 是一个 OC 门输出结构,本系统中直接使用Atmega128 内部的上拉电阻。单片机中断系统中将 INT0 分配给触摸屏控制器,并且设定成低电平触发,这样可以检测按键时间,可以用按键长短处理不同的功能。触摸屏控制器驱动程序驱动程序的编写与硬

8、件的设计是直接相关,驱动程序是以上面所设计的硬件为基础的。bit6bit5jbit4bit3btt2Ibitlj bitOSA2AlAOMODESER/DFRPD1 PDO表 1ADS7843 的控制字及数据传输格式根据 ADS7843 的 Datasheet,ADS7843 的控制字及数据传输格式如表 1。其中 S 为数据传输起始标志位,该位必为“1:A2A0 进行通道选择。MODE 用来选择 A/D 转换的精度,“1Mi8 位,“腌才 i12 位。SER/选择参考电压的输入模式。PD1、PD0 选择省电模式:“00”省电模式允许,在两次 A/D 转换之间掉电,且中断允许;“01 同“00;

9、只是不允许中断;“10”保留;“11禁止省电模式。为了完成一次电极电压切换和 A/D 转换,需要先通过串口往 ADS7843 发送控制字,转换完成后再通过串口读出电压转换值。标准的一次转换需要 24 个时钟周期。由于串口支持双向同时进行传送,并且在一次读数与下一次发控制字之间可以重叠,所以转换速率可以提高到每次 16 个时钟周期。 如果条件允许, CPU 可以产生 15 个 CLK 的话(比如 FPGA 和 ASIC),转换速率还可以提高到每次 15 个时钟周期。所以我们选择控制字:0 x94-X+输入彳#到丫 AD 值 0 xe4-Y+输入得到 XAD 值SPI 初始化程序:voidspi_

10、init(void)(SPCR=0 x53;/setupSPISPSR=0 x00;/setupSPI)SPI 主机传输函数:voidSPI_MasterTransmit(charcData)(SPDR=cData;/*启动数据传输*/while(!(SPSR&(1SPIF);/*等待传输结束*/)读取 ADS7843 的模拟量值;unsignedintGet_Touch_Ad(unsignedcharchannel)(unsignedintad_tem;SPI_MasterTransmit(channel);/发送控制字if(PING&0 x08=0);/判断 busydelayms(1);SPI_MasterTransmit(0);delayms(1);等待发送完毕ad_tem=SPDR;ad_tem=ad_tem4;return(ad_tem);返回的参数)不同的用户还需根据自己设计的系统,做一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论