波形发生器课程设计

上传人:仙*** 文档编号:31404509 上传时间:2021-10-11 格式:DOC 页数:17 大小:1.03MB
收藏 版权申诉 举报 下载
波形发生器课程设计_第1页
第1页 / 共17页
波形发生器课程设计_第2页
第2页 / 共17页
波形发生器课程设计_第3页
第3页 / 共17页
资源描述:

《波形发生器课程设计》由会员分享,可在线阅读,更多相关《波形发生器课程设计(17页珍藏版)》请在装配图网上搜索。

1、单片机原理及应用课程设计题 目: 用单片机实现的波形发生器 专 业: 10自动化(2) 学 号: 201010320220 姓 名: 完成日期: 2013-6-28 指导教师: 张 玲 单片机原理及应用课程设计任务书班级: 姓名: 指导老师:张 玲 2013年 6 月 28 日设计题目:用单片机实现的波形发生器设计任务1 以单片机为主控制器设计一波形发生器,通过示波器观察所得的信号波形。2 通过功能选择,可输出方波、正弦波和三角波。设计要求1 调研、查找并收集资料。2 总体设计。3 硬件设计::用A4纸画出硬件的接线图。4 软件设计:画流程图及编写程序。5 撰写设计说明书(字数约2500字左右

2、)。6 参考资料目录参考资料单片机原理及接口技术 胡汉才 清华大学出版社单片机中级教程 张俊谟 北航出版社单片机原理及接口技术 李全利 高等教育出版社教研室主任签字: 年 月 日 目录1 引言42 概述52.1 方案论证5方案一5方案二5方案三53主要芯片介绍63.1 高精度可编程波形发生器AD9833中文资料63.1.1 AD983363.1.2 AD9833的结构及功能64 软件程序94.1 程序流程图94.2 程序95 调试与实物展示135.1结果分析135.2 实物图16附录:总体电路图171 引言 信号发生器是指产生所需参数的电测试信号的仪器。按信号波形可分为正弦信号、函数(波形)信

3、号、脉冲信号和随机信号发生器等四大类。信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。正弦信号是频率成分最为单一的一种信号,因这种信号的波形是数学上的正弦曲线而得名。任何复杂信号例如音乐信号,都可以通过傅里叶变换分解为许多频率不同、幅度不等的正弦信号的迭加。方波信号是指电路系统中信号的质量,如果在要求的时间内,信号能不失真地从源端传送到接收端,我们就称该信号是方波信号。信号具有良好的方波信号是指当在需要的时候,具有所必需达到的电压电平数值。差的方

4、波信号不是由某一单一因素导致的,而是板级设计中多种因素共同引起的。主要的方波信号问题包括反射、振荡、地弹、串扰等阶梯波发生器产生的阶梯信号,在无线电遥测,调频信号磁带记录以及数字电压表中较为有用,有时作为比较基准电压.产生阶梯波的方法也较多。 实现信号发生器的方法有很多种,通过模拟电路的脉冲信号发生电路配合积分微分电路可以产生正弦,三角波,方波信号,而目前市面上有很多集成好的信号发生器芯片,例如AD9850、AD9833等芯片,能通过单片机等控制器产生频率可变的很稳定和精度很高的基础信号,本设计采用AT89S52控制集成芯片AD9833产生正弦波,三角波和方波信号,通过加法器处理方波信号实现方

5、波到阶梯波的转变,并利用第二课堂的资源制作成实物,将实验产生的波形通过数字示波器测试出来。2 概述 该系统是通过51单片机控制集成的DDS波形发生器产生三角波,正弦波,方波的电路设计,经过测试系统能产生精确度为0.1HZ的上述波形,频率范围可通过控制器使频率在1HZ3MHZ的稳定的波形范围内。该设计通过了硬件调试,设计论文中的波形图像都来自于数字示波器的USB flash devide端口。2.1 方案论证方案一:通过DA0832 8位精度的数字-模拟转换芯片,使用这块集成芯片优点有芯片价格低廉,接口简单,软件编写简单,但不足之处是芯片产生的合成信号转换速度低,产生信号的频率范围很有限方案二:

6、采用纯数字模拟技术,用NE555史密斯触发器产生方波信号,以方波为基波通过模拟电路组成的积分微分电路再生成其他波形,通过手动调节电阻从而控制波形频率,其结构图如图1 图1 该方案的优点在于成本很低很低,并且可以免去程序的编制,不需要微处理器的知识,能很好的巩固硬件知识。但有利必有弊,其缺点在于过多的硬件器件使系统稳定性大幅度下降,没有软件辅助波形设定麻烦,波形不稳定,最主要的是纯模拟电路调试很麻烦。方案三:采用集成芯片DDS波形发生器,该系列芯片优点突出,其中AD9833是ADI公司生产的一款低功耗,可编程波形发生器,能够产生正弦波、三角波、方波输出。其特点是频率和相位可通过改变内部寄存器来编

7、程,通过主控制器选择波形,频率。三线的SPI接口使得线路简单,软件编写简单,输出频率有所提高,其缺点是输出杂散大。 按键输入频率和切换波形AT89S52SPI通信AD9833信号发生器根据上面的优缺点比较综合论证,本设计采用方案三。3主要芯片介绍3.1 高精度可编程波形发生器AD9833中文资料3.1.1 AD9833 AD9833是ADI公司生产的一款低功耗,可编程波形发生器,能够产生正弦波、三角波、方波输出。波形发生器广泛应用于各种测量、激励和时域响应领域,AD9833无需外接元件,输出频率和相位都可通过软件编程,易于调节,频率寄存器是28位的,主频时钟为25MHz时,精度为0.1Hz,主

8、频时钟为1MHz时,精度可以达到0.004Hz。可以通过3个串行接口将数据写入AD9833,这3个串口的最高工作频率可以达到40MHz,易于与DSP和各种主流微控制器兼容。AD9833的工作电压范围为2.3V5.5V。3.1.2 AD9833的结构及功能 电路结构 AD9833是一块完全集成的DDS(Direct Digital Frequency Synthesis)电路,仅需要1个外部参考时钟、1个低精度电阻器和一个解耦电容器就能产生高达12.5MHz的正弦波。除了产生射频信号外,该电路还广泛应外于各种调制解调方案。这些方案全都用在数字领域,采用DSP技术能够把复杂的调制解调算法简化,而且

9、很精确。 AD9833的内部电路主要有数控振荡器(NCO)、频率和相位调节器、Sine ROM、数模转换器(DAC)、电压调整器,其功能框图如图2所示。图2 AD933的核心是28位的相位累加器,它由加法器和相位寄存器组成,每来1个时钟,相位寄存器以步长增加,相位寄存器的输出与相位控制字相加后输入到正弦查询表地址中。正弦查询表包含1个周期正弦波的数字幅度信息,每个地址对应正弦波中0360范围内的1个相位点。查询表把输入的地址相位信息映射成正弦波幅度的数字量信号,去DAC输出模拟量,相位寄存器每经过228/M个MCLK时钟后回到初始状态,相应地正弦查询表经过一个循环回到初始位置,这样就输出了一个

10、正弦波。输出正弦波频率为:fOUTM(fMCLK/228) (1)其中,M为频率控制字,由外部编程给定,其范围为0M2281。 VDD引脚为AD9833的模拟部分和数字部分供电,供电电压为2.3V5.5V。AD9833内部数字电路工作电压为2.5V,其板上的电压调节器可以从VDD产生2.5V稳定电压,注意:若VDD小于等于2.7V,引脚CAP/2.5V应直接连接至VDD。 功能描述 AD9833有3根串行接口线,与SPI、QSPI、MICROWIRE和DSP接口标准兼容,在串口时钟SCLK的作用下,数据是以16位的方式加载到设备上,时序图如图3所示,FSYNC引脚是使能引脚,电平触发方式,低电

11、平有效。进行串行数据传输时,FSYNC引脚必须置低,要注意FSYNC有效到SCLK下降沿的建立时间t7的最小值。FSYNC置低后,在16个SCLK的下降沿数据被送到AD9833的输入移位寄存器,在第16个SCLK的下降沿FSYNC可以被置高,但要注意在SCLK下降沿到FSYNC上升沿的数据保持时间ts的最小和最大值。当然,也可以在FSYNC为低电平的时候,连续加载多个16位数据,仅在最后一个数据的第16个SCLK的下降沿的时将FSYNC置高,最后要注意的是,写数据时SCLK时钟为高低电平脉冲,但是,在FSYNC刚开始变为低时,(即将开始写数据时),SCLK必须为高电平(注意t11这个参数)。当

12、AD9833初始化时,为了避免DAC产生虚假输出,RESET必须置为1(RESET不会复位频率、相位和控制寄存器),直到配置完毕,需要输出时才将RESET置为0;RESET为0后的89个MCLK时钟周期可在DAC的输出端观察到波形。AD9833写入数据到输出端得到响应,中间有一定的响应时间,每次给频率或相位寄存器加载新的数据,都会有78个MCLK时钟周期的延时之后,输出端的波形才会产生改变,有1个MCLK时钟周期的不确定性,因为数据加载到目的寄存器时,MCLK的上升沿位置不确定。3.2 89S52介绍 AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储

13、器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。4 软件程序4.1 程序流程图图6示出了AD9833的软件流程。无论是写控制寄存器、频率寄存器还是相位寄存器、在写数据之前都需要把选通信号置为有效状态,这样写入的数据才会有效,否则无效。在DSP发送完1个数据字后将产生SPI中断请求,本设计中未使用中断方式,而且通过查询中断标志来跳出,并虚读DSP的接收缓冲器清除中断标志。

14、 图34.2 程序#include #include #define BITB 0x0800sbit fsync = P14;sbit sclk = P15;sbit sdata = P16;#define DDS_SCLK_UP sclk=1#define DDS_SCLK_DOWN sclk=0#define DDS_SDATA_UP sdata=1#define DDS_SDATA_DOWN sdata=0#define DDS_FSYNC_UP fsync=1#define DDS_FSYNC_DOWN fsync=0unsigned int Config_Data8;void del

15、ay2us(unsigned char i) while (-i);void writeDDS2Byte(unsigned int config) unsigned char i;DDS_SCLK_DOWN;_nop_();DDS_FSYNC_UP;_nop_();DDS_SCLK_UP;delay2us(1);DDS_FSYNC_DOWN;_nop_();for (i=0; i16; i+) if (config & 0x8000) DDS_SDATA_UP;else DDS_SDATA_DOWN;delay2us(1);DDS_SCLK_DOWN;delay2us(1);DDS_SCLK_

16、UP;config = 1;DDS_FSYNC_UP;_nop_();DDS_SCLK_DOWN;delay2us(100);/波形发生函数/入口参数: 频率:Freq (12000000) Freq=12000000; switch(Shape) case 0: Config_Data0=0x2108; Config_Data7=0x2008; break; case 1: Config_Data0=0x210A; Config_Data7=0x200A; break; case 2: Config_Data0=0x2128; Config_Data7=0x2028; break; defa

17、ult:Config_Data0=0x2108; Config_Data7=0x2008; temp=Freq*13.4217728; /temp=Freq*(0x10000000/25000000); Config_Data1=temp&0x3fff; Config_Data3=Config_Data1; Config_Data2=(temp&0x0fffc000)14; Config_Data4=Config_Data2; Config_Data1=Config_Data1|0x4000; Config_Data2=Config_Data2|0x4000; Config_Data3=Con

18、fig_Data3|0x8000; Config_Data4=Config_Data4|0x8000; Config_Data5=0xC000; Config_Data6=0xE000; for(k=0;k12000000) freq1=12000000; if (freq212000000) freq2=12000000; switch(shape) case 0: Config_Data0=0x2108; Config_Data7=0x2008; break; case 1: Config_Data0=0x210A; Config_Data7=0x200A; break; case 2:

19、Config_Data0=0x2128; Config_Data7=0x2028; break; default:Config_Data0=0x2108; Config_Data7=0x2008; temp=freq1*13.4217728; /temp=Freq*(0x10000000/20000000); Config_Data1=temp&0x3fff; Config_Data2=(temp&0x0fffc000)14; temp=freq2*13.4217728; Config_Data3=temp&0x3fff; Config_Data4=(temp&0x0fffc000)14; C

20、onfig_Data1=Config_Data1|0x4000; Config_Data2=Config_Data2|0x4000; Config_Data3=Config_Data3|0x8000; Config_Data4=Config_Data4|0x8000; Config_Data5=0xC000; Config_Data6=0xE000; for(k=0;k8;k+) writeDDS2Byte(Config_Datak); while (1) for (k=200; k; k-);writeDDS2Byte(Config_Data7 | BITB);for (k=200; k;

21、k-);writeDDS2Byte(Config_Data7 & (BITB);void key(void)if(P32=0) i=i+1000; if(P33=0) i=i-1000; if(P34=0) j+; if(j=4)j=1; if(P35=0) j-; if(j=0)j=3; void main() while(1)key();DDS_2FSK(3000, 1000, 0); 5 调试与实物展示 5.1结果分析下图48是通过按键输入3k、30k、300k、3M、5M后通过数字示波器的USB flash drive中读出来的示波器波形及参数,有图像展示的实验结果可知波形实际频率与设

22、定频率偏差值很小,图4为0.02Hz,图5-7示波器都无法读出误差,因此输出波形的频率稳定性和精确度非常高,但由于DDS的内部结构和外部时钟频率为25MHz的影响,使得输出波形受到限制,当频率在3M的时候波形较稳定,当把波形调制5M时波形失真度很大。另外,由图4-8可知波形幅度3.5V左右摆动,比较稳定。图4(3kHz的正弦波)图5(30kHz的正弦波)图6(300KHz的正弦波) 图7(3MHz的正弦波) 图8(5MHz的正弦波)如图9、10所示为100Hz的三角波和方波,由图像可以观察到在该频率下的波形失真度非常小,几乎不能观察到 图9(100Hz的三角波)图10(100Hz的方波)5.2 实物图 如下图11所示,为DDS AD9833和外围电路实物图,银色的为25MHz的晶振,比较大的是贴片集成信号发生器。 图11 DDS及外设图12为AT89S52开发板,用杜邦线便能和图11的信号发生器进行通信。 图12 51开发板附录:总体电路图17

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!