嵌入式实验报告_触摸屏驱动实验

时间:2020-10-17 08:57:56 手机站 来源:网友投稿

贵州大学实验报告

学院: 专业: 班级:

姓名

学号

实验组

实验时间

05.06

指导教师

余佩嘉

成绩

实验项目名称

触摸屏驱动实验

实验目的

1.了解触摸屏基本概念与原理。

2.理解触摸屏与 LCD 的密切配合。

3.编程实现对触摸屏的控制。

实验原理

1.触摸屏原理

触摸屏按其工作原理的不同分为表面声波屏、电容屏、电阻屏和红外屏几种。常见的又

数电阻触摸屏。

 如图 3-20 所示,电阻触摸屏的屏体部分是一块与显示器表面非常配合的多层复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的导电层,上面再盖有一层外表面硬化处理、光滑防刮的塑料层,它的内表面也涂有一层透明导电层,在两层导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔开绝缘。

如图 3-21 所示,当手指或笔触摸屏幕时(图 c),平常相互绝缘的两层导电层就在触摸点位置有了一个接触,因其中一面导电层(顶层)接通 X 轴方向的 5V 均匀电压场(图 a),使得检测层(底层)的电压由零变为非零,控制器侦测到这个接通后,进行 A/D 转换,并将得到的电压值与 5V 相比即可得触摸点的 X 轴坐标为(原点在靠近接地点的那端): Xi=Lx*Vi / V(即分压原理) 同理得出 Y 轴的坐标,这就是所有电阻触摸屏共同的最基本原理。

2.电阻触摸屏的有关技术

电阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复

合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层叫 ITO 的透明导电层,上面再盖有一层外表面硬化处理、光滑防刮的塑料层,它的内表面也涂有一层导电层(ITO 或镍金)。电阻触摸屏的两层 ITO 工作面必须是完整的,在每个工作面的两条边线上各涂一条银胶,一端加 5V 电压,一端加 0V,就能在工作面的一个方向上形成均匀连续的平行电压分布。在侦测到有触摸后,立刻 A/D 转换测量接触点的模拟量电压值,根据 5V 电压下的等比例公式就能计算出触摸点在这个方向上的位置。

透明的导电涂层材料有两种:

1)ITO,氧化钢,弱导电体,特性是当厚度降到 1800 埃以下时会突然变得透明,透光

度为 80%,再薄下去透光率反而下降,到 300 埃厚度时又上升到 80%。但遗憾的是 ITO 在这个厚度下非常脆,容易折断产生裂纹。

 ITO 是所有电阻触摸屏及电容触摸屏都用到的主要材料,实际上电阻和电容触摸屏的工作面就是 ITO 涂层。

2)镍金涂层,五线电阻触摸屏的外层导电层使用的是延展性极好的镍金涂层材料,外

导电层由于频繁触摸,使用延展性好的镍金材料目的是为了延长使用寿命,但是成本较高,镍金导电层虽然延展性好,但是只能作透明导体,不适合作为电阻触摸屏的工作面,因为它导电性太好,不宜作精密电阻测量,而且金属不易做到厚度非常均匀。

第一代四线触摸屏两层 ITOI 工作面工作时都加上 5V 到 0V 的均匀电压分布场:一个工作面加竖直方向的,一个工作面加水平方向的。引线至控制器总共需要四根电缆。因为四线电阻触摸屏靠外的那层塑胶及 ITO 涂层被经常触动,一段时间后外层薄薄的 ITO 涂层就会产生细小的裂纹,导电工作面一旦有了裂纹,电流就会绕之而过,工作面上的电压场分布也就不可能再均匀,这样,在裂纹附近触摸屏漂移严重,裂纹增多后,触摸屏有些区域可能就再也触摸不到了。

四线电阻触摸屏的基层大多数是有机玻璃,不仅存在透光率低、风化、老化的问题,并

且存在安装风险,这是因为有机玻璃刚性差,安装时不能捏边上的银胶,以免薄薄的 ITO 和相对厚实的银胶脱裂,不能用力压或拉触摸屏,以免拉断 ITO 层。有些四线电阻触摸屏安装后显得不太平整就是因为这个原因。

 ITO 是无机物,有机玻璃是有机物,有机物和无机物是不能良好结合的,时间一长就容易剥落。如果能够生产出曲面的玻璃板,玻璃是无机物,能和 ITO 非常好的结合为导电玻璃,这样电阻触摸屏的寿命能够大大延长。

 第二代五线电阻触摸屏的基层使用的就是这种导电玻璃,不仅如此,五线电阻技术把两个方向的电压场通过精密电阻网络都加在玻璃的导电工作面上,我们可以简单的理解为两个方向的电压场分时加在同一工作面上,而外层镍金导电层仅仅用来当作纯导体,有触摸后靠既检测内层 ITO 接触点电压又检测导通电流的方法测得触摸点的位置。五线电阻触摸屏内层ITO 需四条引线,外层只作导体仅仅一条,至控制器总共需要 5 根电缆。因为五线电阻屏的外层镍金导电层不仅延展性好,而且只作导体,只要它不断成两半,就仍能继续完成作为导体的使命,而身负重任的内层 1TO 直接与基层玻璃结合为一体成为导电玻璃,导电玻璃自然没有了有机玻璃作基层的种种弊端,因此,五线电阻屏的使用寿命和透光率与四线电阻屏相比有了一个飞跃:五线电阻屏的触摸寿命是 3 千 5 百万次,四线电阻屏则小于 1 百万次,且五线电阻触摸屏没有安装风险,同时五线电阻屏的 ITO 层能做得更薄,因此透光率和清晰度更高,几乎没有色彩失真。

不管是四线电阻触摸屏还是五线电阻触摸屏,它们都是一种对外界完全隔离的工作环

境,不怕灰尘、水汽和油污,它可以用任何物体来触摸,可以用来写字画画,比较适合工业控制领域及办公室使用。电阻触摸屏共同的缺点是因为复合薄膜的外层采用塑胶材料,不知道的人太用力或使用锐器触摸可能划伤整个触摸屏而导致报废。不过,在限度之内,划伤只会伤及外导电层,外导电层的划伤对于五线电阻触摸屏来说没有关系,而对四线电阻触摸屏来说是致命的。

3. 触摸屏的控制

本系统触摸屏的控制是使用的 S3c2410 处理器自带的触摸屏控制器,这部分的开发主要参考 S3c2410 处理器的芯片手册的第 416 页到第 419 页,具体详见流程图。这部分的控制主要是设置触摸屏的采样模式,处理器提供的模式:

1.正常的转换模式

2.手动的 x/y 位置转换模式

3.自动的 x/y 位置转换模式

我们这里使用的是第 3 种转换模式。需要注意的是在完成一次 x/y 坐标采样的过程中需要一次模式转换即在点击触摸屏之前是等待中断模式,当有触摸动作产生触摸屏中断以后,在 x/y 的坐标采集驱动中设置成自动的 x/y 位置转换模式,在完成采集以后再转换回等待中断模式,准备下一次的触摸采样。要用到的控制器如下:

4.触摸屏相关电路图

5.触摸屏与显示器的配合

从触摸屏控制器获得的 X 与 Y 值仅是对当前触摸点的电压值的 A/D 转换值,它不具有实用价值。这个值的大小不但与触摸屏的分辨率有关,而且也与触摸屏与 LCD 贴合的情况有关。

而且,LCD 分辨率与触摸屏的分辨率一般来说是不一样,坐标也不一样,因此,如果想得到体现 LCD 坐标的触摸屏位置,还需要在程序中进行转换。转换公式如下:

x=(x-TchScr_Xmin)*LCDWIDTH/(TchScr_Xmax-TchScr_Xmin)

y=(y-TchScr_Ymin)*LCDHEIGHT/(TchScr_Ymax-TchScr_Ymin)

其中,TchScr_Xmax、TchScr_Xmin、TchScr_Ymax 和 TchScr_Ymin 是触摸屏返回电压值x、y 轴的范围,LCDWIDTH、LCDHEIGHT 是液晶屏的宽度与高度。

实验仪器

硬件:ARM嵌入式开发平台、PC机Pentium100以上、用于ARM920T的JTAG仿真器、

模拟电压信号源。

软件:PC机操作系统Win2000或WinXP、ARM ADS1.2集成开发环境、仿真器驱动程序、

超级终端通讯程序。

实验步骤

1.新建工程,将“Exp5 触摸屏驱动实验”中的文件添加到工程。

2.在头文件中定义宏及常量(tchscr.c,tchscr.h)

/*复用功能管脚定义宏*/

#define nYPON 0x3

#define YMON 0x3

#define nXPON 0x3

#define XMON 0x3

/*ACDCON 宏*/

#define ECFLG_END 1 // End of A/D conversion

#define PRSCEN_Enable 1 //prescaler Enable

#define PRSCVL 49 //A/D converter in process

#define SEL_MUX 7 // xp

#define STDBM_NORMAL 0 //normal mode

#define STDBM_STANDBY 1 //Standby mode

#define READ_START 0 //Disable start by read operation

#define ENABLE_START 0 //No operation

/*ADC touch screen control register 宏*/

#define YM_SEN_Hi_Z 0 //YM=Hi-Z

#define YM_SEN_GND 1 //YM=GND

#define YP_SEN_External_voltage 0 //YP=External voltage

#define YP_SEN_AIN5 1 //conntected with AIN5

#define XM_SEN_Hi_Z 0

#define XM_SEN_GND 1

#define XP_SEN_External_voltage 0

#define xp_SEN_AIN7 1

#define PULL_UP_ENABLE 0 //ENABLE

#define PULL_UP_DISABLE 1 //DISABLE

#define AUTO_PST_Normal 0 //Normal ADC conversion

#define AUTO_PST_AUTO 1 //Auto(sequential) x/y positioin conversion

mode

#define XY_PST 0 //No operation mode

#define XY_PST_INT 0x3 //waiting for interrupt Mode

/*ADC start or interval delay register*/

#define DELAY

/*ADC conversion data0 register*/

#define UPDOWN_DOWN_0 0

#define UPDOWN_UP_0 1

#define AUTO_PST_sequencing_0 1

#define XY_PST_0 0

/*ADC conversion data1 register*/

#define UPDOWN_DOWN_1 0

#define UPDOWN_UP_1 1

#define AUTO_PST_sequencing_1 1

#define XY_PST_1 0

#define LCDWIDTH 640

#define LCDHEIGHT 480

/////////触摸屏动作////////

#define TCHSCR_ACTION_NULL 0

#define TCHSCR_ACTION_CLICK 1 //触摸屏单击

#define TCHSCR_ACTION_DBCLICK 2 //触摸屏双击

#define TCHSCR_ACTION_DOWN 3 //触摸屏按下

#define TCHSCR_ACTION_UP 4 //触摸屏抬起

#define TCHSCR_ACTION_MOVE 5 //触摸屏移动

int TchScr_Xmin=38,TchScr_Xmax=997,

TchScr_Ymin=23,TchScr_Ymax=974; //触摸屏返回电压值范围

3. 定义驱动函数(tchscr.c)

4.编写测试函数(tchscr.c)

将触摸动作及触摸点坐标在超级终端上显示出来。

5.校准触摸屏坐标输出,转换坐标,与 LCD 紧密配合

可以使用 TchScr_GetScrXY()函数来获得液晶屏的 x、y 方向的电压范围,分别点触摸屏

有效面积的左上角和右下角,得到下列参数:

TchScr_Xmax=997;

TchScr_Xmin=38;

TchScr_Ymax=974;

TchScr_Ymin=23;//此数值仅供参考,请以实际校对为准

实验内容

学习触摸屏基本原理,理解对触摸屏进行输出标定、与 LCD 显示器配合的过程。

实验数据

实验总结

基本达到实验的要求,了解触摸屏基本概念与原理,以及通过编程实现对触摸屏的控制,以及知道如何验证实验结果是否属于预期目标,并了解实验原理,为今后嵌入式的学习打下一定的学习基础。

指导教师意见

签名: 年 月 日

注:各学院可根据教学需要对以上栏目进行增减。表格内容可根据内容扩充。

推荐访问:实验报告 实验 触摸屏 嵌入式 嵌入式实验报告_触摸屏驱动实验

版权声明 :以上文章中选用的图片文字均来源于网络或用户投稿 ,如果有侵权请立即联系我们 , 我们立即删除 。