第十八节:ads7843驱动的320240电阻型触摸屏:.pdf

第十八节:ads7843驱动的320240电阻型触摸屏:.pdf

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十八节:ADS7843 驱动的 320240 电阻型触摸屏 (1) 开场白: 320240 的触摸屏是由 320240 液晶显示屏和 320240 电阻触摸薄膜组成。320240 液晶显 示屏披上一层触摸膜的皮就是触摸屏了。显示和读取触摸信息是各自独立的,我们通过编 写程序,两者有机结合起来,让客户产生错觉,以为触摸和显示是一体的。 320240 液晶屏的程序在第十五节已经讲过。现在重点介绍一下电阻触摸薄膜的原理。它的 本质是利用电阻分压的原理。假如我在桌面上放了一条很长的裸露电阻,我们的手触摸到 电阻的某点时,就相当于可调电阻的中间移动点,按到哪一点位置,我们只要通过AD 把 被分压后的电压读取出来,就知道你的手按到了哪个位置。一张触摸膜相当于在 X 轴和 Y 轴都放了一个很宽很长的裸露电阻,手按到哪一点,只要把该点的 X 轴和 Y 轴的分压通过 AD 读取出来,就可以得到被触摸的 X 轴和 Y 轴坐标。驱动电阻型触摸屏,就相当于单片 机驱动一个外部 AD 转换芯片,这个 AD 芯片就是 ADS7843 。 编程技巧:我们要在显示屏上先做一个显示程序,专门用来显示按下去的 X 轴坐标和 Y 轴 坐标,这样方便我们记录按键的位置信息。有了具体某个按键的位置信息,我们才可以针 对此按键进行后续的触发程序编写。 (2)功能需求: 在触摸屏上按下一个矩形按键,此按键马上反显,表示被触发。同时把相对应的 X 轴和 Y 轴坐标数据在液晶屏上显示出来。 (3)硬件原理: 跟 320240 液晶显示屏的接线请参考第十五节。然后用单片机的 4 个 IO 口分别跟 ADS7843 的 DCLK, CS, DIN, DOUT 连接。ADS7843 的 PENIRQ 引脚可以不接悬空,如果 读者想把此键盘中断请求信号也用上,请自己查看 pdf 文档编写相对应的程序。 (4 )源码适合的单片机:SST89E516RD,晶振为 11.0592MHz。 (5)源代码讲解如下: #include <reg52.h> #include <intrins.h> #define LcmXPixel 320 //横向宽度 #define LcmYPixel 240 //纵向高度 #define Uchar unsigned char #define Uint unsigned int #define SystemSet 0x40 //硬件寄存器的驱动信息,具体是什么意思没必要知道 #define Scroll 0x44 #define BasePart1 0x00 //显示区 1 #define BasePart2 0x40 //显示区 2 #define BasePart3 0x80 //显示区 3 #define BasePart4 0x00 //显示区 4 #define DispOn 0x59 #define DispOff 0x58 #define Ovlay 0x5b #define HdotScr 0x5a #define CsrDirR 0x4c #define CsrDirL 0x4d #define CsrDirU 0x4e #define CsrDirD 0x4f #define CsrW 0x46 #define CsrR 0x47 #define mWrite 0x42 #define mRead 0x43 #define paraP9 (LcmXPixel/8) //cnt_key_x_lower1 和 cnt_key_x_upper1 是 X 轴的触摸有效范围,cnt_key_y_lower1 和 cnt_key_y_upper1 是 Y 轴的触摸有效范围, //此数据的得来,要靠我们自己编写的 X 轴和 Y 轴的坐标显示程序。 #define cnt_key_x_lower1 900 //触摸矩形按键的有效触摸范围 #define cnt_key_x_upper1 1900 #define cnt_key_y_lower1 1900 #define cnt_key_y_upper1 2100 #define cnt_key_wd 50 //被触摸的按键反显后的停留时间, //补充说明:吴坚鸿程序风格是这样的,凡是输出 IO 后缀都是_dr,凡是输入的//IO 后缀都 //是_sr ,凡是数据总线后缀都是_bus #define LcmDataBus P1 //数据总线 sbit WR_dr=P3^0; //320240 液晶显示屏的驱

文档评论(0)

LF20190802 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档