tlc549和tlc5615模数数模转换.docx
《tlc549和tlc5615模数数模转换.docx》由会员分享,可在线阅读,更多相关《tlc549和tlc5615模数数模转换.docx(17页珍藏版)》请在冰豆网上搜索。
![tlc549和tlc5615模数数模转换.docx](https://file1.bdocx.com/fileroot1/2023-1/26/69470f5e-80f5-4c2d-9403-be6123a7ade7/69470f5e-80f5-4c2d-9403-be6123a7ade71.gif)
tlc549和tlc5615模数数模转换
一、设计题目:
基于C语言的TLC549和TLC5615模数、数模转换系统设计
设计要求
1、查阅资料,熟悉硬件和软件;
2、掌握TLC549芯片和TLC5615芯片的特性,引脚功能。
3、确定详细软件设计方案,画程序流程图。
4、根据TLC549的时序图,使用C语言编写单片机STC89C52与TLC549的软件通信程序代码。
实现模/数转换功能。
5、根据TLC5615的时序图,使用C语言编写单片机STC89C52与TLC5615的软件通信程序代码。
实现数/模转换功能。
6、整合模数、数模转换代码,实现信号发生器在TLC549输入端输入正弦波(频率不限),示波器在TLC5615输出端测量到同样的正弦波,记录输出波形。
7、撰写课程设计报告。
三、微型计算机控制技术课程设计报告内容
1、设计要求
2、方案论证
TLC549
(1)模/数转换器的作用
(2)芯片特性;
(3)引脚功能
(4)时序控制
TLC5615
(1)数/模转换器的作用
(2)芯片特性简介
(3)引脚功能
(4)时序控制
3、硬件设计
4、软件设计(包括流程图及代码)
5、测试分析
6、小结
参考文献
试验报告
《计算机控制技术》
课程设计报告书
课题名称
姓名
学号
专业
指导教师
机电与控制工程学院
年月日
任务书
1、绪论…………………………………………………………………XX
2、方案论证(规划、选定)……………………………………………XX
3、方案说明(设计)………………………………………………………XX
4、硬件方案设计…………………………………………………………XX
5、软件方案设计…………………………………………………………XX
6、调试……………………………………………………………………XX
7、技术小结(结束语)…………………………………………………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为低电平期间。
2.4对整个电路进行仿真
出现的结果是
仿真图
(绿色的是输出端波形,红色的事输入端波形)
输入是正弦波的时候输出是(不能输出负电压)
输入是方波的时候输出是
3.硬件方案设计
3.1单片机最小系统部分
3.2串口部分
模数转换tlc549部分
数模转换部分tlc5615部分
4.软件方案设计
本实验要求用stc89c52,max232,tlc549和tlc5615四种芯片,其中stc89c52是单片机微型控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,相当于一个微型计算机,同时它体积小,质量轻,价格便宜。
Stc89c52是整个实验的核心,通过它的控制完成各个模块的正常工作。
Max232是一个串口芯片,它的功能主要是实现电脑和单片机之间的通信。
Tlc549是一个模数转换芯片,它是一个串行输出的八位芯片,实现模数转换。
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();
}
}
5.调试
5.1硬件调试
查出问题有
(1)单片机地线没接
(2)Tlc549参考电压没接
(3)Max232一电容接错
将错误一一改正
5.2软件调试
从开始到结束出现的软件问题
(1)tlc549采样程序出错
(2)忽略了tlc549是八位精度,而tlc5615是十位精度
(3)没有考虑数模转换只能输出正电压,即没有考虑tlc5615的电压输出范围
5.3软件和硬件联合调试
(1)不清楚tlc549正常工作否,在单片机的p1.4接口接了一个低电平控制的二极管来监督tlc549是否正常工作,如果正常工作,那么二极管将会发光。
(2)当程序烧进单片机时,输出端没有显示,故在输入端输入一个高电平模拟信号,发现输出是高电平,再在输入端输入一个低电平模拟信号,发现依然是高电平,故猜测是硬件没有正常工作,检查出是硬件问题。
5.4软件和硬件联合测试
当输入正弦波形时,输出是:
当输入时正弦波形时:
6.小结
通过这次试验,使自己的动手能力提高了很多,使自己的分析问题能力也提高了很多,不过最有价值的是自己知道遇到问题该怎么去解决,怎么去做。
不过,也发现了自己的不足,比如看文档不是怎么细心,如数模转换芯片只能输出正电压,还有焊接硬件时将电路焊接错了,希望在以后能够不断改掉自己的不好习惯,同时扎实自己的理论基础。
参考文献
1.《微型计算机控制技术》,潘新明,王燕芳,高等教育出版社,2001.7