ADS7843可以通过连接触摸屏X+将触摸信号输入到A/D转换器,同时打开Y+和Y-驱动,然后再数字化X+的电压,从而得到当前Y位置的测量结果,同理,也可以得到X坐标的逻辑坐标。当得到X、Y的逻辑坐标后,通过SPI接口将数据传送给LM3S3748进行数据处理。其ADS7843的外部电路如图3所示。
1.4 RS232串口通信电路
RS232串口主要用于手柄控制器与核心板的通信,这类似于人机接口中的键盘接口。它们之间通过Modbus协议进行通信。其RS232串口通信电路如图4所示。
2 系统软件设计
2.1 触摸屏软件设计
ADS7843具有两种工作模式,分别为单端基准模式和差分基准模式。同时还可以对其进行12位或8位转换模式的选择。本设计采用差分基准模式和12位转换模式,即:
WriteCharTo7843(0xD0);∥送控制字10010000,
即用差分方式+12位转换模式,读X坐标;
……
WriteCharTo7843(0x90);∥送控制字11010000,
即用差分方式+12位转换模式,读Y坐标;
CPU采用中断方式对坐标进行读取。当未对屏幕进行触摸时,ADS7843的引脚PENIRQ为高电平输出,当对屏幕有触摸动作时,引脚PENIRQ变为低电平输出,每当CPU检测到这个引脚的下降沿时,系统进入中断读取坐标。其坐标值读取的流程如图5所示。当CPU在每一次获取逻辑坐标的过程中,实际上分别对X、Y坐标进行了11次读取,然后将读取到的逻辑坐标值分别存入两个数组,并且对这两个数组中的值进行冒泡排序,使其从小到大依次排列后,再去掉最大和最小的两个数值,并将中间值作为基准,余下数值与基准值进行求差的绝对值运算。设计中可设定一个阀值(此阀值可根据实验设置为5),如果绝对值大于阀值,则抛弃此值,最后将剩余数值求和平均,并将其作为最终逻辑坐标值。这就是流程图中“数据处理”所完成的功能。
系统中的主程序流程图如图6所示。其中触摸屏校准处理采用了一种较为通用的校准算法。由于电阻式触摸屏有一个共性,那就是电压成线性均匀分布,所以,只要求出逻辑坐标与物理坐标的比例系数,就可以实现逻辑坐标与物理坐标的转换。首先可确定5个物理坐标点。并依次在屏幕上用“+”显示,同时将其坐标值用数组Set_x[4]保存起来(以X坐标为例)。校准过程中读出的逻辑坐标值则用数组Read_X[3]存储。最后求出逻辑坐标与物理坐标的比例系数:
上一页 [1] [2] [3]