您好,欢迎来到尔游网。
搜索
您的当前位置:首页串行AD实验预习报告

串行AD实验预习报告

来源:尔游网
串行AD实验预习报告

一.实验目的

学习利用串行模数转换芯片TLC549进行电压搜集和数据处置。

二.实验原理

TLC549是美国德州仪器(TI)公司生产的8位串行逐次比较型A/D转换芯片。通用微处置器通过串行操纵线可实现对该芯片的操纵。该芯片具有4MHz片内系统时钟和软、硬件操纵电路,转换时刻最长17μs, 转换速度为40 000次/s。总失调误差最大为±0.5LSB,典型功耗值为6mW。管脚封装如图1所示:

图1 TLC549管脚封装图

管脚概念为:4、8脚为电源输入和接地;2脚AIN模拟采样电压的输入;5脚-CS为片选信号,当-CS为高时,数据输出DATA_OUT 端处于高阻状态;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个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实现模拟电压信号的搜集,并存入内部数据存储器。记录10组不同的电压转换值,并分析误差。 1.2 利用信号源产生0~+5V区间的正弦波,利用串行A/D转换芯片TLC549实现信号搜集,并利用采样定律分析采样频率与输入信号频率的关系。 2. 实验设计

TLC549在进行本次转换时,所读取的事实上是上次转换的值,这一点在编程时需要注意。另外,由于AD采样时可能会受到噪声的干扰,因此最终的AD转换结果与实际模拟值之间存在必然的误差,只要这一误差足够小且知足误差许诺的范围,那么能够以为AD转换是精准的。在利用采样定律分析采样频率与信号频率的关系时,能够利用按时器产生固定的时刻距离,即采样距离。利用采样取得的数据进行拟合,或用matlab进行频谱分析,就能够够得知波形是不是有失真,进而得知该情形下的采样频率是不是合理。由于可能需要多次测量,因此选定一适合的信号频率,在该信号频率下,采样频率应该知足采样定律,然后上下调整信号频率,如此就免去了每次测量都要修改按时中断的麻烦,因此固定采样频率,调整信号频率,如此就比较简单。假设适合的信号频率为5KHz,那么采样频率定为10.24KHz(采样频率取得稍大),按时器计数值为921.6K/10.24K = 90D,那么计数初值为256-90=166D=A6H,

计数器工作在方式2,且开放中断。 3. 程序流程图

转换函数清零CLK、CS系统初始化启动AD转换延时输出8位数据?读取上次AD转换结果,再次启动转换存储转换结果Y禁止输出,启动下次转换函数返回置位CLK,输出一位数据清零CLKN

图3 实验要求1流程图

中断处理函数主函数系统初始化启动AD转换开启中断、启动定时器等待中断存储上次转换结果、启动下次转换更新地址指针N转换次数满?Y关闭中断、关闭定时器中断返回

图4 实验要求2流程图

4. 电路连接图

图5 AD转换硬件连接图

5. 程序清单

5.1 记录10组不同电压的转换值

CS BIT P1.2 ;概念使能信号CS DAT 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 ;转换结果送缓冲区 SJMP $

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 ;函数返回 ; END

5.2 分析采样频率与信号频率的关系

CS BIT P1.2 ;概念使能信号CS DAT BIT P1.1 ;概念数据输入管脚 CLK BIT P1.0 ;概念时钟信号 AD_DATA DATA 30H ;AD转换结果缓冲区首地址

ORG 8000H ;伪指令,概念代码寄存开始地址,硬件仿真

LJMP MAIN

ORG 800BH ;伪指令,存储T0中断的效劳函数入口地址 LJMP INTT0

ORG 8100H ;伪指令,以下代码从8100H开始寄存

MAIN:

MOV R1, #AD_DATA ;取缓冲区首地址

ACALL TLC549_ADC ;第一次启动AD转换

MOV TMOD, #02H ;T0工作在方式2 MOV TH0, #A6H

MOV TL0, #A6H ;设置采样频率,10.24K SETB ET0 ;许诺T0中断 SETB EA ;开放CPU中断 SETB TR0 ;启动T0 SJMP $TLC549_ADC:

CLR A ;CLR CLK ; CLR CS ;MOV R6, #8 TLCAD_L1:

SETB CLK ;NOP NOP

MOV C, DAT RLC A CLR CLK ; DAT=0NOP

DJNZ R6, TLCAD_L1 ;SETB CS ;SETB CLK ;RET ;

ORG 8400H INTT0: ACALL TLC549_ADC ;MOV @R1, A ;INC R1 ;

清零寄放器

预备提供上升沿,送出结果

选中TLC549

送出转换结果的一名 ,为读出下一名数据做预备等待8位转换结果全数送出 禁止TLC549,再次启动A/D转换 拉高时钟信号 函数返回 读取上次转换结果,启动下次转换 将转换结果写入缓冲区 地址指针加1

CJNE R1, #50H, LAST ;20次转换是不是完成 CLR EA ;20次转换完成,禁止中断 CLR TR0 ;T0停止

LAST:

RETI ; END

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务