【文档说明】单片机C语言-第8章-外部串行总线扩展的C51编程4课件.ppt,共(13)页,888.500 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-44626.html
以下为本文档部分文字说明:
8.412位串行A/D转换器TLC25431、TLC2543的特性及引脚TLC2543是TI公司生产的12位串行A/D转换器,使用开关电容逐次逼近技术完成A/D转换过程。TLC2543是11个输入端的12位模数转换器
,具有转换快、稳定性好、与微处理器接口简单、价格低等优点,应用前景好。2、TLC2543的工作过程(1)I/O周期I/O周期由外部提供的I/OCLOCK定义,延续8、12或16个时钟周期,决定选定的输出数据的长度。1)在I/OCLOCK的前8个脉冲的上升沿,以MSB前导方式从DA
TAINPUT端输入8位数据到输入寄存器。其中,前4位是模拟通道地址,控制14通道模拟多路器从11个模拟输入和3个内部自测电压中,选通一路到采样器,该电路从第4个I/OCLOCK脉冲的下降沿开始,对所选信号进行采样,直到最后一个I/OCLOCK脉
冲的下降沿。I/O周期的时钟脉冲个数与输出数据长度(位数)有关,输出数据长度由输入数据的D3和D2位确定,输出数据可选择为8、12或16位。当长度为12或16位时,在前8个时钟脉冲之后,DATAINPUT无效。2)在DATAOU
T端串行输出8、12或16位数据。当CS保持为低电平时,第一个数据出现在EOC的上升沿;若转换由CS控制,则第一个输出数据出现在CS的下降沿。这个数据串是前一次转换的结果,在第一个输出数据位之后的每一个后续位均由后续的I/OCLOCK脉冲的下降沿输出。(2)转换
周期在I/O周期的最后一个I/OCLOCK脉冲的下降沿之后,EOC变成低电平,采样值保持不变,转换周期开始,片内转换器对采样值进行逐次逼近式A/D转换。转换结束后,EOC变为高电平。转换结果锁存在输出数据寄存器当中,待下一个I/O周期输
出。TLC2543的工作时序通道地址选择(D7~D4)数据的长度(D3~D2)数据的顺序(D1)数据的极性(D0)3、TLC2543的命令字通道选择地址用来选择输入通道。二进制数0000~1010是11个模拟量AIN0~AIN10的地址,1011~1101和1110分别是自测试电压和
掉电的地址。地址1011、1100和1101所选择的自测试电压分别是((VREF+)-(VREF-))/2、VREF-和VREF+。数据的长度(D3~D2)用来选择转换的结果采用多少位输出。D3D2为×0,12位输出;D3D2为01,8位输出;D3D2为11,16位输
出。数据的顺序位D1用来选择数据输出的顺序。D1为0,高位在前;D1为1,低位在前。数据的极性位D0用来选择数据的极性。D0为0,数据是无符号数;D0为1,数据是有符号数。【例8-4】模拟输入信号从通道0输入,将输入的模
拟量转换成二进制数在显示器上显示出来。•#include<reg51.h>•sbitSDO=P3^0;//定义端口•sbitSDI=P3^1;•sbitCS=P3^2;•sbitCLK=P3^3;•s
bitEOC=P3^4;•sbitP2_0=P2^0;•sbitP2_1=P2^1;•sbitP2_2=P2^2;•sbitP2_3=P2^3;•unsignedcharcodexiao[]=•{0xC0,0xF9,0xA4,0xB0,0x99,0x92,
0x82,0xF8,0x80,0x90};//共阳极数码管0-9的段码•voiddelay(unsignedcharn)•{•unsignedchari,j;•for(i=0;i<n;i++)•for(j=0;j<125;j++);•}unsig
nedintread2543(unsignedcharcon_word)//向TLC2543写命令及读转换后的数据•{•unsignedintad=0,i;•CLK=0;//时钟首先置低•CS=0;//片选为0,芯片工作•for(i=0;i<12;i++)•{•if(SDO)//首先
读TLC2543的一位数据•ad=ad|0x01;•SDI=(bit)(con_word&0x80);//向TLC2543写一位数据•CLK=1;//时钟上升沿,TLC2543输出使能•delay(3);•CLK=0;//时钟下降沿,TLC2543输入使能•delay(3);•con_w
ord<<=1;•ad<<=1;•}•CS=1;•ad>>=1;•return(ad);•}•voidmain()•{•unsignedintad;•while(1)•{•ad=read2543(0x00)
;•P0=xiao[ad/1000];//千位数字的段码•P2_0=1;//显示千位•delay(3);•P2_0=0;•P0=xiao[(ad%1000)/100];//百位数字的段码•P2_1=1;//显示百位•delay(3);•P2_1=0;•P0=xi
ao[(ad%100)/10];//十位数字的段码•P2_2=1;//显示十位•delay(3);•P2_2=0;•P0=xiao[ad%10];//个位数字的段码•P2_3=1;//显示个位•delay(3);•P2_3=0;•}•}实验五
串行AD转换实验TLC549是一种采用8位逐次逼近式工作的A/D转换器。内部包含系统时钟、采样和保持、8位A/D转换器、数据寄存器以及控制逻辑电路。TLC549每25us重复一次“输入—转换—输出”。器件有两个控制输入:I/
OCLOCK和片选CS。内部系统时钟和I/OCLOCK可独立使用。应用电路的设计只需利用I/O时钟启动转换或读出转换结果。当CS为高电平时,DATAOUT处于高阻态且I/O时钟被禁止。当CS变为低电平时,前次转换
结果的最高有效位(MSB)开始出现在DATAOUT端。在接下来的7个I/OCLOCK周期的下降沿输出前次转换结果的后7位,至此8位数据已经输出。然后再将第8个时钟周期加至I/OCLOCK,此时钟周期的下跳沿变使芯片进行下一轮的AD转换。在第8个I/OCLOCK周期之后,CS必须变
为高电平,并且保持高电平直至转换结束为止(>17us),否则CS的有效高电平至低电平的转换将引起复位。调节模拟信号输入端的电位器旋钮,显示值随着变化,顺时针旋转值增大,A/D转换值的范围是0~4.98V左右。Vref+1AIN2Vre
f-3GND4CS5DATA6I/OCLK7VCC8U1B2TLC549VCCVCCC1B20.1uFVCCP1B2AINP2B2CLKR1B2100R2B2100R3B2100P3B2DATAP4B2CS_549TLC549的工作时序