基于tlc549和tlc5615模数数模转换讲解.docx
- 文档编号:25830215
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:16
- 大小:553.73KB
基于tlc549和tlc5615模数数模转换讲解.docx
《基于tlc549和tlc5615模数数模转换讲解.docx》由会员分享,可在线阅读,更多相关《基于tlc549和tlc5615模数数模转换讲解.docx(16页珍藏版)》请在冰豆网上搜索。
基于tlc549和tlc5615模数数模转换讲解
任务书
1、查阅资料,熟悉硬件和软件;(所使用硬件芯片型号,所使用软件编辑环境)2、掌握TLC549芯片和TLC5615芯片的特性,引脚功能。
3、确定详细软件设计方案,画程序流程图4、根据TLC549的时序图,使用汇编语言/C语言编写单片机STC89C52与TLC549的软件通信程序代码。
实现模/数转换功能。
5、根据TLC5615的时序图,使用汇编语言/C语言编写单片机STC89C52与TLC5615的软件通信程序代码。
实现数/模转换功能。
6、整合模数、数模转换代码,实现信号发生器在MAX1247输入端输入正弦波(频率不限),示波器在TLC5615输出端测量到同样的正弦波,记录输出波形。
7.撰写课程设计报告。
目录
1、绪论………………………………………………………………XX
2、方案论证(规划、选定)……………………………………………XX
3、方案说明(设计)XX…………………………………………XX
4、硬件方案设计……………………………………………………XX
5、软件方案设计……………………………………………………XX
6、调试………………………………………………………………XX
6、技术小结(结束语)……………………………………………XX
8、参考文献…………………………………………………………XX
9、附录(源程序代码、电路图等)………………………………XX
1.绪论
本实验主要是基于单片机微型控制器的控制,实现将模拟信号转换成数字信号的一个简单实验。
通过这个实验,可以为广大研究人员提供一个比较系统的模数数模转换基础资料,以便于将模拟信号转换为数字信号或将数字信号转换成模拟信号。
2.方案论证
2.1.试验原理
本实验主要是通过单片机stc89c52芯片控制模数转换芯片tlc549将所给模拟信号转换成数字信号,然后将数字信号读进数模转换芯片tlc5615,从输出端口将转换后的信号输出来。
可用图1简洁明了地表现出来:
2.2模/数转换器
(1)模/数转换器的作用TLC549是一种高性能的8位A/D转换器,它以8位开关电容逐次逼近的方法实现A/D转换,本实验通过用该芯片采集模拟量,然后将采集到的模拟量转换为数字量后送至单片机。
(2)芯片特性;
TLC549芯片,可与通用微处理器、控制器通过I/OCLOCK、CS、DATAOUT三条口线进行串行接口。
具有4MHz片内系统时钟和软、硬件控制电路,转换时间最长17s,TLC549允许的最高转换速率为40000次/s。
其极限参数如下:
电源电压:
6.5V;
输入电压范围:
0.3V~VCC+0.3V;
输出电压范围:
0.3V~VCC+0.3V;
峰值输入电流(任一输入端):
10mA;
总峰值输入电流(所有输入端):
30mA;
工作温度:
0~70
(3)引脚功能
Tlc549的引脚图如下:
TLC549各引脚功能如下:
●ANALOGIN,模拟量输入端;
●scLK,串行时钟输入端;
●cs,芯片选择,低有效;
●DATAOuT,数字量输出端;
●GND,模拟地;
●REF+,基准电压输入端;
●REF-,基准电压负端;
●VCC,正电源电压端。
(4)时序控制
Tlc549的工作时序图如下:
当CS为高时,数据输出(DATAOUT)端处于高阻状态,此时I/OCLOCK不起作用。
这种CS控制作用允许在同时使用多片TLC549时,共用I/OCLOCK,以减少多路(片)A/D并用时的I/O控制端口。
一组通常的控制时序为:
(1)将CS置低。
内部电路在测得CS下降沿后,再等待两个内部时钟上升沿和一个下降沿后,然后确认这一变化,最后自动将前一次转换结果的最高位(D7)位输出到DATAOUT端上。
(2)前四个I/OCLOCK周期的下降沿依次移出第2、3、4和第5个位(D6、D5、D4、D3),片上采样保持电路在第4个I/OCLOCK下降沿开始采样模拟输入。
(3)接下来的3个I/OCLOCK周期的下降沿移出第6、7、8(D2、D1、D0)个转换位,
(4)最后,片上采样保持电路在第8个I/OCLOCK周期的下降沿将移出第6、7、8(D2、D1、D0)个转换位。
保持功能将持续4个内部时钟周期,然后开始进行32个内部时钟周期的A/D转换。
第8个I/OCLOCK后,CS必须为高,或I/OCLOCK保持低电平,这种状态需要维持36个内部系统时钟周期以等待保持和转换工作的完成。
如果CS为低时I/OCLOCK上出现一个有效干扰脉冲,则微处理器/控制器将与器件的I/O时序失去同步;若CS为高时出现一次有效低电平,则将使引脚重新初始化,从而脱离原转换过程。
在36个内部系统时钟周期结束之前,实施步骤
(1)-(4),可重新启动一次新的A/D转换,与此同时,正在进行的转换终止,此时的输出是前一次的转换结果而不是正在进行的转换结果。
若要在特定的时刻采样模拟信号,应使第8个I/OCLOCK时钟的下降沿与该时刻对应,因为芯片虽在第4个I/OCLOCK时钟下降沿开始采样,却在第8个I/OCLOCK的下降沿开始保存。
2.3数/模转换器
(1)数/模转换器的作用TLC5615是一个串行10位DAc芯片,它以10位开关电容逐次逼近的方法实现D/A转换。
本实验通过用该芯片采集数字量,然后将采集到的数字量转换为模拟量后送至示波器。
(2)芯片特性;
Tlc5615只需要通过3根串行总线就可以完成10位数据的串行输入,易于和工业标准的微处理器或微控制器(单片机/DsP)接口,适用于数字失调与增益调整以及工业控制场合。
其主要特点如下:
●单5V电源工作;
●3线串行接口;
●DAc输出的最大电压为2倍基准输入电压;
●上电时内部自动复位;
●微功耗,最大功耗为1.75mw;
●转换速率快,更新率为1.21MHz;
●建立时间125μs;
(3)引脚功能
Tlc5615的引脚图如下:
各引脚功能如下:
●DIN,串行二进制数输入端;
●scLK,串行时钟输入端;
●cs,芯片选择,低有效;
●DOuT,用于级联的串行数据输出;
●AGND,模拟地;
●REFIN,基准电压输入端;
●OuT,DAc模拟电压输出端;
●VDD,正电源电压端。
(4)时序控制
Tlc5615的工作时序图如下:
当片选CS为低电平时,串行输人数据才能被移人l6位移位寄存器。
当CS为低电平时,在每一个SCLK时钟的上升沿将DIN的一位数据移入16位移寄存器。
注意,二进制最高有效位被导前移入。
接着,CS的上升沿将16位移位寄存器的1O位有效数据锁存于lO位DAC寄存器,供DAC电路进行转换;当片选CS为高电平时,串行输人数据不能被移人l6位移位寄存器。
注意.CS的上升和下降都必须发生在SCLK为低电平期间。
3.方案说明
本实验主要是通过单片机stc89c52芯片控制模数转换芯片tlc549将所给模拟信号转换成数字信号,然后将数字信号读进数模转换芯片tlc5615,从输出端口将转换后的信号输出来。
可用图2简洁明了地表现出来:
4.硬件方案设计
4.1单片机最小系统部分
4.2串口部分
模数转换tlc549部分
数模转换部分tlc5615部分
5.软件方案设计
本实验要求用stc89c52,max232,tlc549和tlc5615四种芯片,其中stc89c52是单片机微型控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,相当于一个微型计算机,同时它体积小,质量轻,价格便宜。
Stc89c52是整个实验的核心,通过它的控制完成各个模块的正常工作。
Max232是一个串口芯片,它的功能主要是实现电脑和单片机之间的通信。
Tlc549是一个模数转换芯片,它是一个串行输出的八位芯片,实现模数转换。
Tlc5615是一个数模转换芯片,它是一个串行输出的十位芯片,实现数模转换。
程序流程图:
6.调试
6.1硬件调试
查出问题有
(1)单片机地线没接
(2)Tlc549参考电压没接
(3)Max232一电容接错
将错误一一改正
仿真图
(绿色的是输出端波形,红色的事输入端波形)
输入是正弦波的时候输出是(不能输出负电压)
输入是方波的时候输出是
6.2软件调试
从开始到结束出现的软件问题
(1)tlc549采样程序出错
(2)忽略了tlc549是八位精度,而tlc5615是十位精度
(3)没有考虑数模转换只能输出正电压,即没有考虑tlc5615的电压输出范围
对应的程序是:
#include
#include
#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;
sclk=0;
}
sclk=0;
cs=1;
_nop_();
_nop_();
}
/*-----------------------TLC549子函数-----------------------*/
voidread_tlc()
{
uchari,j=0,k;
tlc_clk=0;
tlc_cs=1;
tlc_cs=0;
delay
(2);
for(i=0;i<8;i++)
{
j=j<<1;
k=tlc_data;
tlc_clk=1;
delay
(1);
tlc_clk=0;
//共移出8位数据
j=j+k;
}
tlc_cs=1;
led=0;
write_5615(j);
_nop_();
_nop_();
}
voidmain()
{
while
(1)
{
read_tlc();
}
}
6.3软件和硬件联合调试
(1)不清楚tlc549正常工作否,在单片机的p1.4接口接了一个低电平控制的二极管来监督tlc549是否正常工作,如果正常工作,那么二极管将会发光。
(2)当程序烧进单片机时,输出端没有显示,故在输入端输入一个高电平模拟信号,发现输出是高电平,再在输入端输入一个低电平模拟信号,发现依然是高电平,故猜测是硬件没有正常工作,检查出是硬件问题。
7.小结
通过这次试验,使自己的动手能力提高了很多,使自己的分析问题能力也提高了很多,不过最有价值的是自己知道遇到问题该怎么去解决,怎么去做。
不过,也发现了自己的不足,比如看文档不是怎么细心,如数模转换芯片只能输出正电压,还有焊接硬件时将电路焊接错了,希望在以后能够不断改掉自己的不好习惯,同时扎实自己的理论基础。
8.参考文献
1.《微型计算机控制技术》,潘新明,王燕芳,高等教育出版社,2001.7
9.附录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 tlc549 tlc5615 数模 转换 讲解
![提示](https://static.bdocx.com/images/bang_tan.gif)