当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]单片机扩展触摸屏人机接口的应用实例

触摸屏

如图1,典型触摸屏的工作部分一般由三部分组成:两层透明的阻性导体层、两层导体之间的隔离层、电极。阻性导体层选用阻性材料,如铟锡氧化物(ITO)涂在衬底上构成,上层衬底用塑料,下层衬底用玻璃,隔离层为粘性绝缘液体材料,如聚酯薄膜。电极选用导电性能极好的材料(如银粉墨)构成,其导电性能大约为ITO的1000倍。

触摸屏工作时,上下导体层相当于电阻网络。当某一层电极加上电压时,会在该网络上形成电压梯度。如有外力使得上下两层在某一点接触,则在电极未加电压的另一层可以测得接触点处的电压,从而知道接触点处的坐标。比如,在顶层的电极(X+,X-)上加上电压,则在顶层导体层上形成电压梯度,当有外力使得上下两层在某一点接触,在底层就可以测得接触点处的电压,再根据该电压与电极(X+)之间的距离关系,知道该处的X坐标。然后,将电压转换到底层电极(Y+,Y-)上,并在顶层测量接触点处的电压,从而知道Y坐标,四线制电阻触摸屏也是目前最常用的触摸屏产品,本系统中选用AMT9502。

触摸屏控制器硬件设计

Atmega128单片机是Atmel公司的8位RISC单片机,片内有128Kflash、4KRAM、4KEEPROM、两个可编程的USART、1个可工作在主机/从机的SPI串行接口,此外还有丰富的I/O接口,8通道10位分辨率ADC转换器等硬件资源。

单片机最小系统设计如图2所示,低电压版本的Atmega128支持3。3V、5V两种供电电压,本系统采用5V供电,便于供电电压统一。晶振采用常规直插晶振7。373800M,选用标准晶振的目的主要是为了提高USART通讯波特率的准确性,使单片机能够使用比较高的通讯波特率。复位电路采用常规的RC复位,没有使用特殊的复位器件,Atmega128已经内置了看门狗,并且可以通过编程使看门狗在程序启动前启动,即上电后程序启动前,看门狗已经启动,这样系统的可靠性可以得到保证,看门狗最高分频系数是2048K,最小分频系统是16K,系统中PB0(SS)已经直接接到+5V,这样硬件配置了单片机为主机,下面所有外挂的均为从机,本系统外挂只有一个就是ADS7843,单片机和触摸屏控制器连接如图3所示,PB1(CLK)为SPI时钟,PB2(MOSI)为SPI主机输出从机输入,PB3(CLK)为SPI时钟,PB2(MOSI)为SPI主机输出从机输入,PB3(MISO)SPI主机输入从机输出,这三根线为SPI总线。ADS7843是TI公司的触摸屏控制器芯片专门应用于四线电阻式触摸屏,最高达到125K的转换率8位或者12位可编程精度,外部参考电压范围从1V到VCC均可,VCC最高电压为5V,高速低功耗使得ADS7843非常适合于使用电阻触摸屏的手持设备,宽温度设计使得它很适用于大量的工业现场。

ADS7843连接触摸屏的示意图如图4所示。

触摸屏是一个四线电阻屏幕,可以示意出两个电阻,测量X方向的时候,将X+,X-之间加上参考电压Vref,Y-断开,Y+作为A/D输入,因为A/D转换获得X方向的电压,同理测量Y方向的时候,将Y+,Y-之间加上参考电压Vref,X-断开,X+作为A/D输入,进行A/D转换获得Y方向的电压,之后再完成电压与坐标的换算,整个过程类似一个电位器,触摸不同的位置分得不同的电压。

以上所需要的加参考电压断开A/D转换等工作都是ADS7843直接完成的,只需要将相应的命令传输到ADS7843即可,等待转换周期完成,检测到BUSY信号不再忙,即可获得相应电压的数据。

此外,PENIRQ一般需要一个上拉电阻,因为ADS7843是一个OC门输出结构,本系统中直接使用Atmega128内部的上拉电阻,单片机中断系统中将INT0分配给触摸屏控制器,并且设定成低电平触发,这样可以检测按键时间,可以用按键长短处理不同的功能。

触摸屏控制器驱动程序

驱动程序的编写与硬件的设计是直接相关的,驱动程序是以上面所设计的硬件为基础的。

根据ADS7843的Datasheet,ADS7843的控制字及数据传输格式如表1。其中S为数据传输起始标志位,该位必为"1"。A2-A0进行通道选择。MODE用来选择A/D转换的精度,"1"选择8位,"0"选择12位,SER/选择参考电压的输入模式,PD1、PD0选择省电模式,"00"省电模式允许,在两次A/D转换之间掉电,且中断允许;"01"同"00",只是不允许中断;"10"保留;"11"禁止省电模式。

为了完成一次电极电压切换和A/D转换,需要先通过串口往ADS7843发送控制字,转换完成后再通过串口读出电压转换值,标准的一次转换需要24个时钟周期,由于串口支持双向同时进行传送,并且在一次读数与下一次发控制字之间可以重叠,所以转换速率可以提高到每次16个时钟周期,如?跫?市恚珻PU可以产生15个CLK的话(比如FPGA和ASIC),转换速率还可以提高到每次15个时钟周期。

所以我们选择控制字:

0x94---X+输入得到YAD值0xe4---Y+输入得到XAD值

SPI初始化程序:

不同的用户还需根据自己设计的系统作一个简单的四点校正程序,这样可以获得一个精确度较高的触摸屏坐标体系。

结语

本系统已经在国家重点建设项目扬州二电厂工程2×600MW发电机组的自动化设备中得到应用,共使用了64套,运行一年以来使用情况良好。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在单片机通信系统中,数据帧是实现设备间可靠对话的核心载体。不同于网络通信中成熟的TCP/IP协议,单片机通信往往需要自定义数据帧格式,而帧头、帧尾与校验机制则是保障数据传输准确性的三大关键。

关键字: 单片机 数据帧

随着嵌入式技术的不断发展,时序分析工具和方法也在不断进步,未来将朝着智能化、自动化的方向发展,为开发者提供更高效的调试手段。但无论技术如何发展,扎实的时序分析基础都是嵌入式开发者不可或缺的能力,只有深入理解通信时序的本质...

关键字: 时序 单片机

在嵌入式系统设计中,不同架构、不同厂商的单片机协同工作早已成为常态。从8位的51系列到32位的STM32,从精简指令集的PIC到复杂指令集的AVR,这些性能各异的单片机如何突破硬件差异实现数据交互,是嵌入式开发中的核心课...

关键字: 嵌入式 单片机

在嵌入式系统开发中,单片机的时钟系统是整个系统的"心脏",所有的指令执行、外设操作、定时器中断都依赖于精准的时钟信号。但在实际开发过程中,很多开发者都会遇到单片机时钟不准的问题,表现为定时器计时偏差、UART通信波特率错...

关键字: 控制系统 单片机

在单片机开发与调试过程中,复位电路作为保障芯片正常启动的核心模块,其稳定性直接影响程序烧录与系统运行。实际应用中,不少开发者会遇到“接稳压电源可正常烧录,接入电池后却无法烧录程序”的故障,此类问题多与复位电路设计、电池供...

关键字: 单片机 复位电路 时序匹配

在单片机的世界里,“字节”(Byte)是一个贯穿始终的核心概念。从存储数据到执行指令,从变量定义到外设通信,字节无处不在。很多初学者在学习单片机时,往往更关注复杂的程序逻辑和外设驱动,却忽略了字节这个基础知识点,导致在后...

关键字: 单片机 字节

在单片机的数字逻辑中,我们通常最关注的是高电平和低电平两种状态,它们构成了二进制数字世界的基础。然而,除了这两种状态之外,还有一种至关重要但常常被忽视的状态——高阻态(High Impedance State)。高阻态就...

关键字: 单片机 高阻态

对于PIC入门者来说,不需要盲目追求高端开发板,一块功能均衡、资料丰富的入门款就能满足需求。比如Microchip官方推出的PIC16F84A开发板,它搭载经典的8位PIC内核,引脚布局清晰,自带LED、按键等基础外设,...

关键字: PIC 单片机

该低功耗器件支持5V运行,在实现高性能的同时,能有效保障系统简洁性与成本效益

关键字: MCU 单片机 工业自动化

新型触摸屏控制器为现代汽车应用中超小到超大显示格式带来可靠触摸传感

关键字: 触摸屏 控制器 发光二极管
关闭