在实际应用中,我们采用了ADS7843作为触摸屏的控制器。关于ADS7843的原理及工作方式,已经有很多文章发表,而如何确认坐标位置却很少提及。本文仅就坐标确定问题做如下分析。
1 转换模式
ADS7843的转换有8位和12位两种,可以到X或Y方向上的1/256和1/4096。我们采用清华蓬远公司的PDA240160触摸显示屏,外形尺寸是61.6mm×42.4mm,所以没必要采用12位A/D转换,而只需要8位A/D转换就足以达到所需,即分度是X、Y长度方向的1/256。
2 坐标确定
PDA240160触摸显示屏的坐标如图1。
其中,(X,Y)是一个图表按键的中心坐标,(X’,Y’)是右下角坐标,(X”,Y”)是其左上角的坐标。在触及屏幕时,触点只要在(X’,Y’)和(X”,Y”)矩形区域内均认为是触摸该键有效。假设一个32×32点阵的图标按键中心坐标(X,Y)为(50,50),那么(X’,Y’)就是(35,40),(X”,Y”)就是(65,60)。在触摸时只要得到的键坐标在(X’,Y’)和(X”,Y”)之间,即认为是触摸到了该键。而在该键坐标范围内的值又是如此之多,如何来处理得到的坐标呢?初我们采取散转方式,结果是程序太冗长、可读性差且可移植性不好,不能作为子程序来调用。经过探讨分析,我们采取了查表的方式。 首先,制作如下所示的坐标表(包含当前屏幕上的所有键的两个角坐标):
表中每一行均代表一个键值的两个角坐标(需要放置完图标按键后调用相关程序确定两个角的坐标值),的字符001~n是每个键值的标志(简写A)。这个标志很有用,在以后的程序中会看到。
3 程序流程图与程序清单
子程序清单见本刊网络补充版(www.dpj.com.cn)。其中XA、YA存储的是A/D转换后的坐标值。程序已经调试通过,敬请读者验证。
结 语
经过反复测试后得出:每个触摸键的反应都很灵敏,而且在每个图标键的有效区域内都能反应。证明这个思路简捷、易懂、可移植性好,在确定触摸按键位置坐标时是非常具有实际应用价值的。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。