四线电阻屏工作原理:
电阻屏的主要部分是一块与显示屏表面配合非常好的电阻薄膜屏,这是一种多层的复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的导电层,上面再盖有一层外表硬化处理、光滑防刮的塑料层,它的内表面也涂有一层透明导电层,在两电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔开绝缘。当手指触摸屏幕时,平常绝缘的两层导电层在触摸点位置就有了一个接触,控制器侦测到这个接通之后,其中一面导电层接通y轴方向的5V均匀电压场,另一导电层将接触点的电压引至控制卡进行A/D转换,得到电压值后与5V相比即可得到触摸点的y轴坐标,同理得出x轴得坐标。
LCDx=xoff+xfac*Px;线性方程,相当于y=kx+b,其中LCDx=y,xoff=b,xfac=k,Px=x
LCDy=yoffy+fac*Py;线性方程,相当于y=kx+b,其中LCDy=y,yoffy=b,fac=k,Py=y
触摸屏程序注意事项:
为什么需要校准?确定电压和坐标之间的关系
校准参数保存在哪里?保存在EEPROM(断电也可保存),每次重新使电系统初始化后读出来这个参数即可。
电阻屏感应触摸后输出两个方向的电压,根据电压值来判断触摸点,而且还需要一个特定的触摸屏AD转换芯片来转换。
XPT2046
XPT2046是一款4导线制触摸屏控制器,内含12位分辨率125KHz转换速率逐步逼近型A/D转换器。XPT2046支持从1.5V到5.25V的低电压I/O接口。XPT2046能通过执行两次A/D转换查出被按的屏幕位置,除此之外,还可以测量加在触摸屏上的压力。内部自带2.5V参考电压可以作为辅助输入、温度测量和电池检测模式之用,电池监测的电压范围可以从0V到6V。而且XPT2046片内集成有一个温度传感器。
XPT2046数字接口
1、前8个时钟通过DIN引脚输入控制字节(命令字)
2、转换器收到有关下次转换的足够信息后,接着根据获得的信息设置输入多路选择器和参考源输入,并进入采样模式。
3、三个多时钟之后(等待的时间),控制字节设置完成,转换器进入转换模式。
4、接着12个时钟周期,将完成真正的AD转换。
5、如果度量比率转换方式(SER/_DRR=0),驱动器在转换过程中将一直工作,第13个时钟将输出转换的最后一位,剩下三个时钟完成转换器忽略的最后字节。
XPT2046命令字(控制字节):
u8 CMD_RDX=0XD0;//读取X轴坐标命令
u8 CMD_RDY=0X90;//读取Y轴坐标命令
0XD0: 1 1 0 1 0 0 0 0
0X90: 1 0 0 1 0 0 0 0
//触摸屏控制器,结构体用来选择电容触摸屏还是电阻触摸屏
typedef struct
{
u8 (*init)(void);
u8 (*scan)(u8);
void (*adjust)(void);
u16 x[CT_MAX_TOUCH];//保存坐标
u16 y[CT_MAX_TOUCH];
u8 sta;//笔的状态
float xfac;//一次线性方程的变量
float yfac;
short xoff;
short yoff;
u8 touchtype;//确定是电阻屏还是电容屏,b7:0是电阻屏 b7:1是电容屏
}_m_tp_dev;