信号发生器DAC0832和AT89C52Word文档下载推荐.docx
《信号发生器DAC0832和AT89C52Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《信号发生器DAC0832和AT89C52Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。
四系统软件设计......................................................................................11
五心得体会..............................................................................................12
六参考文献..............................................................................................12
一课题要求与内容.
1.1设计内容:
根据指定的题目完成硬件与软件的设计(原则上要求制作实物或仿真设计)。
1.2设计目的:
(1)了解D/A转换与单片机的接口方法;
(2)了解D/A转换芯片的性能及编程方法;
(3)了解单片机系统中扩展D/A转换的基本方法
1.3设计要求:
利用数字序列输出一个从0V开始逐渐升至5V再降至0V的可变电压,循环并且利用示波器观测波形。
制作信号发生器,并且讨论精度及其提高的方法。
二系统方案设计
2.1信号发生器是一种常用的信号源,广泛应用于电
子电路、自动控制系统和教学实验等领域。
信号的产生有模拟电路、专用硬件和软件产生等方法。
采用
模拟电路搭建函数信号发生器,可同时产生方波、三角
波、正弦波,但不能产生任意波形,存在波形质量差、控
制难、可调范围小,电路复杂和体积大等缺点,且频率
调节不方便。
专用硬件方法产生的信号频率分辨率
高、稳定性好、在线调整方便。
2.2信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。
这次的设计分为五个模块:
单片机控制及显示模块、数模转换模块、波形产生模块、输出显示模块、电源模块。
使用AT98C52作为主控台结合芯片DAC0832产生1HZ-10HZ频率可调的五种信号波(锯齿波、三角波、方波、梯形波、正弦波)。
这几种波形有几个开关控制,可以随意进行切换,十分方便。
另外,波形的频率和振幅也可以通过开关进行更改。
可以说这次的设计操作简单,内容丰富,而且电路快捷明了。
三系统硬件的设计
3.1DAC0832芯片介绍:
DAC0832是8分辨率的D/A转换集成芯片。
与微处理器完全兼容。
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
●分辨率为8位;
●转换时间为1us;
●可单缓冲、双缓冲或者直接数字转换;
●只需在满量程下调整其线性度;
●逻辑电平输入与TTL兼容;
●单一电源供电(+5V~+15V);
●基准电压的范围为±
10V。
图一:
DAC0832引脚图
根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:
直通方式、单缓冲方式和双缓冲方式。
1、单缓冲方式。
单缓冲方式是控制输入寄存器和DAC寄存器同时接收资料,或者只用输入寄存器而把DAC寄存器接成直通方式。
此方式适用只有一路模拟量输出或几路模拟量异步输出的情形。
2、双缓冲方式。
双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出资料到DAC寄存器,即分两次锁存输入资料。
此方式适用于多个D/A转换同步输出的情节。
3、直通方式。
直通方式是资料不经两级锁存器锁存,即CS*,XFER*,WR1*,WR2*均接地,ILE接高电平。
此方式适用于连续反馈控制线路和不带微机的控制系统,不过在使用时,必须通过另加I/O接口与CPU连接,以匹配CPU与D/A转换。
DAC0832引脚功能电路应用原理图DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。
所以这个芯片的应用很广泛,关于DAC0832应用的一些重要资料见下图:
D/A转换结果采用电流形式输出。
若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。
运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接。
DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。
数模转换器的主要技术指标
(1)分辨率
分辨率指输入给D/A转换器的单位数字量引起的模拟量输出的变化,通常定义为输出满刻度值与2n之比(n为D/A转换器的二进制位数)。
显然,二进制位数越多,分辨率越高,即D/A转换器对输入量变化的敏感程度越高。
例如,8位的D/A转换器,若满量程输出为10V,根据分辨率定义,则分辨率为10V/2n,分辨率为10V/256=39.1mV,即输入的二进制最低位的变化可引起输出的模拟电压变化39.1mV,该值占满量程的0.391%,常用1LSB表示。
使用时,应根据对D/A转换器分辨率的需要来选定D/A转换器的位数。
(2)相对精度
相对精度是指在满刻度已经校准的前提下,在整个刻度范围内,对应于任一数码的模拟量输出与它的理论值之差。
通常用偏差几个LSB来表示。
(3)建立时间
建立时间是描述D/A转换器转换快慢的一个参数,用于表明转换时间或转换速度。
其值为从输入数字量到输出达到总值误差±
(1/2)LSB(最低有效位)时所需的时间。
电流输出的转换时间较短,而电压输出的转换器,由于要加上完成I-V转换的运算放大器的延迟时间,因此转换时间要长一些。
快速D/A转换器的转换时间可控制在1us以下。
(4)线性度
通常用非线性误差的大小表示D/A转换器的线性度,输入输出特性的偏差与满刻度输出之比的百分数表示非线性误差。
一定温度下的最大非线性误差一般为0.01%~0.03%。
图二:
DAC0832内部逻辑框图
3.2AT89C52特性
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flsah只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
图三:
单片机控制部分
图四:
晶振部分
单片机晶振的作用是为系统提供基本的时钟信号。
通常一个系统共用一个晶振,便于各部分保持同步。
有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。
晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。
如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。
AT89C52使用12MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。
此次选择22pF。
图五:
复位部分
单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值。
单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位。
当复位电平持续两个机器周期以上时复位有效。
复位电平的持续时间必须大于单片机的两个机器周期。
具体数值可以由RC电路计算出时间常数。
复位电路由按键复位和上电复位两部分组成。
(1)上电复位:
STC89系列单片及为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为10K和10uF。
(2)按键复位:
按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。
图六:
DAC0832部分
3.3UA741特性
741型运算放大器具有广泛的模拟应用。
宽范围的共模电压和无阻塞功能可用于电压跟随器。
高增益和宽范围的工作电压特点在积分器、加法器和一般反馈应用中能使电路具有优良性能。
此外,它还具有如下特点:
(1)无频率补偿要求;
(2)短路保护;
(3)失调电压调零;
(4)大的共模、差模电压范围;
(5)低功耗。
采用UA741运算放大器将电流信号转换为电压信号。
转换后输出的电压值为-D*VREF/255其中D为输出的数据字节,将输出的字节值先从0~255递增,再从255~0递减,如此循环,输出电压值先由0~-5V递减,再从-5V~0递增,依次循环,形成三角波。
图七:
proteus仿真电路图
图八:
三角波波形
四系统软件设计
程序设计
#include
<
reg51.h>
absacc.h>
#define
uint
unsigned
int
uchar
char
DAC0832
XBYTE[0x7fff]
void
DelayMS(uint
ms)
{
i;
while(ms--)
for(i=0;
i<
120;
i++);
}
main
()
k;
k=0;
i=0;
while
(1)
if(k==0)
i--;
DAC0832=i;
if(i==0)
k=~k;
DelayMS
(1);
else
i++;
if(i==255)
}
五心得体会
通过这次课程设计,让我更加深刻了解课本知识,和以往对知识的疏忽得以补充。
回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。
六参考文献