ImageVerifierCode 换一换
格式:DOC , 页数:13 ,大小:450KB ,
资源ID:7592358      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7592358.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(触摸屏控制芯片ADS7843中文资料.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

触摸屏控制芯片ADS7843中文资料.doc

1、 触摸屏控制芯片ADS7843中文资料 当触笔触到屏上时,对应的位置就会产生相应大小的电压,输入到芯片,AD转换后得到一个数据。而触摸校准就是将接受到的原始模数转换值转换成屏幕像素坐标。 再就是了解触摸芯片,知道他的工作方式,以及跟STM32的连线。触摸实验中,我的实验板是用SPI口来实现数据的传输的,即SPI与xpt2046相连。 触摸屏控制芯片ADS7843中文资料   ADS7843是一个内置12位模数转换、低导通电阻模拟开关的串行接口芯片。供电电压2.7~5 V,参考电压VREF为1 V~+VCC,转换电压的输入范围为0~ VREF,最高转换速率为125 kHz。

2、ADS7843引脚图及引脚功能说明了:   ADS7843的引脚配置如图3所示。表1为引脚功能说明,图4为典型应用。   ADS7843典型应用电路 ADS7843之所以能实现对触摸屏的控制,是因为其内部结构很容易实现电极电压的切换,并能进行快速A/D转换。图5所示为其内部结构,A2~A0和SER/为控制寄存器中的控制位,用来进行开关切换和参考电压的选择。 ADS7843之所以能实现对触摸屏的控制,是因为其内部结构很容易实现电极电压的切换,并能进行快速A/D转换。图5所示为其内部结构,A2~A0和SER/为控制寄存器中的控制位,用来进行开关切换和参考电压的选择。 2.

3、3 ADS7843的控制字及数据传输格式     ADS7843的控制字如表4所列,其中S为数据传输起始标志位,该位必为"1"。A2~A0进行通道选择(见表2和3)。     MODE用来选择A/D转换的精度,"1"选择8位,"0"选择12位。   SER/选择参考电压的输入模式(见表2和3)。 PD1、PD0选择省电模式:     "00"省电模式允许,在两次A/D转换之间掉电,且中断允许;     "01"同"00",只是不允许中断;     "10"保留;     "11"禁止省电模式。     为了完成一次电极电压切换和A/D转换,需要先通过串口往AD

4、S7843发送控制字,转换完成后再通过串口读出电压转换值。标准的一次转换需要24个时钟周期,如图7所示。由于串口支持双向同时进行传送,并且在一次读数与下一次发控制字之间可以重叠,所以转换速率可以提高到每次16个时钟周期,如图8所示。如果条件允许,CPU可以产生15个CLK的话(比如FPGAs和ASICs),转换速率还可以提高到每次15个时钟周期,如图9所示。     触摸屏的校准通过 voidTouch_Adjust(void)函数实现。在这里,给大家介绍一下我们这里所使用的触摸屏校正原理: 我们传统的鼠标是一种相对定位系统,只和前一次鼠标的位置坐标有关。而触摸屏则是一种绝对坐

5、标系统,要选哪就直接点哪,与相对定位系统有着本质的区别。绝对坐标系统的特点是每一次定位坐标与上一次定位坐标没有关系,每次触摸的数据通过校准转为屏幕上的坐标,不管在什么情况下,触摸屏这套坐标在同一点的输出数据是稳定的。不过由于技术原理的原因,并不能保证同一点触摸每一次采样数据相同,不能保证绝对坐标定位,点不准,这就是触摸屏最怕出现的问题:漂移。对于性能质量好的触摸屏来说,漂移的情况出现并不是很严重。 所以很多应用触摸屏的系统启动后,进入应用程序前,先要执行校准程序。 通常应用程序中使用的LCD 坐标是以像素为单位的。比如说:左上角的坐标是一组非 0 的数值,比如(20,20),而右下角的坐标

6、为(220,300)。这些点的坐标都是以像素为单位的,而从触摸屏中读出的是点的物理坐标,其坐标轴的方向、XY 值的比例因子、偏移量都与 LCD 坐标不同,所以,可以在程序中使用一个函数(我们采用 Convert_Pos 函数)中把物理坐标首先转换为像素坐标,然后再赋给 POS 结构,达到坐标转换的目的。 校正思路:在了解了校正原理之后,我们可以得出下面的一个从物理坐标到像素坐标的转换关系式: LCDx=xfac*Px+xoff;

7、 LCDy=yfac*Py+yoff; 其中(LCDx,LCDy)是在 LCD 上的像素坐标,(Px,Py)是从触摸屏读到的物理坐标。xfac,yfac 分别是 X 轴方向和 Y 轴方向的比例因子,而 xoff 和 yoff 则是这两个方向的偏移量。 这样我们只要事先在屏幕上面显示 4 个点(这四个点的坐标是已知的),分别按这四个点就可以从触摸屏读到 4 个物理坐标,这样就可以通过待定系数法求出 xfac、yfac、xoff、yoff 这四个参数。我们保存好这四个参数,在以后的使用中,我们把所有得到的物理坐标都按照这个关系式来计算,得到的就是准确的屏幕坐标。达

8、到了触摸屏校准的目的。 以下是自己的校准程序(在正点原子上做了一些改变,没有用到中断): //触摸屏校准代码 //得到四个校准参数 void Touch_Adjust(void) {          u16 pos_temp[4][2];//坐标缓存值  u8  cnt=0;   u16 d1,d2;  u32 tem1,tem2;  float fac;      cnt=0;      TextColor=Blue;  BackColor =White;      //TextColor = 0x0000, BackColor = 0xFFFF;  LCD_C

9、lear(White);//清屏   // POINT_COLOR=RED;//红色 // LCD_Clear(WHITE);//清屏  Drow_Touch_Point(20,20);//画点1  delay_ms(1000); // Pen_Point.Key_Sta=Key_Up;//消除触发信号 // Pen_Point.xfac=0;//xfac用来标记是否校准过,所以校准之前必须清掉!以免错误   while(1)  {   if(Read_ADS2(&x,&y))//按键按下了   {    //if(Read_TP_Once())//得到单次按键值   

10、// {                 pos_temp[cnt][0]=x;     pos_temp[cnt][1]=y;     cnt++;     delay_ms(100);   // }       switch(cnt)    {          case 1:      LCD_Clear(White);//清屏      delay_ms(1000);      Drow_Touch_Point(20,300);//画点2      break;     case 2:      LCD_Clear(White);//清屏      del

11、ay_ms(1000);      Drow_Touch_Point(220,20);//画点3      break;     case 3:      LCD_Clear(White);//清屏      delay_ms(1000);      Drow_Touch_Point(220,300);//画点4      break;     case 4:  //全部四个点已经得到            //对边相等      tem1=abs(pos_temp[0][0]-pos_temp[1][0]);//x1-x2      tem2=abs(pos_temp[

12、0][1]-pos_temp[1][1]);//y1-y2      tem1*=tem1;      tem2*=tem2;      d1=sqrt(tem1+tem2);//得到1,2的距离            tem1=abs(pos_temp[2][0]-pos_temp[3][0]);//x3-x4      tem2=abs(pos_temp[2][1]-pos_temp[3][1]);//y3-y4      tem1*=tem1;      tem2*=tem2;      d2=sqrt(tem1+tem2);//得到3,4的距离      fac=(

13、float)d1/d2;      if(fac<0.95||fac>1.05||d1==0||d2==0)//不合格      {       cnt=0;       LCD_Clear(White);//清屏       Drow_Touch_Point(20,20);       continue;      }      tem1=abs(pos_temp[0][0]-pos_temp[2][0]);//x1-x3      tem2=abs(pos_temp[0][1]-pos_temp[2][1]);//y1-y3      tem1*=tem1;     

14、 tem2*=tem2;      d1=sqrt(tem1+tem2);//得到1,3的距离            tem1=abs(pos_temp[1][0]-pos_temp[3][0]);//x2-x4      tem2=abs(pos_temp[1][1]-pos_temp[3][1]);//y2-y4      tem1*=tem1;      tem2*=tem2;      d2=sqrt(tem1+tem2);//得到2,4的距离      fac=(float)d1/d2;      if(fac<0.95||fac>1.05)//不合格      

15、{       cnt=0;       LCD_Clear(White);//清屏       Drow_Touch_Point(20,20);       continue;      }//正确了                 //对角线相等      tem1=abs(pos_temp[1][0]-pos_temp[2][0]);//x1-x3      tem2=abs(pos_temp[1][1]-pos_temp[2][1]);//y1-y3      tem1*=tem1;      tem2*=tem2;      d1=sqrt(tem1+tem2

16、);//得到1,4的距离        tem1=abs(pos_temp[0][0]-pos_temp[3][0]);//x2-x4      tem2=abs(pos_temp[0][1]-pos_temp[3][1]);//y2-y4      tem1*=tem1;      tem2*=tem2;      d2=sqrt(tem1+tem2);//得到2,3的距离      fac=(float)d1/d2;      if(fac<0.95||fac>1.05)//不合格      {       cnt=0;       LCD_Clear(White);

17、//清屏       Drow_Touch_Point(20,20);       continue;      }//正确了      //计算结果      x1=pos_temp[0][0];      x2=pos_temp[1][0];      x3=pos_temp[2][0];      x4=pos_temp[3][0];      y1=pos_temp[0][1];      y2=pos_temp[1][1];      y3=pos_temp[2][1];      y4=pos_temp[3][1];      TextColor=Blue

18、      LCD_Clear(White);//清屏      ili9320_PutChars(120,120,"Touch Screen Adjust OK!",23,TextColor,BackColor);//校正完成      delay_ms(1000);      LCD_Clear(Blue);//清屏        return;//校正完成        }   }  } }  我的算法,跟正点原子不同,他的我没有理解。 以下是带清屏的程序:  while (1)     {   if(Read_ADS2(&X,&Y))      {  

19、  zuobiaox=20+(s32)(X-x1)*200/(x3-x1);      zuobiaoy=20+(s32)(Y-y1)*280/(y2-y1);    if(zuobiaox>0&&zuobiaox<20&&zuobiaoy>0&&zuobiaoy<40)    {     LCD_Clear(Blue);//清屏     LCD_DrawRectFill(0, 0, 20, 40,Yellow);     ili9320_PutChars(0,0,"RST",3,Red,Yellow);     }              else if(zuobiaox>

20、0&&zuobiaox<240&&zuobiaoy>0&&zuobiaoy<320)      lcd_fill_circle(zuobiaox,zuobiaoy, Red);      }  } ----------------------     |  +  (x1,y1)    + | (x2,y2)     |                    |     |  +   (x3,y3)     + | (x4,y4)     ---------------------- 触摸屏校准 : 上图理解为触摸屏,应为实际应用中触摸屏边角出电压相对不稳定,所以放

21、弃一部分,四个点分别为(20,20)(20,300)(220,20)(220,300),对应的AD值分别设为(x1,y1)(x2,y2)(x3,y3)(x4,y4).       首先:在LCD上绘制四个对应的“+”用来取较准点; 其次:点四个“+”,得到各点的AD值,由于其中的电阻是线性的,可以根据x轴上两点的x的AD值如x1,x3以及对应LCD坐标值求出x轴上x的AD值与LCD坐标值对应的关系,是一条直线的方程,再根据此方程由AD值求LCD坐标值即可;y轴上也是一样的道理。       最后:计算  (注:触摸屏电压最小点,为LCD显示坐标最大点,(X,Y)为触摸电压) zuobiaox=20+(s32)(X-x1)*200/(x3-x1); zuobiaoy=20+(s32)(Y-y1)*280/(y2-y1);

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服