《串行AD实验预习报告(共6页).docx》由会员分享,可在线阅读,更多相关《串行AD实验预习报告(共6页).docx(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上串行AD实验预习报告一实验目的学习使用串行模数转换芯片TLC549进行电压采集和数据处理。二实验原理 TLC549是美国德州仪器(TI)公司生产的8位串行逐次比较型A/D转换芯片。通用微处理器通过串行控制线可实现对该芯片的控制。该芯片具有4MHz片内系统时钟和软、硬件控制电路,转换时间最长17s, 转换速度为40 000次/s。总失调误差最大为0.5LSB,典型功耗值为6mW。管脚封装如图1所示:图1 TLC549管脚封装图管脚定义为:4、8脚为电源输入和接地;2脚AIN模拟采样电压的输入;5脚-CS为片选信号,当-CS为高时,数据输出DATA_OUT 端处于高阻状态
2、;7脚I/OCLK为时钟信号的输入;6脚DOUT为转换后的串行数据输出;1、3脚为参考电压输入,其中1脚REF+,3脚REF-,通常为保证器件工作良好,REF+电压应高于REF-电压至少1V,为减少误差,建议相差4.75V以上。TLC549的工作时序如图2所示:图2 TLC549工作时序图如上图所示,首先将CS置低,内部电路在测得CS下降沿后,等待ten后自动将前一次转换结果的最高位(D7)位输出到DATA OUT端上。前四个IO_CLOCK 周期的下降沿依次移出第2、3、4 和第5 个位(D6、D5、D4、D3),片上采样保持电路在第4个IO_CLOCK 下降沿开始采样模拟输入。接下来的3个
3、IO_CLOCK 周期的下降沿移出第6、7、8(D2、D1、D0)个转换位。最后,片上采样保持电路在第8个I/O CLOCK 周期的下降沿后,开始A/D转换。第8个IO_CLOCK后,CS 必须为高,或IO_CLOCK保持低电平,这种状态需要维持tconv以等待保持和转换工作的完成。三实验设备及器件PC机,DP-51PROC单片机综合仿真试验仪。四实验内容1. 实验要求1.1 REF+连基准源的+5V(通过可调电阻调整),CLK、DAT和-CS分别连P10、P11和P12。D2区电位器的输出连ANIN。通过单片机P1口控制串行AD转换芯片TLC549实现模拟电压信号的采集,并存入内部数据存储器
4、。记录10组不同的电压转换值,并分析误差。1.2 使用信号源产生0+5V区间的正弦波,使用串行A/D转换芯片TLC549实现信号采集,并利用采样定律分析采样频率与输入信号频率的关系。2. 实验设计TLC549在进行本次转换时,所读取的实际上是上次转换的值,这一点在编程时需要注意。另外,由于AD采样时可能会受到噪声的干扰,所以最终的AD转换结果与实际模拟值之间存在一定的误差,只要这一误差足够小且满足误差允许的范围,则可以认为AD转换是精确的。在利用采样定律分析采样频率与信号频率的关系时,可以利用定时器产生固定的时间间隔,即采样间隔。利用采样得到的数据进行拟合,或者用matlab进行频谱分析,就可
5、以得知波形是否有失真,进而得知该情况下的采样频率是否合理。由于可能需要多次测量,所以选定一适合的信号频率,在该信号频率下,采样频率应该满足采样定律,然后上下调整信号频率,这样就免去了每次测量都要修改定时中断的麻烦,所以固定采样频率,调整信号频率,这样就比较简单。假设适合的信号频率为5KHz,则采样频率定为10.24KHz(采样频率取得稍大),定时器计数值为921.6K/10.24K = 90D,则计数初值为256-90=166D=A6H,计数器工作在方式2,且开放中断。3. 程序流程图 图3 实验要求1流程图图4 实验要求2流程图4. 电路连接图图5 AD转换硬件连接图5. 程序清单5.1 记
6、录10组不同电压的转换值CS BIT P1.2 ;定义使能信号CSDAT BIT P1.1 ;定义数据输入管脚CLK BIT P1.0 ;定义时钟信号 AD_DATA DATA 30H ;AD转换结果缓冲区 ORG 8000H ;伪指令,定义代码存放开始地址,硬件仿真 LJMP MAIN ORG 8100H ;伪指令,以下代码从8100H开始存放MAIN: ACALL TLC549_ADC ;首次启动AD转换 MOV R7, #0FFH ;延时,等待转换结束DJNZ R7, $ ACALL TLC549_ADC ;读取上次ADC值,再次启动转换MOV AD_DATA, A ;转换结果送缓冲区S
7、JMP $TLC549_ADC: CLR A ;清零寄存器CLR CLK ;准备提供上升沿,送出结果 CLR CS ;选中TLC549 MOV R6, #8 TLCAD_L1: SETB CLK ;送出转换结果的一位NOP NOP MOV C, DAT RLC A CLR CLK ; DAT=0,为读出下一位数据做准备NOP DJNZ R6, TLCAD_L1 ;等待8位转换结果全部送出SETB CS ;禁止TLC549,再次启动A/D转换SETB CLK ;拉高时钟信号RET ;函数返回;END5.2 分析采样频率与信号频率的关系CS BIT P1.2 ;定义使能信号CSDAT BIT P1
8、.1 ;定义数据输入管脚CLK BIT P1.0 ;定义时钟信号 AD_DATA DATA 30H ;AD转换结果缓冲区首地址 ORG 8000H ;伪指令,定义代码存放开始地址,硬件仿真 LJMP MAIN ORG 800BH ;伪指令,存储T0中断的服务函数入口地址LJMP INTT0ORG 8100H ;伪指令,以下代码从8100H开始存放MAIN: MOV R1, #AD_DATA ;取缓冲区首地址ACALL TLC549_ADC ;首次启动AD转换 MOV TMOD, #02H ;T0工作在方式2MOV TH0, #A6H MOV TL0, #A6H ;设置采样频率,10.24KSE
9、TB ET0 ;允许T0中断SETB EA ;开放CPU中断 SETB TR0 ;启动T0SJMP $TLC549_ADC: CLR A ;清零寄存器CLR CLK ;准备提供上升沿,送出结果 CLR CS ;选中TLC549 MOV R6, #8 TLCAD_L1: SETB CLK ;送出转换结果的一位NOP NOP MOV C, DAT RLC A CLR CLK ; DAT=0,为读出下一位数据做准备NOP DJNZ R6, TLCAD_L1 ;等待8位转换结果全部送出SETB CS ;禁止TLC549,再次启动A/D转换SETB CLK ;拉高时钟信号RET ;函数返回ORG 8400H INTT0: ACALL TLC549_ADC ;读取上次转换结果,启动下次转换MOV R1, A ;将转换结果写入缓冲区INC R1 ;地址指针加1 CJNE R1, #50H, LAST ;20次转换是否完成CLR EA ;20次转换完成,禁止中断CLR TR0 ;T0停止LAST:RETI;END专心-专注-专业
限制150内