触摸屏是一种广泛使用的输入设备9一般连接到电脑上使 常见的触摸屏包括表面声波触摸屏\电阻压力触摸屏\红外感应触摸屏\电容感应触摸屏等几种0 无论哪种触摸屏9只要在电脑 中安装好触摸屏驱动程序9然后进行简单的校准9就可以方便的 使用触摸屏了0 在实际的多媒体应用中9有时不需要有具体的内 容显示在屏幕上9但又需要用触摸屏来作为输入设备一般是在 触摸屏背面贴上一些简单的刻画出来的线条图案或文字等作为 触摸区域指示9此时就不需要用电脑了9可直接用单片机连接触 摸屏9然后通过单片机编程来判断用户点击了哪个区域9从而实 现相应的输出0 本文以某品牌的一款 17 吋表面声波串口输出触摸屏和 51 单片机为例来谈一谈如何用单片机直接连接触摸屏0 要通过单片机直接连接触摸屏9首先必须要了解摸屏使用的 通信协议及数据格式0 通过查阅资料得知9该品牌的触摸屏串口 输出数据一共由 1O 个字节构成1其前导字符为CX(58H)$0 个字节的数据内容由以下内容构成1第一个字节为字符CY$9代表数据开始第二个字符为状态字 如果该字节为C8lH$9 代表手指在触摸屏上某点处按下 C83H$ 代表手指在触摸屏上拖动C84H$ 代表手指离开触摸屏0 XLow XHigh代表触摸点处的 YHigh代表触摸点处的 ZHigh代表触摸点处的 值可反应手指的压力大小0 在单片机中编程时9可以按如下思路进行0 先读取字符CX$9 如果读到9则再读取下一个字节9看是否是字符CY$9如果是9再读 取下一个状态字节9看目前的数据是什么状态下的数据0 如果状 态字节是C81H$9则说明接下来的 个字节就是对应手指在触摸屏上拖动时的 坐标如果状态字 节是C8H$9则说明接下来的 个字节就是对应手指离开触摸屏时的那个点的 坐标0如果状态字节为C81H$和C8H$时对 坐标相同9则说明用户在某一点点击了也就是手指按下和离开时在同一点0 事先把需要用户点击的点的坐标值存放 在列表里9一旦发现用户点击后9通过查表即可知道用户点击了 哪一个点9从而执行相应的操作0 下面给出核心程序代码9供大家 参考0 codeunsigned int cttabe[KEYUMER][2]={{OOl48,OOlCO}, //{{O,yO},{l,yl}}//对应每一个按钮中心点绝对坐标可通 过串口测试软件连接触摸屏来获得 bit keydown,