触摸屏控制芯片ADS7843中文资料(附c语言程序).doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:18 大小:73KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

触摸屏控制芯片ADS7843中文资料(附c语言程序).doc

触摸屏控制芯片ADS7843中文资料(附c语言程序).doc

预览

免费试读已结束,剩余 8 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

触摸屏控制芯片ADS7843中文资料ADS7843是一个内置12位模数转换、低导通电阻模拟开关的串行接口芯片。供电电压2.7~5V,参考电压VREF为1V~+VCC,转换电压的输入范围为0~VREF,最高转换速率为125kHz。ADS7843引脚图及引脚功能说明了:ADS7843的引脚配置如图3所示。表1为引脚功能说明,图4为典型应用。aDS7843引脚说明ADS7843典型应用电路2.2ADS7843的内部结构及参考电压模式选择ADS7843之所以能实现对触摸屏的控制,是因为其内部结构很容易实现电极电压的切换,并能进行快速A/D转换。图5所示为其内部结构,A2~A0和SER/为控制寄存器中的控制位,用来进行开关切换和参考电压的选择。ADS7843支持两种参考电压输入模式:一种是参考电压固定为VREF,另一种采取差动模式,参考电压来自驱动电极。这两种模式分别如图6(a)、(b)所示。采用图6(b)的差动模式可以消除开关导通压降带来的影响。表2和表3为两种参考电压输入模式所对应的内部开关状况。2.3ADS7843的控制字及数据传输格式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转换,需要先通过串口往ADS7843发送控制字,转换完成后再通过串口读出电压转换值。标准的一次转换需要24个时钟周期,如图7所示。由于串口支持双向同时进行传送,并且在一次读数与下一次发控制字之间可以重叠,所以转换速率可以提高到每次16个时钟周期,如图8所示。如果条件允许,CPU可以产生15个CLK的话(比如FPGAs和ASICs),转换速率还可以提高到每次15个时钟周期,如图9所示。2.4A/D转换时序的程序设计ADS7843的典型应用如图4所示。假设μP接口与51单片机的P1.3~P1.7相连,现以一次转换需24个时钟周期为例,介绍A/D转换时序的程序设计。;A/D接口控制线DCLKBITP1.3CSBITP1.4DINBITP1.5BUSYBITP1.6DOUTBITP1.7;A/D通道选择命令字和工作寄存器CHXEQU094H;通道X+的选择控制字CHYEQU0D4H;通道Y+的选择控制字CH3EQU0A4HCH4EQU0E4HAD_CHEQU35H;通道选择寄存器AD_RESULTHEQU36H;存放12bitA/D值AD_RESULTLEQU37H;存放通道CHX+的A/D值CHXAdResultHEQU38HCHXAdResultLEQU39H;存放通道CHY+的A/D值CHYAdResultHEQU3AHCHYAdResultLEQU3BH;采集通道CHX+的程序段(CHXAD)CHXAD:MOVAD_CH,#CHXLCALLAD_RUNMOVCHXAdResultH,AD_RESULTHMOVCHXAdResultL,AD_RESULTLRET;采集通道CHY+的程序段(CHYAD)CHYAD:MOVAD_CH,#CHYLCALLAD_RUNMOVCHYAdResultH,AD_RESULTHMOVCHYAdResultL,AD_RESULTLRET;A/D转换子程序(AD_RUN);输入:AD_CH-模式和通道选择命令字;输出:AD_RESULTH,L;12bit的A/D转换值;使用:R2;辅助工作寄存器AD_RUN:CLRCS;芯片允许CLRDCLKMOVR2,#8;先写8bit命令字MOVA,AD_CHAD_LOOP:MOVC,ACC.7MOVDIN,C;时钟上升沿锁存DINSETBDCLK;开始发送命令字CLRDCLK;时钟脉冲,一共24个RLADJNZR2,AD_LOOPNOPNOPNOPNOPADW0:JNBBUSY,AD_WAIT;等待转换完成SJMPADW1AD_WAIT:LCALLWATCHDOGNOPSJMPADW0CLRDINADW1:MOVR2,#12;开始读取12bit结果SETBD