《基于Proteus的波形发生器的设计与研究毕业论文.doc》由会员分享,可在线阅读,更多相关《基于Proteus的波形发生器的设计与研究毕业论文.doc(18页珍藏版)》请在三一办公上搜索。
1、学号20085044018本科毕业论文学 院 物理电子工程学院 专 业 电子科学与技术 年 级 2008级 姓 名 论文题目 基于Proteus的波形发生器的设计与研究 指导教师 职称 讲师 2012 年 05 月 09 日目 录摘 要1Abstract11 引言11.1 研究背景与意义11.2 课题设计目标及主要工作22 方案论证与比较22.1 纯硬件设计法32.2 纯软件设计法32.3 软硬件结合法33 硬件设计43.1 单片机最小系统模块53.2 波形与频率选择模块73.3 波形输出模块74 软件设计95 软硬件结合仿真106结束语10参考文献11致谢12附录13基于Proteus的波形
2、发生器的设计与研究 摘 要:各种各样的信号是通信领域的重要组成部分,其中方波、三角波和正弦波等是较为常见的信号。Proteus软件是目前最好的仿真单片机及外围器件的工具。本文介绍了利用AT89C51单片机和数模转换器件DAC0832产生所需不同信号的低频信号源,该信号源通过开关控制可产生方波、三角波和正弦波,其信号幅度和频率可以按要求进行控制,并在Proteus中通过了仿真。文中着重介绍了如何利用单片机控制D/A转换器产生上述信号的硬件电路和软件编程。关键词:Proteus;AT89C51;ADC0832;波形发生器Design and Research of the Waveform Gen
3、erator Based on ProteusAbstract: Various signals are an important part of correspondent area. In this area, square wave, triangle wave and sine wave are common signals. Proteus is the best tool of the simulation of MCU and peripheral devices currently. In this paper, the low frequency sources of dif
4、ferent signals that are produced by AT89C51 MCU and DAC0832 is introduced. It can generate the square wave, triangle wave and sine wave with switches. The signals range and frequency can be controlled by requirement. It has got simulation in Proteus. In this paper, how to use MCU to control the hard
5、ware circuit of DAC0832 and software program to produce the signals above are emphasized.Key words: Proteus;AT89C51;ADC0832;Waveform generator1 引言1.1 研究背景与意义波形发生器也称信号发生器或函数发生器,是一种常见的应用电子仪器设备,能够产生大量的标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性。波形发生器具有连续的相位变换、和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形等进行动态和及时的控制,并能够与
6、其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、震动激励、通讯和仪器仪表领域1。在70年代前,波形发生器能够提供正弦波、余弦波、方波、三角波、上弦波等几种常用标准波形,产生其它波形时,需要采用较复杂的电路和机电结合的方法。这个时期的波形发生器多采用模拟电子技术,模拟器件构成的电路存在着尺寸大、价格贵、功耗大等缺点,并且要产生较为复杂的信号波形,则电路结构将非常复杂。同时,主要表现为两个突出问题,一是通过电位器的调节来实现输出频率的调节,因此很难将频率调到某一固定值;二是脉冲的占空比不可调节2。在70年代后,由于微处理器的出现,可以利用处理器、A/D和D/A,采用硬件和软件结合的
7、方法使波形发生器的功能扩大,产生更加复杂的波形。这个时期的波形发生器多以软件为主,实质是采用微处理器对DAC的程序控制,得到各种简单的波形3。90年代末,出现了几种高性能、高价格的波形发生器,如HP公司推出了型号为HP770S的信号模拟装置系统,它由HP8770A任意波形数字化和HP1776A波形发生软件组成。HP8770A实际上也只能产生8种波形,而且价格昂贵。不久以后,Analogic公司推出了型号为Data-2020的多波形合成器,Lecroy 公司生产的型号为9100的任意波形发生器等。到了二十一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过GHz 的DDS芯片,同时也推动了
8、函数波形发生器的发展,2003年,Agilent的产品33220A能够产生17种波形,最高频率可达到20MHz,2005年的产品N6030A能够产生高达500MHz的频率,采样频率可达1.25GHz4。波形发生器,作为实验信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一5。实验中常用的波形主要是方波、三角波、正弦波三种。在科学研究及教学实验中常常需要这几种信号的发生装置。为了实验、研究方便,研制一种灵活适用、功能齐全、使用方便的信号源是十分必要的。1.2 课题设计目标及主要工作 本课题设计采用Proteus软件平台,实现一个简易的波形发生器的仿真设计,产生方波、三角波和正弦波三种
9、常用波形。能够实现波形幅度动态连续可调,调节范围为05V;波形频率动态可调,有两个档位,一档频率为30Hz,二档频率为15Hz。2 方案论证与比较依据应用场合,需要实现的波形种类,波形发生器的具体指标要求会有所不同。依据不同的设计要求可以选取不同的设计方案。通常,波形发生器需要实现的波形有方波、三角波和正弦波而有些场合可能还需要其他任意波形的产生。各种波形共有的指标有:波形的频率、幅度、频率稳定度、准确度等。对于不同的波形,具体的指标要求也会有所差异,例如,占空比是脉冲波形特有的指标。波形发生器的设计方案多种多样,大致可以分为三大类:纯硬件设计法、纯软件设计法和软硬件结合设计法。2.1 纯硬件
10、设计法 传统的波形发生器可以完全由硬件电路搭接而成,实现的波形比较单一,如采用555振荡电路产生方波、三角波和正弦波等。但是这种电路存在波形质量差、控制难、可调范围小、电路复杂和体积大等缺点。在科学研究和生产实践中,如工业过程控制、生物医学、地震模拟机械振动等领域常常要用到低频信号源。而由硬件电路构成的波形发生器产生的低频信号性能难以令人满意;另外,由于低频信号源硬件电路中所需的RC很大,大电阻、大电容在制作上有困难,参数的精度亦难以保证;体积大、漏电、损耗显著更是致命的弱点;一旦工作需求功能有增加,则电路复杂程度会大大增加6。2.2 纯软件设计法虚拟仪器的出现使传统仪器发生了革命性的变化。虚
11、拟仪器是21世纪测试仪器领域技术发展的重要方向。它以计算机为基础,软件为核心,没有传统仪器那样具体的物理结构,在计算机上实现仪器的虚拟面板,通过软件设计实现和改变仪器的功能。例如用图形化编程工具LabVIEW就可以实现任意波形发生器的功能。在LabVIEW软件的前面板通过拖放控件,设计仪器的功能面板,如波形显示窗口、波形选择按键、波形存储回放等工作界面,在软件的后面板直接拖放相应的波形函数并进行参数设置或直接调用编程函数来设计任意波形以实现波形产生功能。完成的软件打包后,可脱离编程环境独立运行,从而实现任意波形发生器的功能。采用纯软件的虚拟仪器设计思路可以使设计简单、高效,仅改变软件程序就可以
12、轻松实现波形功能的改变或升级,从长远角度来看,纯软件法成本较低。但是纯软件设计法只能用于计算机仿真,不能用于实践应用,而且其波形的响应速度和精度都逊色于硬件法。2.3 软硬件结合法软硬件结合的波形发生器设计方法同时兼具软硬件设计的优势,既具有纯硬件设计的快速、高性能,同时又具有软件控制的灵活性、智能性。如以单片机和单片集成波形发生器为核心,辅以键盘控制、液晶显示等电路,设计出智能型函数波形发生器。采用软硬件结合的方法可以实现功能较全、性能更优的波形发生器,同时还可以扩展波形发生器的功能,比如通过软件编程控制实现波形的存储、运算、打印等功能,采用USB接口设计,使波形发生器具有远程通信功能等。目
13、前,实验、科研和工业生产中使用的波形发生器大多采用此方法来实现7-11。相比之下,软硬件结合的方法可以设计出性能最优、功能扩展灵活、控制智能化的波形发生器,可以满足教学、科研、工业生产等各方面对波形发生器性能有较高要求的应用场合。综合以上几种设计方案,本设计采用软硬件结合设计法。该方案能够产生很好的波形,也易于实现。3 硬件设计波形的产生是通过AT89C51单片机执行某一波形发生程序,向D/A转换器DAC0832的输入端按一定的规律输入数据,从而在DAC0832的输出端得到相应的波形输出12。拨盘开关AT89C51单片机复位电路晶振电路波形输出硬件设计的总体框图如图1所示。图1 硬件设计总体框
14、图硬件电路的设计使用的是Proteus软件平台。Proteus软件是世界上著名的EDA工具,由英国Labcenter electronics公司出版,它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。可以说它是目前最好的仿真单片机及外围器件的工具。硬件设计的总图如图2所示。该波形发生器硬件电路分为三个主要模块:单片机最小系统模块、波形与频率选择模块和波形输出模块。图2 硬件设计总图3.1 单
15、片机最小系统模块单片机最小系统包括三个部分:单片机芯片、复位电路和晶振电路。3.1.1 单片机芯片单片机具有控制性能及可靠性高和体积小、价格低、易于产品化的特点,在现代的各种电子器件中,单片机具有良好的性能价格比。该模块的单片机芯片选用的是ATMEL公司的AT89C51,属于80C51系列,它融入的Flash存储技术,其引脚图如图3所示。80C51系列单片机产品繁多,已经成为事实上的单片机的主流系列13。3.1.2 复位电路复位是使单片机处于初始状态,单片机的工作就是从复位开始的。当单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机内部就执行复位操作。单片机根据应用
16、的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。上电后,由于电容的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。该单片机最小系统采用上电复位方式,因为它不需要在运行过程中进行复位操作。复位电路如图4所示。图3 AT89C51引脚图图4 复位电路3.1.3 时钟电路单片机的时钟信号用来提供单片机内各种微操作的时间基准。单片机的时钟信号通常
17、用两种电路形式得到:内部振荡和外部振荡方式。该单片机最小系统采用内部振荡方式。时钟电路如图5所示。图5 时钟电路图在引脚XTAL1和XTAL2外接晶体振荡器或陶瓷谐振荡器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡,并产生振荡时钟脉冲。晶振通常选用6MHz、12MHz或24MHz,该电路选用12MHz。3.2 波形与频率选择模块该模块采用拨盘开关来进行波形与频率的选择和变换,其电路图如图6所示。图6 波形与频率选择模块电路图电路图中,开关SW1用来选择波形,其状态与波形的对应关系如表1所示;开关SW2用来选择频率档,其状态与频率档位的关系如表2所
18、示。表1 开关SW1的状态与波形的对应关系SW1的状态选择的波形SW1拨向1位置,P1.0=1方波SW1拨向2位置,P1.1=1三角波SW1拨向3位置,P1.2=1正弦波表2开关SW2的状态与频率档位的对应关系SW2的状态选择的档位SW2拨向1位置,P1.3=1频率一,30HzSW2拨向2位置,P1.4=1频率二,15Hz3.3 波形输出模块波形输出模块电路图如图7所示。该模块主要包括DAC0832、运算放大器和滑动变阻器三个元器件。图7 波形输出模块电路图3.3.1 DAC0832芯片DAC0832是8分辨率的D/A转换集成芯片,与微处理器完全兼容。这个DAC芯片以其价格低廉、接口简单、转换
19、控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。其引脚图如图8所示。图8 DAC0832引脚图根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式。一种是两级缓冲器型,即输入数据经过两级缓冲器后,进行D/A转换。第二种是单级缓冲器型,输入数据经输入寄存器直接送入DAC寄存器,然后进行D/A转换。第三种是两个缓冲器直通,输入数据直接进行D/A转换。本模块接收单片机的输出数据直接进行D/A转换,采用直通方式。3.3.2 运算放大器运算放大器,简称“运放”,是具有很高放大倍
20、数的电路单元。在实际电路中,通常结合反馈网络共同组成某种功能模块。由于早期应用于模拟计算机中,用以实现数学运算,故得名“运算放大器”。运放是一个从功能的角度命名的电路单元,可以由分立的器件实现,也可以实现在半导体芯片当中。随着半导体技术的发展,大部分的运放是以单芯片的形式存在。运放的种类繁多,广泛应用于电子行业当中14。该运算放大器的功能是对DAC0832的输出进行放大,从而驱动负载。3.3.3 滑动变阻器滑动变阻器是电路中的一个重要元件,它可以通过移动滑片的位置来改变自身的电阻,从而起到控制电路的作用。在电路分析中,滑动变阻器既可以作为一个定值电阻,也可以作为一个变值电阻。该滑动变阻器的功能
21、是采用分压的方式,对输出波形的进行幅度调节,以满足实际应用的需要。4 软件设计系统软件程序主要是由主程序、键盘扫描子程序、延时子程序和三种波形产生子程序组成。软件设计主要是对产生三种波形的子程序的编程和调试,从而得到三种波形的输出。键盘扫描子程序用来实现不同波形和频率的动态切换。延时子程序用来改变波形的频率,通过改变延时参数的大小来实现15。程序流程图如图9所示。全部程序见附录。图9 程序流程图5 软硬件结合仿真方波、三角波和正弦波的仿真输出分别如图10、图11和图12所示。图10 方波仿真图(上为频率一,下为频率二)图11 三角波仿真图(上为频率一,下为频率二) 图12 正弦波仿真图(上为频
22、率一,下为频率二)6 结束语经过将近一个学期的单片机毕业论文的研究和写作,终于完成了简易波形发生器的设计,达到了设计的基本要求,从心底里来说,还是很高兴的。但是也存在着许多缺陷,本次设计的不足主要在于该波形发生器的频率不能实现连续可调,解决方案可以采用A/D转换器对单片机的输入端进行控制,从而实现连续改变延时子程序的延时参数,进而达到波形频率才连续可调16。在本次设计的过程中,我发现很多的问题,这次设计真的让我长进了很多。对于单片机设计,其硬件电路是比较简单的,主要是解决程序设计的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设
23、计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题,这需要对单片机的结构很熟悉。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。要设计一个成功的电路,必须要有耐心,要有坚强的毅力。在整个电路的设计过程中,花费时间最多的是各个单元电路的连接及电路的细节设计上,如在多种方案的选择中,需要仔细比较,分析其原理以及可行的原因。这就要求我们对硬件系统中各组件部分有充分透彻的理解和研究,并能对之灵活应用。完成这次设计后,我在书本理论知识的基础上又有了更深层次的理解。同时在本次设计的过程中,我还学会了高效率的查阅资料、运用工具书、利用网络查找资料
24、。我发现,在我们所使用的书籍上有一些知识在实际应用中其实并不是十分理想,各种参数都需要自己去调整。偶尔还会遇到错误的资料现象,这就要求更加注重实践环节。参考文献:1 赵宏亮一种实用任意波形信号发生器的设计J仪表技术,2008(2):14-182 蒋小华,吴名欢,王文成单片机波形发生器的设计J桂林航天工业高等专科学校学报,2008,1(2):38-403 李全利,仲伟峰,徐军单片机原理及应用M北京:清华大学出版社,2006:14-2184 蔡小颀D/ A 转换器原理及其在波形产生方面的应用J江苏石油化工学院学报,1998,10(1):50-535 康华光电子技术基础M(第3 版)北京:高等教育出
25、版社,1980:369-3706 王红,程世平波形发生器的硬件设计与软件实现J电气电子教学学报,2002,24(1):60-637 张淑清单片微型计算机接口技术及其应用M北京:国防工业出版社,2001:63-678 B A ArtwickMicromputer InterfacingJPrentice-Hall,Inc,1980:77-1089 Santa ClaraMicroprocessor and peripheral handbookM Intel Corporation,1988:58-6510 陈大钦电子技术基础实验M北京:高等教育出版社,2003:91-9311 A Techni
26、cal Tutorial on Digital Signal SynthesisJDatasheet of Analog Devices,1999:54-5812 樊树红,基于数/ 模变换技术的多种波形发生器J扬州工业职业技术学院学报,2006(1):79-8013 何立民单片机应用技术选编M北京:北京航空航天大学出版社,2006:23-15414 阎石数字电子技术基础M(第5版)北京:高等教育出版社,2006:15-24415 周虹C语言程序设计与应用教程M北京:中国铁道出版社,2007:11-16916 许胜辉程控波形发生器的研究J武汉职业技术学院学报,2007(5):91-93致谢在整个
27、毕业设计过程中,指导教师钟莉娟老师倾注了大量的心血,从选题到开题报告,以及设计中的具体问题,她都严格把关、循循善诱。同时,导师渊博的知识、开阔的思路、高度的责任感与严谨的治学作风更是我学习的典范,在此向导师致以最崇高的敬意和最诚挚的感谢!同时我还要感谢在我学习期间给我极大关心和支持的各位老师以及关心和帮助过我的同学和朋友。附录#include#include#define uint unsigned int#define uchar unsigned charvoid look(void);/扫面子程序声明void delay(void);/延时子程序声明sbit FANGBO=P10;/定义
28、方波标志位sbit SANJIAOBO=P11;/定义三角波标志位sbit ZHENGXIANBO=P12;/定义正弦波标志位sbit HIGH=P13;/定义频率一标志位sbit LOW=P14;/定义频率二标志位uint t=0,m=1,p=1;void fangbo()/方波子程序uint i;m=HIGH;while(p)P0=255;for(i=0;i=254;i+);delay();P0=0;for(i=0;i=254;i+);delay();if(FANGBO=1&m=HIGH)p=1;else p=0; void sanjiaobo()/三角波子程序m=HIGH;while(p
29、)uint i;for(i=0;i0;i-)P0=i;delay(); if(SANJIAOBO=1&m=HIGH)p=1;else p=0; void zhengxianbo()/正弦波子程序uchar i,k;uchar code TAB=0x7F,0x89,0x94,0x9F,0xAA,0xB4,0xBE,0xC8,0xD1,0xD9,0xE0,0xE7,0xED,0xF2,0xF7,0xFA,0xFC,0xFE,0xFF;m=HIGH;while(p)for(i=0;i0;i-) k=TABi;P0=k;delay();for(i=0;i0;i-) k=TABi;P0=k;delay();if(ZHENGXIANBO=1&m=HIGH)p=1;else p=0;void look()/扫描子程序while(1)p=1;m=HIGH;if(FANGBO=1) if(HIGH=1)t=450; else t=1100; fangbo(); else if(SANJIAOBO=1)if(HIGH=1)t=0; else t=3; sanjiaobo(); else if(HIGH=1)t=15; else t=32;zhengxianbo(); void delay()/延时子程序uint x;for(x=0;xt;x+);void main()/主函数 look();