版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、DAC的输出控制欧阳引擎(2021.01.01)班级: 1221201专业:测控技术与仪;姓名:XXXXX学号:XXXXX指导老师:东华理工大学第 1 章2015年1月12日目录系 统 设案.211设计思路择系 统 硬 件 设计2.1主控制器电路.22.2数模转换电路3第3章系统软件设计.63.1 系统整体流程63.2 数模转换程序6第4章系统调试84.1 proteus的调试第 5 章结 论 与 总结115.1 结论11(系统总体设计与完成做一个总结,是客观的,主要包括:设 计思路,设计过程,测试结果及完善改逬的方向。)5.2 总结11(这是一个主观的总结,谈谈自己收获和不足等方面的内 容。
2、)第1章系统设计方案1.1设计思路()、课设需要各个波形的基本输出。如输出矩形波、锯 齿波,正弦波。这些波形的实现的具体步骤:正弦波的实现是 非常麻烦的。它的实现过程是通过定义一些数据,然后执行时 直接输出定义的数据就可以了。然而为了实现100HZ的频率, 终于发现,将总时间除了总步数,根据每步执行时间,算出延 时时间,最终达到要求,然后建一个表通过查表来进行输出, 这样主要工作任务就落到了建表的过程中。这样做的好处在 于,查表所耗费的时钟周期相同,这样输出的点与点之间的距 离就相等了,输出的波形行将更趋于完美,当然更让我们感到 的高兴的是它输出波形的频率将近达到了 100赫兹,能够满足 我们
3、设计的扩展要求了。而三角波,则每次累加1,当达到初值 时,每次累减1,算出延时时间,也就达到要求了,矩形波和锯 齿波类似。(二)、这次做的三种波形可以相互转换,这个实现起来找 了很多人最终发现,在每次循环之初进行扫描,而在每个中断 入处,对中断优先级进行设定,最终达到设计目的。12方案比较与选择方案一:采用模拟电路搭建函数信号发生器,它可以同时 产生方波、三角波、正弦波。但是这种模块产生的不能产生任 意的波形(例如梯形波),并且频率调节很不方便。方案二:采用锁相式频率合成器,利用锁相环,将压控振 荡器(VCO)的输出频率锁定在所需频率上,该方案性能良 好,但难以达到输出频率覆盖系数的要求,且电
4、路复杂。方案三:使用集成信号发生器发生芯片,例如AD9854,它 可以生成最高几十MHZ的波形。但杲该方案也不能产生任意波 形(例如梯形波),并且价格昂贵。方案四:采用AT89C51单片机和DAC0832数模转换器生 成波形,加上一个低通滤波器,生成的波形比较纯净。它的特 点是可产生任意波形,频率容易调节,频率能达到设计的 500HZ以上。性能貳在低频范围内稳定性好、操作方便、体 积小、耗电少。经比较,方案四既可满足课程设计的基本要求又能充分发 挥其优势,电路简单,易控制,性价比高,所以采用该方案.第2章系统硬件设计2.1主控制器电路89C52可编程并行接芯片有三个输入输出端口,即A 口、B
5、和 C ,对应于引脚 PA7PAO、PB7PB0 和 PC7 PCOo其内部还有一个控制寄存器,即控制口。通常A 、B 作为输入输出的数据端口。C 作为控制或状态信息的端 ,它在方式字的控制下,可以分成4位的端口,每个端包 含一个4位锁存器。它们分别与端口 A/B配合使用,可以用 作控制信号输出或作为状态信号输入。89C52可编程并行接芯片工作方式说明:方式0:基本输入/输出方式。适用于三个端中的任何一 个。每一个端都可以用作输入或输出。输出可被锁存,输入 不能锁存。方式1:选通输入/输出方式。这时A 或B 的 8位外设线用作输入或输出,C的4条线中三条用作数据传输 的联络信号和中断请求信号。
6、方式2:双向总线方式。只有A 具备双向总线方式,8位外设线用作输入或输出,此时C 的5条线用作通讯联络信号和中断请求信号。原理框图:硬件设计2.2数模转换电路由于单片机产生的是数字信号,要想得到所需要的波形, 就要把数字信号转换成模拟信号,所以该文选用价格低廉、接 简单、转换控制容易并具有8位分辨率的数模转换器 DAC0832。DAC0832主要由8位输入寄存器、8位DAC寄存欧阳引擎创编2021.01.01500ns)有效。由WR2. XFER的逻辑组合产生LE2,当LE2为 高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的 负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转
7、 换。IOUT1:电流输出端1,其值随DAC寄存器的内容线性变 化;IOUT2:电流输出端2,其值与IOUT1值之和为一常数;Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换 满量程精度;Vcc:电源输入端,Vcc的范围为+5V+15V;VREF:基准电压输入线,VREF的范围为-10V-+10V;AGND:模拟信号地DGND:数字信号地DAC0832三种数据输入方式:(1)双缓冲方式:即数据经过双重缓冲后再送入D/A转换电路,执行两次写操作 才能完成一次D/A转换。这种方式可在D/A转换的同时, 进行下一个数据的输入,可提高转换速率。更为重要的是,这 种方式特别适用于要求同时输出多个
8、模拟量的场合。此时,要 用多片DAC0832组成模拟输出系统,每片对应一个模拟量。(2)单缓冲方式:不需要多个模拟量同时输出时,可采用此种方式。此时两个寄存器之一处于直通状态,输入数据只经过一 级缓冲送入D/A转换电路。这种方式只需执行一次写操作, 即可完成D/A转换。(3)直通方式:此时两个寄存器均处于 直通状态,因此要将厉、礦】、阪和屜端都接数字地,ILE 接高电平,使LEI、LE2均为高电平,致使两个锁存寄存器同 肘处于放行直通状态,数据直接送入D/A转换电路进行D/A 转换。这种方式可用于一些不采用微机的控制系统中或其他不 须0832缓冲数据的情况。第3章系统软件设计ine uchar
9、 unsigned char ine uint unsigned int ine DAC083Z P2fine ALL 65536 fine Fosc 120000003.1系统整体流程 3.2数模转换程序#include#de#de#de#de#deuchar TH 0,TL 0flagl9flag=0;uint FREQ=106num;float temp;de sin_num = ,-心 0,1,1,1, 1,1.2,2.2,3, 3, 4, 4, 4, 5, 5, 6, 6, 7,7,8,9,禺10, 11, 12,12,13, 14,15,15, 16, 17,18,18,19,23
10、, 24, 25,25,26, 27,28,29, 30, 31,32,34,35,39, 40, 41,42,44, 45,46,47, 49, 50,51,52,54,59, 60, 61,63,64, 66,67,68, 70, 71,73,74,75,80; 81, 83, 84,86,87, 89,90,92, 93, 95,96,98,99,104, 106,107,109,110,112,113,118,120, 121,123,124,126,128,129, 131,132,134,135,137;139,143,145,146,148,149,151,153,154, 15
11、6,157,159,160.162,163,168,169,171,172,174,175,177,uint FREp=100num;uchar code sin_num = 0, 0,0,07 0,0,0 ?b,20, 21,22, 地泓 55, 56,5久77, 78,厂101,102,116,142,166,178, 180,181,182.184,189,191,192,194,195,196,198,199,115,140,165,188,178, 180,181,182,184,185,187,0,2o2,2,o 81 22 22824262 13 4 3 ,2,2,25 5 打含
12、$ o123344255 222,22,22525 6 2 5 2 2 1 3 4 2 5 0521344252 2123242125 ,2,2,25 5 f4V0D,2,2 3Z11Z37Z47 4 0222324 ,5 , 23202321251 3 4 5 52 2 2 2 2 , , , , ,1 0 6 7 3 .o,戏,3,.4上, 21292221252 4 5 5 久25,2乞23,23 4 52 2 2 L 1 4 206,208,2095,226,2279,240,2403;249,250210 Ac Az) 333 2 ppptlt ;一一 一一 =in 6123 u A
13、 e e e( 3 o&o&o&y p n n n a 一一 a a ael shhhd cc c c 1111 d 1 el 1 *1 1 bbbb o s s s s Yuint x,y;for(x=z;x 0;x) for(y=110;y0;y-);void init() TMOD=0X01;temp=ALL-Fosc/12.0/256/FREQ;TH_0=(uint)temp/256;TL_0=(uint)temp%256;EX0=i;ITO=1;ETO=1;TRO=1;void changefreq(void)if(change=O)- if(Hag=4; flag=0;num=0;
14、 TH_0=(uint)temp/256; TL_0=(uint)temp%256;void sanjiaobo(void)for(num=0;num0;-num) cs=0;DAC0832=num;cs=l;void fangbo(void) cs=0;DAC0832=0XFF;cs=l; for(num=0;num0;num-);void juchibo(void)cs=0;DAC0832=+num;cs=l;void zhengxianbo(void) for(num=0;num(T;nuin-) cs=0;DAC0832=sin_numnum;cs=l;void ext0() inte
15、rrupt 0 changefreq();void timer0() interrupt 1TR0=0;swi TH0=TH 0;TL0=TL 0;TR0=0: -_switchfflag)case 0: case 1:case 2: case 3:, default:;sanjiaobo();TRO=l;break; fangbo() ;TK0=l: break; jucnibo();TRO=ljbreak; zhengxianbo();TK0=l; break; void main() init(); while(l);第4章系统调试4.1 proteus 的调试 矩形波 锯齿波 正弦波
16、第5章结论与总结5.1结论基于单片机的信号发生器设计,这个信号发生器的设计中涉 及到一个典型的控制过程。通过单片机控制一个数模转换器 DAC0832产生所需要的电流,然后使用运算放大器LM324 以将其电流输出线性地转换成电压输出,再将电压经过运算放 大器的放大,可以得到足够幅度的信号。通过程序的控制,可 以产生一系列有规律的波形。有了大概思路后,我就开始连接硬件电路。首先,我先根据 要求找好了需要的原件,单片机AT89C52用作主控制模块;然 后再连好数模转换电路这一块;再者把这两段组合在一起,就 完成了一个简单硬件电路。最后根据连好电路写出所需程序, 运行成功后形成Hex文件。再用自己连好
17、的仿真图运行,如果 运行正常,就可以得到我们需要的波形。按键可以切换波形和 改变频率幅度的大小。虽然波形图基本可以实现,但电路图还存在一些问题。就放 大电路这块来说,我个人只用了一个放大器,反馈电路用的正 向放大,幅度调节不明显。我后来就增大了放大倍数,效果相 比较好了很多课设幵始的时候由于没有经验,不知从何下手,所以就上 网搜了很多关于信号发生器的资料,并翻阅了一些相关书籍。 经过将近两周的单片机课程设计,终于完成了我的DAC输出控 制的设计,基本达到设计要求,从心底里来说,还是很高兴 的,但高兴之余不得不深思呀!在本次设计的过程中,我发现很多的问题,虽然以前还做 过这样的设计但这次设计真的让我长进了很多。对于单片机设 计,其硬件电路是比较简单的,主要是解决程序设计的冋题, 而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑 思维和创新能力,它才是一个设计的灵魂所在。因此在整个设 计过程中大部分时间是用在程序上面的。很多子程序是可以借 鉴书本上的,但怎样衔接各个子程序才是关键的冋题所在,这 需要对单片机的结构很熟悉。因此可以说单片机的设计是软件 和硬件的结合,二者是密不可分的。要设计一个成功的电路,必须
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论