欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于单片机正弦波系统信号发生器设计毕业设计.doc

    • 资源ID:86772276       资源大小:678.50KB        全文页数:22页
    • 资源格式: DOC        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机正弦波系统信号发生器设计毕业设计.doc

    目 录第一部分 设计任务1第二部分 设计说明2第三部分 设计成果13第四部分 结束语18第五部分 致谢19第六部分 参考文献20第一部分 设计任务1.1设计目标设计一个基于单片机控制的正弦波系统信号发生器,。1.2设计方案方案一:直接利用单单片机编程产生正弦波。优点:简化了产生正弦波的硬件和软件,电路结构简单。缺点:编程复杂,波形失真较大,不能达到要求输出的高频信号。方案二:利用单片机控制直接数字频率合成芯片DDS产生的正弦波,通过单片机,键盘LED数码显示管显示实现波形的数字控制。 优点:控制简单,波形效果好,频率带宽。 缺点:硬件电路复杂。为了满足设计要求,取得较好的效果,显然方案二更为合理。1.3设计要求(1) 采用51单片机进行控制,显示采用LED显示,设计硬件电路。(2)编写程序,提交程序设计流程图。(3) 制作硬件电路并画出电路图(4)下载程序至设计平台,调试程序,实现程序功能。1.4设计思路D/A转换程序的设计思路是:电路接通时D/A转换器开始采集数据,并进行数据转换,判断转换是否结束,结束的话就把数据传输给单片机,再通过单片机对数码管的控制,显示所需要的数据。第二部分 设计说明 2.1系统总体设计 图一 总体设计原理图基于DDS芯片AD9835的正弦波信号发生器主要由AT89S51、DDS芯片AD9835、D/A芯片TLC7524和射频运算放大器AD829组成,如图2所示,单片机AT89S51控制DDS集成电路AD9835,输出所需要的频率正弦波信号。单片机还用于控制输出信号幅值,检测按键,控制LED显示,并与PC通讯接收远程指令。AD9835输出的信号经低通滤波器滤除高频干扰后送至D/A转换器TLC7524,控制其幅值,TLC7524输出后经运算放大器AD829放大,最后输出满足所要的正弦波。2.2单片机介绍及AD9835(DDS)连接电路2.2.1 单片机AT89S51介绍单片机作为系统设计的核心部分,在系统功能实现过程中起到了决定性的作用.AT89S51是高性能CMOS 8位单片机,片内含4k bytes的可反复可搽写的只读程序存储器PEROM和128 bytes的随机存取数据存储器RAM,片内置通用8位中央处理器CPU和Flash存储单元。AT89S51中有一个用于内部振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端,这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。外接石英晶体及电容C1,C2接在放大器的反馈回路中构成并联振荡电路。它能影响振荡器的稳定性。我们选电容值为30pF。AT89S51有强大的I/O口分别是PO.O-PO.7,-P3.O-P3.7。构成了4个并行I/O接口,完成数据的传送和控制。具有丰富的I/O口内置定时计数器和终端系统单片机的引脚分别和功能如下: 图二 单片机引脚图本设计采用AD9835的P3口的部分I/O口的第二功能P3.3,RXD,TXD分别与AD9835的FSYNC,SDATA,SCLK连接。2.2.2 AD983芯片介绍AD9835芯片主要技术指标如下:频率范围: 0.1HZ-10MHZ频率分辨率:0.1HZ频率稳定度:1*107输出幅度:0-±10v可调AD9835的相位累加器为32位,取其高十二位为读取余弦波形存储器的地址。每一次,时钟使相位累加器的输出也即余弦ROM寻址地址递增频率设定数据K,对应的波形相位变化为P=2n *K/232因此,改变相位累加器设定值K,就可以改变相位值P,从而改变合成信号频率f。计算公式:f=K*fmc/232式中fmc=50MHZ,用高稳定度晶体振荡器获得。1<K<231。最低频率为fmin= fmc/232,根据采样定律,重建信号频率最高可达fmc/2,饭通常取最高频率为fmax= fmc/3。AD9835封装图如下:图三 封装图2.3信号发生电路作为系统设计的核心部分,信号发生电路是由AD9835和单片机构成。接口如下:AD9835与AT89S51通过三个引脚相连:如图所示。AT89S51串行口工作在方式0。由于AD9835接受的大部分命令和参数为16位,而AT89S51每次只能发送一字节数据,因此FSYNC应在AT89S51串行口连续发送2个字节的过程中保持低电平。AT89S51从串行口输出数据时地位先发出,而AD9835首先接收高位。AD9835接收到的16位数据中,最高4位是命令码,接下来的四位是地址码,低8位是数据码。为了保证AD9835按这个次序接收数据,在软件设计中将要传输的命令码,地址码和数据码逆序编码从AT89S51串行口发出。图2.3.2AD9835电路图波形的输出时间参数是指输出波形中每两点的时间间隔。单片机程序中设定寄存器TO是定时器T1是计算器,他们串联起来使用,满足定时时间要求。当计算出C65536时,CPU只使用定时器TO,当计算出C65536时,CPU将把T0.T1结合起来使用,将C开平方后的值给T0,T1作为初值,8位的DAC0832单位周期最多输出最多含有256个点,系统的晶振频率f0:25MHZ。f0是4位数字组合成的频率值。T0,T1被调用以后,开始计算,当定时器T0计数溢出时,产生中断信号,给P3.5写一个脉冲信号,T1用于计数该脉冲信号,当T1产生中断以后,总定时时间到,输出一个点,反复循环,从而可在一个周期内输出一个完整波形。2.4 低通滤波电路低通滤波电器是直接数字频率合成器的重要组成部分,其性能的优劣直接影响到整个直接数字合成器的特性。在整个DDS实现过程中,低通滤波器除了滤掉高频信号之外,还有除去杂散的作用。DDS的杂散主要来源于以下三方面: 一:ROM幅值量化误差二:相位截断误差三:DAC的转换误差本系统中采用具有较窄过度带特性的椭圆滤波器,并采用7阶椭圆低通滤波以降低干扰。a) 椭圆低通滤波器的电路图如下:图2-4 低通滤波电路2.5 D/A转换及浮动控制电路D/A转换器的基本功能是将一个二进制表示的数字量转化为相应的模拟量。AD9835最后输出的是数字量电流,为了实现对其经行控制,需将其转换成模拟量,由单片机控制模拟量进而控制波形实现正弦波的频率和幅度调节。这里我们介绍一种D/A转换器TLC7524。AD9835输出信号经滤波放大,送入D/A转换器TLC7524,单片机控制TLC7524实现幅值调节。其中TLC7524采用直通方式,8位数字量一旦达到D7-D0输入端,便进行D/A转换,从而实现256级幅值调节。TLC7524采用电流工作方式,外接一片运算放大器AD829将电流电压转换为模拟电压输出。2.6 信号放大电路放大器的作用:能把输入讯号的电压或功率放大的装置,由电子管或晶体管、电源变压器和其它电器元件组成。其原理是高频功率放大器用于发射机的末级,作用是将高频已调波信号进行功率放大,以满足发送的要求,然后经过天线将其辐射到空间,保证在一定区域内的接收机可以接收到满意的信号电平,并且不干扰相邻信道的通信,高频功率放大器是通信系统中发送装置的重要组件。运算放大器原理:它是一种直流耦合,差模输入,通常为单端输出的高增益电压放大器。一个运算放大器模组包括一个正输入端,一个负输入端和一个输出端。使用时一般将反向输入端与输出端连接起来形成负反馈以保证电路的稳定运作。下图为电压放大模块电路,采用反比例放大,其增益为R1/R2,C1电容有效滤除杂波图2-6 信号放大电路2.7 显示电路显示电路选用LED数码管作为显示器件,且采用动态显示方式。图2-7 LED显示电路如图所示采用三级管对数码管进行驱动,本电路采用的是共阴极数码显示,当有三级管导通时,数码管的一端相当于接地,数码管就显示了,RP1为排阻,相当于八个电阻并联在一起。2.8 键盘电路本设计选用独立式按键,因为按键数量不多。独立式按键的硬件特点是每个按键均独立的占用一条I/O接口线,单片机识别I/O接口线电平的高低就能识别出是否有按键按下及哪个按键按下。独立式按键硬件结构及软件设计均较简单,一般用于按键较少或I/O接口线资源有空闲的场合。本设计键盘从上往下依次为KEY0-KEY3,键盘为按下时I/O端口经上拉电阻接5伏电压,输入的是高电平:键盘按下时,I/O端口由于接地,输入的是低电平。KEY0键功能:接P1.0,选定信号的频率控制。KEY1键功能:接P1.1口,选定信号的幅度控制KEY2键功能:接P1.2口,选定的控制对象步进量增KEY3键功能:接P1.3口,选定的控制对象步进量减2.9 电源电路:电源电压为输出电压5伏,输出电流1.5安的稳压电源。它由电源变压器T,桥式整流电路D1-D4,滤波电容C1、C3,防止自激电容C2、C3,和一只固定式三端稳压器7805极为简洁方便的搭成的。220伏交流市电通过电源变压器变换成交流低压,在经过桥式整流电路D1-D4和滤波电容的滤波和整流在固定式三端稳压器7805的VIN和GND两端行成一个并不十分稳定的直流电压。此直流电压经过7805的稳压和C3的滤波便在稳压电源的输出端产生了精度高、稳定度好的直流输出电压。三端稳压器是一种标准化、系列化的通用线性稳压集成电路。2.9.1 主程序流程图图2.9.1主程序流程图在主程序流程中,系统上电复位后,开始进行模块初始化,然后调显示子程序显示数据,再调键盘扫描子程序,若有按键按下,则调相应的键功能程序,若无键按下,则循环调用显示程序。2.9.2 键盘处理子程序流程图图2-2 键盘处理子程序流程图系统调用键盘扫描程序开始后,检查按键是否按下,执行延时程序,用来实现软件去抖动,消除抖动的影响,并且扫描按键,准确判断按键的键值,进而转向相应的程序处理字程序,实现各按键的功能。具体原理如下:按下K0键则显示波形频率,按下K1键显示波形幅值,按下K2键显示所选频率或幅值的步进加,按下K3键显示所选频率或幅值的步进减。2.9.3D/A转换子程序流程图图2.9.3D/A转换子程序流程图D/A转换程序的设计思路是:电路接通时D/A转换器开始采集数据,并进行数据转换,判断转换是否结束,结束的话就把数据传输给单片机,再通过单片机对数码管的控制,显示所需要的数据。第三部分 设计成果3.1程序#include<reg51.h>#include<absacc.h>#define uchar unsigned char #define uint unsigned int sbit lcdrw=P33;sbit lcdrs=P32;sbit lcde=P34;sbit cs=P35;sbit wr=P36;uchar a,n;#define dac1 XBYTE0xdfff/ X 轴0832一级琐存地址unsigned char code type256=0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf4,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe3,0xe1,0xde,0xdc,0xda,0xd8,0xd6,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x92,0x8f,0x8c,0x89,0x86,0x83,0x80,0x7d,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x64,0x61,0x5e,0x5b,0x58,0x55,0x52,0x4f,0x4c,0x49,0x46,0x43,0x41,0x3e,0x3b,0x39,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27,0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x14,0x12,0x10,0xf,0xd,0xc,0xb,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x3,0x2,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x2,0x3,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xa,0xc,0xd,0xe,0x10,0x12,0x13,0x15,0x17,0x18,0x1a,0x1c,0x1e,0x20,0x23,0x25,0x27,0x29,0x2c,0x2e,0x30,0x33,0x35,0x38,0x3b,0x3d,0x40,0x43,0x46,0x48,0x4b,0x4e,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x73,0x76,0x79,0x7c;unsigned char i,j;unsigned int counter,step;sbit key_up = P20;sbit key_dw = P21;/定时器0初始化void delay(uint z)/延时子程序 uchar a,b; for(a=z;a>0;a-) for(b=110;b>0;b-);void delay1(uint y) uint i; for(i=y;i>0;i-);void write_com(uchar com) /1602写指令 lcdrs=0;P1=com;delay(5);lcde=1;delay(5);lcde=0;void write_data(uchar date) /1602数据 lcdrs=1;P1=date;delay(5);lcde=1;delay(5);lcde=0; void init() /初始化 lcdrw=0; lcde=0; wr=0; cs=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80+0x00); write_data(0x77); /写wave: write_data(0x61); write_data(0x76); write_data(0x65); write_data(0x3a); write_com(0x80+0x40); /写 f: write_data(0x66); write_data(0x3a); void write_f(uint date) /写频率 uchar qian,bai,shi,ge; qian=date/1000; bai=date/100%10; shi=date/10%10; ge=date%10; write_com(0x80+0x42); write_data(0x30+qian); write_data(0x30+bai); write_data(0x30+shi); write_data(0x30+ge); write_data(0x48); write_data(0x5a);void Init_Timer0(void)TMOD = (TMOD & 0XF0) | 0X01; TH0 = 0xff; TL0 = 0xff; TR0 =1; ET0 =1;main()Init_Timer0(); step=2; EA = 1; init(); while(1) for(n=0;n<255;n+) P0=typen; write_f(step); delay(5); write_com(0x80+0x05); write_data(0x73); /写sine: write_data(0x69); write_data(0x6e); write_data(0x65); write_data(0x20); write_data(0x20);if(key_up = 0) if(step<4096) step+;if(key_dw = 0) if(step>1) step-;while(!key_up)|(!key_dw); / 系统OS定时中断服务void OS_Timer0(void) interrupt 1 using 2 TH0 = 0xff; TL0 = 0xff; counter = counter + step; dac1=type(unsigned int)counter>>8;第四部分 结束语经过两个月的努力我的毕业设计终于完成了,但是现在回想起来做毕业设计的整个过程,颇有心得,其中有苦也有甜,艰辛同时又充满乐趣,不过乐趣尽在其中!通过本次毕业设计,没有接受任务以前觉得毕业设计只是对这几年来所学知识的单纯总结,但是通过这次做毕业设计发现毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。毕业设计是我作为一名学生即将完成学业的最后一次作业,他既是对学校所学知识的全面总结和综合应用,又为今后走向社会的实际操作应用铸就了一个良好开端,毕业设计是我对所学知识理论的检验与总结,能够培养和提高设计者独立分析和解决问题的能力,是我在校期间向学校所交的最后一份综和性作业。毕业的时间一天一天的临近,毕业设计也接近了尾声。在不断的努力下我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的大概总结,但是真的面对毕业设计时发现自己的想法基本是错误的。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识太理论化了,面对单独的课题的是感觉很茫然。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。总之,不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师那里我学得到很多实用的知识,同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!第五部分 致谢感谢指导的老师们,他们严谨细致,一丝不苟的作风一直是我学习生活中的榜样,他们循循善诱的教导和不拘一格的思路给了我无尽的启迪。感谢我的设计指导老师,在设计过程中给了我无限的帮助和指导,最终使得我的设计得以完成。最后还要感谢给予过我帮助的同学和朋友,你们的热情、无私令我倍感鼓舞,这将是我以后工作学习的不竭动力! 第六部分 参考文献(1)单片机原理及应用(C语言版) (21世纪高等院校规划教材) 周国运主编. 中国水利水电出版社,2009。P271284页(2)单片机原理及接口技术张毅刚、 彭喜元主编人民邮电出版社2008。P28-35页(3)LCD驱动电路、驱动程序设计及典型应用 孙俊喜主编.人民邮电出版社,2009。P34-35页.(4)电路与模拟电子技术 殷瑞祥主编.高等教育出版社,2003。P41-47页(5)单片机应用技术(C语言版) 王X静霞.电子工业出版社2009。P37-43页.(6)微型计算机系统原理及应用(第四版)周明德.北京:清华大学出版社2002。P26-35页.(7)任意波形发生器及应用J杜华.国外电子测量技术2005。P35-P45页(8)微机系统原理与接口技术 李相伟北京:国防工业出版社2005.P56-P63页(9)单片机原理、接口及应用-嵌入式系统技术基础群芬肖看.武汉:清华大学出版社2005。P44-P62页21

    注意事项

    本文(基于单片机正弦波系统信号发生器设计毕业设计.doc)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开