例10-4j-第10章TLC2543_第1页
例10-4j-第10章TLC2543_第2页
例10-4j-第10章TLC2543_第3页
例10-4j-第10章TLC2543_第4页
例10-4j-第10章TLC2543_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

10.4 80C51单片机与串行A/D转换器TLC2543的接口10.4.1 TLC2543的性能及引脚说明TLC2543是TI(Texas Instruments)公司生产的一款12位串行A/D转换器,采用了开关电容逐次逼近的技术。同时,TLC2543采用的是串行接口技术,同ADC0809相比,大大节省了单片机的I/O接口资源,并且价格适中,有着广泛的应用。TLC2543有以下的特点:l 精度高,是12位分辨率的A/D转换器;l 转换速度快,在工作温度范围内,转换时间为10us;l 11个模拟输入通道;l 3路内置自测试方式;l 采样率为66kbps;l 最大线性误差为+1LSB;l 有转换结束输出EOC;l 具有单、双极性输出;l 可编程的MSB或LSB前导;l 可编程的输出数据长度。TLC2543的引脚排列图如图10-xx所示。图10-xx TLC2543引脚图在上面的引脚图中,各个管脚的功能如下:19(AIN0AIN8)模拟信号输入0至8端;10(GND)电源地;1112(AIN9AIN10)模拟信号输入9至10端;13(REF-)负基准电源;14(REF+)正基准电源;15()片选端;16(DATA OUT)A/D转换结果串行输出端;17(DATA IN)为串行数据输入端;18(I/O CLOCK)为I/O时钟;19(EOC)为转换结束端;20(VCC)电源正极。10.4.2 TLC2543的工作过程TLC的工作过程实际分为两个部分,分别是I/O周期和A/D转换周期。1)I/O周期I/O周期是通过外部提供的I/O CLOCK所定义的,分为8、12和16个时钟周期,这三种不同的周期决定了输出数据的长度。TLC2543在进入I/O周期后,会进行两种操作。分别是读取DATA INPUT输入的控制字与在DATA OUT输出上一次的A/D转换值。(1)读取DATA INPUT输入的控制字想要正确的使用TLC2543,那么对TLC2543的设置是非常重要的,TLC2543的设置是通过控制字来实现的,控制字决定了TLC2543要转换的模拟通道号、转换后的输出数据长度和输出数据格式。控制字的高4位(D7.D4)决定了A/D转换的通道号。例如,0000对应的是AIN0通道,1000对应的是AIN8通道。由于TLC2543一共有11条模拟输入通道AIN0AIN10,其分别对应的控制字为00001010。当控制字的高4位为10111101时,不再对应选择模拟通道号,而是对TLC2543进行自检,当通道号为1110时,TLC2543就进入休眠模式,降低系统能耗。控制字的低4位(D3.D0)决定了输出数据的长度与格式。D3、D2这两位决定了数据的输出长度。TLC2543一共可以输出3种长度的数据,分别是8位、12位、16位。其中,8位输出是取12位输出数据的高8位,16位输出是在12位数据输出前补4个0。因此,12位输出和16位输出精度相同。D3D2取值与长度见表10-xx所示:表10-xx D3D2与数据输出长度控制字D3 D2数据长度0012位018位1012位1116位D1决定了数据先输出高位还是低位。D1=1时,表示先输出低位(LSB);D1=0时,表示先输出高位(MSB)。D0决定了数据输出的极性。D0=0,数据输出单极性(无符号二进制);D0=1,数据输出双极性(有符号二进制)。综上述,如果是想要对模拟通道2采样,并且输出12位单极性无符号,高位在前的数据时,D7.D0可以设置为:0010 0000或者是0010 1000。(2)在DATA OUT输出上一次的A/D转换值当保持为低电平时,第一个数据出现在EOC的上升沿;若TLC2543由控制,那么第一个数据输出在的下降沿。这个数据是前一次A/D转换的结果。输出数据的第一位后,其余的每个数据都在I/O CLOCK的下降沿输出。2)A/D转换周期在I/O周期的最后一个I/O CLOCK脉冲的下降沿后,EOC变为低电平,采样值不变,开始A/D转换周期。通过片内转换器对采样值进行逐次逼近式转换。转换完成后EOC变为高电平,转换结果保存在寄存器中,等待下一个I/O周期输出。10.4.3 80C51单片机与TLC2543的接口设计TLC2543所使用的串行总线为SPI,由于本书介绍的80C51单片机并不具有SPI串行总线,只能采用软件模拟的方式来 进行数据传输。TLC2543的时序图如图10-xx所示。 图10-xx TLC2543的12位工作时序图从时序图可以看出,TLC2543上电后,必须先从高到低,才能开始工作。初始化后,EOC是高电平,表示输出寄存器内存储的是上一次转换完成的数据。I/O CLOKC的脉冲作用下,DATAINPUT开始输入控制字,并且输出上一次的A/D转换值。同时第4个脉冲完成后,对当前模拟通道模拟量采样。当第12个脉冲完成后,EOC变为低电平,对采样的模拟量开始A/D转换,转换时间约为10s,A/D转换完成后,EOC变为高电平,将本次转换值保存到输出寄存器,等待下一次输出。TLC2543输出12位二进制数据N和模拟电压U之间的关系为:当Vref+为5V,Vref-接地时,公式化简为:即【例10-xx】以80C51单片机为核心,TLC2543作为A/D转换器对电位器上05V范围变化的电压进行检测,用LCD1602显示检测结果,实现数字电压表功能。图10-xx TLC2543与AT89C51单片机连接仿真图解:接口说明如下:1)液晶的4端为向液晶控制器写数据/命令选择端,接单片机的P3.5口;2)液晶的5端为读/写选择端,不从液晶读取任何数据,只向其写入数据和命令,因此此端始终选择为写状态,接地;3)液晶的6端为使能端,接单片机的P3.4口;4)液晶的D0D7端为数据/指令输入端,与单片机P0口通过排阻相连;5)TLC2543的16为数据输出端,和单片的P2.0口相连;6)TLC2543的17为数据输入端,和单片的P2.1口相连;7)TLC2543的15为选通端,和单片的P2.2口相连;8)TLC2543的18为时钟信号端,和单片的P2.3口相连;9)TLC2543的19为A/D转换完成端,和单片的P2.4口相连;9)TLC2543的13为负参考电压端,直接接地;10)TLC2543的14为正参考电压端,接5v电源;11)TLC2543的3为模拟电压输入端,接电位器中间抽头。程序设计如下:#include#include#define uchar unsigned char#define uint unsigned intuchar code dis_table0=0123456789;uchar code dis_table1=Voltage:;sbit lcden=P34;sbit lcdrs=P35;sbit SDO=P20;sbit SDI=P21;sbit CS=P22;sbit CLK=P23;sbit EOC=P24;/*延时程序*/void DelayMs(uint ms)uint i;while(ms-)for(i=110;i0;i-); /*LCD1602程序*/void Write_Com(uchar com)lcdrs=0;P0=com;DelayMs(5);lcden=1;DelayMs(5);lcden=0;void Write_Data(uchar date)lcdrs=1;P0=date;DelayMs(5);lcden=1;DelayMs(5);lcden=0;void init()lcden=0;Write_Com(0x38);Write_Com(0x0c);Write_Com(0x06);Write_Com(0x01);void display(uint date)uchar i=0;Write_Com(0X80);for(i=0;i8;i+) Write_Data(dis_table1i);Write_Data(dis_table0date/1000);Write_Data(.);Write_Data(dis_table0date%1000/100);Write_Data(dis_table0date%1000%100/10);Write_Data(dis_table0date%10);Write_Data(V);/*TLC2543程序*/uint ADC_Convert(uchar Channel) /CH_i,通道值uint AD_Val; /储存12位的A/D转换结果uchar i; AD_Val=0;CS=1; /一个转换周期开始EOC=0;CLK=0; /为第一个脉冲作准备_nop_();_nop_(); CS=0; /CS置0,片选有效EOC=1; /EOC开始应设为高电平Channel=4; /将通道值(D7,D6,D5,D4)移入高四位,转换通道设置Channel|=0x02; /D3,D2,D1,D0=0,0,1,0 ,输出数据为12位,先输出低位for(i=0;i=1; /将读取结果逐位右移(先输出的是低位) CLK=0;_nop_();if(Channel&0x80)=0x80)SDI=1; elseSDI=0;Channel=1;/在脉冲上升沿,从高位至低位依次将控制字写入TLC2543CLK=1;_nop_();if(SDO=1) /在脉冲下降沿,TLC2543输出数据,写入AD_Val的第12位AD_Val|=0x800; elseAD_Val|=0x000; SDI=0;/8个数据流输入后,SDI端必须保持在一个固定的电平上,指引EOC变高for(i=8;i=1;CLK=0; _nop_(); CLK=1; _nop_();if(SDO=1) AD_Val|=0x800;/在脉冲下降沿,TLC2543输出数据,写入AD_Val的第12位elseAD_Val|=0x000; /第12位写 0 CLK=0; /在第12个时钟下降沿来临时,EOC开始变低,开始对本次采样的模拟量进行A/D转换,_nop_(); /给硬件一点转换

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论