基于C语言的TLC549和TLC5615模数数模转换系统设计Word文件下载.docx
- 文档编号:14170064
- 上传时间:2022-10-19
- 格式:DOCX
- 页数:11
- 大小:462.11KB
基于C语言的TLC549和TLC5615模数数模转换系统设计Word文件下载.docx
《基于C语言的TLC549和TLC5615模数数模转换系统设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于C语言的TLC549和TLC5615模数数模转换系统设计Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。
本实验主要是通过单片机stc89c52芯片控制模数转换芯片tlc549将所给模拟信号转换成数字信号,然后将数字信号读进数模转换芯片tlc5615,从输出端口将转换后的信号输出来。
2.2模/数转换器
(1)模/数转换器的作用TLC549是一种高性能的8位A/D转换器,它以8位开关电容逐次逼近的方法实现A/D转换,本实验通过用该芯片采集模拟量,然后将采集到的模拟量转换为数字量后送至单片机。
(2)芯片特性;
TLC549芯片,可与通用微处理器、控制器通过I/OCLOCK、CS、DATAOUT三条口线进行串行接口。
具有4MHz片内系统时钟和软、硬件控制电路,转换时间最长17
s,TLC549允许的最高转换速率为40000次/s。
(3)引脚功能
Tlc549的引脚图如下:
TLC549各引脚功能如下:
●ANALOGIN,模拟量输入端;
●scLK,串行时钟输入端;
●cs,芯片选择,低有效;
●DATAOuT,数字量输出端;
●GND,模拟地;
●REF+,基准电压输入端;
●REF-,基准电压负端;
●VCC,正电源电压端。
2.3数/模转换器
(1)数/模转换器的作用TLC5615是一个串行10位DAc芯片,它以10位开关电容逐次逼近的方法实现D/A转换。
本实验通过用该芯片采集数字量,然后将采集到的数字量转换为模拟量后送至示波器。
Tlc5615只需要通过3根串行总线就可以完成10位数据的串行输入,易于和工业标准的微处理器或微控制器(单片机/DsP)接口,适用于数字失调与增益调整以及工业控制场合
Tlc5615的引脚图如下:
各引脚功能如下:
●DIN,串行二进制数输入端;
●DOuT,用于级联的串行数据输出;
●AGND,模拟地;
●REFIN,基准电压输入端;
●OuT,DAc模拟电压输出端;
●VDD,正电源电压端。
2.4对整个电路进行仿真
输入是正弦波的时候输出是(不能输出负电压)
输入是方波的时候输出是
三硬件方案设计
3.1单片机最小系统部分
3.2串口部分
模数转换tlc549部分
数模转换部分tlc5615部分
四软件方案设计
本实验要求用stc89c52,max232,tlc549和tlc5615四种芯片,其中stc89c52是单片机微型控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,相当于一个微型计算机,同时它体积小,质量轻,价格便宜。
Stc89c52是整个实验的核心,通过它的控制完成各个模块的正常工作。
Max232是一个串口芯片,它的功能主要是实现电脑和单片机之间的通信。
Tlc549是一个模数转换芯片,它是一个串行输出的八位芯片,实现模数转换。
Tlc5615是一个数模转换芯片,它是一个串行输出的十位芯片,实现数模转换。
程序流程图:
对应的程序是:
#include<
reg52.h>
intrins.h>
#defineuintunsignedint
#defineucharunsignedchar
#defineulongunsignedlong
sbitled=P1^3;
sbittlc_clk=P1^0;
sbittlc_data=P1^1;
sbittlc_cs=P1^2;
sbitcs=P2^0;
sbitsclk=P2^1;
sbitdin=P2^2;
/*---------------------延时函数----------------------*/
voiddelay(ucharz)
{
uintx;
for(x=z;
x>
0;
x--);
}
/***************************************************************/
/*作用:
向TLC5615写入数据*/
write_5615(ulongda)
uchari;
cs=1;
sclk=0;
cs=0;
da=da&
0x0ff;
//da<
<
=8;
for(i=0;
i<
12;
i++)
if((bit)(da&
0x80)==1)
din=1;
else
din=0;
sclk=1;
da<
=1;
_nop_();
/*-----------------------TLC549子函数-----------------------*/
voidread_tlc()
{
uchari,j=0,k;
tlc_clk=0;
tlc_cs=1;
tlc_cs=0;
delay
(2);
for(i=0;
8;
{
j=j<
1;
k=tlc_data;
tlc_clk=1;
delay
(1);
j=j+k;
}
led=0;
write_5615(j);
_nop_();
voidmain()
while
(1)
read_tlc();
5.调试
5.1硬件调试
1.单片机地线没接
2.Tlc549参考电压没接
3.Max232一电容接错
5.2软件调试
1.从开始到结束出现的软件问题
2.tlc549采样程序出错
3.忽略了tlc549是八位精度,而tlc5615是十位精度
4.没有考虑数模转换只能输出正电压,即没有考虑tlc5615的电压输出范围
5.3软件和硬件联合调试
1.不清楚tlc549正常工作否,在单片机的p1.4接口接了一个低电平控制的二极管来监督tlc549是否正常工作,如果正常工作,那么二极管将会发光。
2.当程序烧进单片机时,输出端没有显示,故在输入端输入一个高电平模拟信号,发现输出是高电平,再在输入端输入一个低电平模拟信号,发现依然是高电平,故猜测是硬件没有正常工作,检查出是硬件问题。
5.4软件和硬件联合测试
当输入正弦波形时,输出是:
当输入时正弦波形时:
6.小结
通过这次试验,使自己的动手能力提高了很多,使自己的分析问题能力也提高了很多,不过最有价值的是自己知道遇到问题该怎么去解决,怎么去做。
不过,也发现了自己的不足,比如看文档不是怎么细心,如数模转换芯片只能输出正电压,还有焊接硬件时将电路焊接错了,希望在以后能够不断改掉自己的不好习惯,同时扎实自己的理论基础。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 语言 TLC549 TLC5615 数模 转换 系统 设计