毕业设计多种波形发生器的设计与实现.docx
《毕业设计多种波形发生器的设计与实现.docx》由会员分享,可在线阅读,更多相关《毕业设计多种波形发生器的设计与实现.docx(38页珍藏版)》请在冰豆网上搜索。
毕业设计多种波形发生器的设计与实现
西安工业大学北方信息工程学院
本科毕业设计(论文)
题目:
多种波形发生器的设计与实现
系别:
电子信息系
专业:
通信工程
班级:
B090310
学生:
王海涛
学号:
B09031018
指导教师:
杨永侠
2013年06月
毕业设计(论文)任务书
系别电子信息系专业通信工程班级B090310姓名王海涛学号B09031018
1.毕业设计(论文)题目:
多种波形发生器的设计与实现
2.题目背景和意义:
随着信息技术的发展,现代电子系统对波形发生器提出了更高的要求。
高频率稳定度、高分辨率及极短的频率转换时间等是现代波形发生器的标准。
设计一款数字控制的多种波形发生器具有实际意义。
3.设计(论文)的主要内容(理工科含技术指标):
(1)基本功能:
产生方波,正弦波,三角波等多种波形
(2)完成电路的方案设计
(3)完成系统的硬件电路设计
(4)完成系统的软件程序设计
(5)完成系统的整体安装、调试
输出出波形:
正弦波、方波、三角波
频率:
1Hz-20kHz;
频率分辨率:
0.05Hz;
幅度:
-5V-+5V
失真度:
<15%
4.设计的基本要求及进度安排(含起始时间、设计地点):
(1)选题、收集资料、确定开发工具、理解题目、开题报告[3周,2013年03月05日前]
(2)需求分析(需求说明书)、开发计划(项目计划书)[2周,2013年03月15日前]
(3)规划总体方框图以及各部分电路方框图[2周,2013年04月05日前]
(4)画各部分电路图[2周,2013年04月20日前]
(5)系统集成[2周,2013年05月05日前]
(6)系统测试[1周,2013年05月10日前]
(7)导师验收[1周,2013年05月10日前
(8)完成论文[1周,2013年5月15日前]
5.毕业设计(论文)的工作量要求撰写15000字论文
①实验(时数)*或实习(天数):
无特别要求
②图纸(幅面和张数)*:
无特别要求
③其他要求:
查阅资料不少于10份
指导教师签名:
年月日
学生签名:
年月日
系主任审批:
年月日
说明:
1本表一式二份,一份由学生装订入册,一份教师自留。
2带*项可根据学科特点选填。
多种波形发生器的设计与实现
摘要
基于单片机的波形发生器是一种常用的信号源,它广泛地应用在电子技术实验、自动控制系统和其他科研领域。
信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。
目前使用的信号发生器大部分是函数信号发生器,且特殊波形发生器的价格昂贵。
利用单片机采用程序设计方法来产生波形,线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强等优点,而且还能对波形进行细微的调整,改良波形,易于程序控制。
本系统利用单片机AT89C52采用程序设计方法产生锯齿波、三角波、正弦波、梯形波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,并通过独立式键盘来控制四种波形的类型选择。
本次设计主要有单片机主控模块、数模转换模块、独立按键模块和延时锁存模块,由Protues和Keil软件来完成仿真。
关键词:
信号发生器;AT89C52单片机;DAC0832;独立式键盘;Protues;Keil
AVarietyofWaveformGeneratorDesignandImplementation
Abstract
ThewaveformgeneratorbasedonSCMisacommonsignalsource,itiswidelyusedinelectronictechnologyexperiment,automaticcontrolsystemandotherresearchareas.Thesignalgeneratorisacommonsignalsource,itiswidelyusedinelectroniccircuits,automaticcontrolsystem,teachingexperimentsandotherfields.Thesignalgeneratoriscurrentlyusedmostlyisfunctiongeneratorandspecialwaveformgeneratorissoexpensive.UsingSCMprogrammingmethodusedtogeneratewaveforms,relativelysimplelines,structurecompact,inexpensive,highfrequencystability,betterimmunityabilityandalsofine-tunedthewaveform.improvedwaveform,easyprocesscontrol.ThesystemusesAT89C52SCMProgrammingmethodusedgeneratesawtoothwave,trianglewave,sinewave,trapezoidalwavefourtypesofwaveforms.ThenbytheD/AconverterDAC0832transformthedigitalsignalintoananalogsignal,filteredandamplifiedthenultimatelybytheoscilloscopedisplayandthroughstand-alonekeyboardtocontrolfourwaveformtypeselection.ThedesignofthemainmodulesareMCUcontrolmodule,digitalandsimulationtransformmodule,independentkeysmodule,delaylatchmodule,bytheprotuesandkeilsoftwaretocompletethesimulation.
KeyWords:
SignalGenerator;AT89C52SingleChipMicrocomputer;DAC0832;IndependentTypeKeyboard;Protues;Keil
1绪论
1.1选题背景
单片机是一种集成的电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
波形发生器是一种数据信号发生器,在调试硬件时,常常需要加入一些信号,以观察电路工作是否正常。
用一般的信号发生器,不但笨重,而且只发一些简单的波形,不能满足需要。
例如用户要调试串口通信程序时,就要在计算机上写好一段程序,再用线连接计算机和用户实验板,如果不正常,不知道是通讯线有问题还是程序有问题。
基于单片机的简易波形发生器是一种常用的信号源,它广泛地应用在电子技术实验、自动控制系统和其他科研领域。
1.2课题研究的意义
波形发生器是电子技术领域中常见的信号源之一,在测量、自动控制、通信、广播和热处理等许多技术领域有着广泛的应用[1]。
波形发生器有产生三种或多种波形的波形发生器,使用的器件可以是分立器件,也可以采用集成电路。
随着信息技术的发展,现代电子系统对波形发生器提出了更高的要求。
高频率稳定度、高分辨率及极短的频率转换时间等是现代波形发生器的标准。
设计一款数字控制的多种波形发生器具有实际意义。
本课题采用的是以AT89C52为核心,结合DAC0808实现程控一般波形的低频信号输出,可产生梯形波、三角波、正弦波和锯齿波等多种波形,波形的周期可用独立按键改变,具有线路简单、结构紧凑、性能优越等特点,并且它具有功能丰富稳定、价格便宜、操作方便特点,具有一定的推广作用。
1.3主要完成的工作
本系统利用单片机AT89C52采用程序设计方法产生锯齿波、三角波、正弦波、梯形波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,
滤波放大,最终由示波器显示出来,并通过按键来控制四种波形的类型选择。
2设计方案与选择
2.1设计方案
方案一:
555振荡电路发生正弦波、三角波和方波的电路便是可取的路经之一,不用依靠单片机[2]。
555定时器构成多谐振荡器,利用充放电时间差控制电路,通过电位器稳定频率,然后利用积分电路得到方波、三角波、正弦波等多种波形。
方案二:
采用单片机(AT89C52)和数模转换芯片(DAC0832)实现波形的产生,波形的产生由按键控制,经过D/A和运放器输出波形。
方案三:
采用FPGA和DAC,使用直接数字频率合成技术可合成任意波形。
方案四:
使用传统的锁相频率合成方法。
通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成波形[3]。
2.2方案选择
方案一这种电路存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点;方案三这种方式成本较高,程序复杂度高,不容易实现;方案四电路复杂,干扰因素多,不易实现;方案二此方案通过编程简化了外部电路,原理简单,容易实现。
综合考虑,采用方案二。
软硬件结合法软硬件结合的波形发生器设计方法同时兼具软硬件设计的优势:
既具有纯硬件设计的快速、高性能,同时又具有软件控制的灵活性、智能性。
如以单片机和单片集成函数发生器为核心,辅以键盘控制、液晶显示等电路,设计出智能型函数波形发生器,采用软硬件结合的方法可以实现功能较全、性能更优的波形发生器,同时还可以扩展波形发生器的功能,比如通过软件编程控制实现波形的存储、运算、打印等功能,采用USB接口设计。
使波形发生器具有远程通信功能等[4]。
目前,实验、科研和工业生产中使用的信号源大多采用此方法来实现。
3硬件电路设计
本方案是基于AT89C52与DAC0832的单缓冲方式(单缓冲方式是控制输入锁存器和DAC寄存器同时接收资料,或者只用输入锁存器而把DAC寄存器接成直通方式。
此方式适用只有一路模拟量输出或几路模拟量异步输出的情形)接口电路来设计[5]。
单缓冲式接口电路具有过程简单,容易实现。
由于本设计运用汇编的编程语言,导致用独立式键盘来实现简单控制。
本方案所产生的信号频率稳定性高,精确度高。
而且在硬件方面它所选的元器件比较常见。
其主要流程图和模块如图3.1所示。
图3.1硬件原理框图
3.1主要芯片介绍
3.1.1单片机AT89C52
AT89C52是51系列单片机的一个型号。
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
AT89C52有40个引脚,32个外部双向输入/输出(I\O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本[6]。
AT89C52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8XC52相同,其主要用于会聚调整时的功能控制。
功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。
AT89C52单片机的管脚图如图3.2所示。
图3.2AT89C52管脚图
主要性能参数[7]:
a.兼容MCS51指令系统
b.8k可反复擦写(>1000)次FlashROM
c.32个双向I/O口
d.256x8bit内部RAM
e.3个16位可编程定时/计数器中断
f.2个串行中断
g.可编程UART串行通道
h.2个外部中断源
i.共6个中断源
j.2个读写中断口线
k.低功耗空闲和掉电模式
l.软件设置睡眠和唤醒功能
其各管脚功能为[8]:
P0口:
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入P1.0/T2和输入。
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。
Flash编程或校验时,P2亦接收高位地址和一些控制信号。
P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流个TTL逻辑)4门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能。
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOV指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN:
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1:
振荡器反相放大器的及内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
3.1.2DAC0832数模转换器
DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器。
它由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。
与微处理器完全兼容。
这个D/A芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。
所以这个芯片的应用很广泛。
D/A转换结果采用电流形式输出。
若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。
运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接[9]。
DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。
DAC0832引脚图如图3.3所示。
图3.3DAC0832引脚图
其各引脚功能如下:
a.(chipselected芯片选择,片选):
片选信号,低电平有效。
b.输入寄存器的写选通信号。
c.GND:
第3脚的GND为模拟信号地,第10脚的GND为数字信号地。
d.DI0~DI7(DI表示DigitalInput,数字输入):
8位数据输入端,TTL电平。
e.VREF(Referencevoltageinput参考电压输入):
基准电压输入引脚,要求外接精密电压源(-10~10V)。
f.RFB(FeedBackResistor反馈电阻):
反馈信号输入引脚,反馈电阻集成在芯片内部。
g.IOUT1、IOUT2:
电流输出引脚,电流IOUT1和IOUT2的和为常数,当输入全为1时IOUT1最大,当输入为全0时,IOUT2最大。
IOUT1和IOUT2随DAC寄存器的内容线性变化。
单极性输出时,IOUT2通常接地。
h.数据传送信号,低电平有效。
i.DAC寄存器写选通信号。
j.ILE(inputlatchenable输入锁存使能):
数据允许锁存信号,高电平有效。
k.VCC:
电源输入引脚(+5V~+15V)。
3.1.374HC138译码器和74HC573锁存器
74HC138作用原理于高性能的存贮译码或要求传输延迟时间短的数据传输系统,在高性能存贮器系统中,用这种译码器可以提高译码系统的效率。
74HC138译码器可接受3位二进制加权地址输入(A0,A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。
74HC138特有3个使能输入端:
两个低有效(E1和E2)和一个高有效(E3)。
除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高[10]。
利用这种复合使能特性,仅需4片74HC138芯片和1个反相器,即可轻松实现并行扩展,组合成为一个1-32(5线到32线)译码器。
任选一个低有效使能输入端作为数据输入,而把其余的使能输入端作为选通端,则74HC138亦可充当一个8输出多路分配器,未使用的使能输入端必须保持绑定在各自合适的高有效或低有效状态。
74HC138的引脚图如图3.4所示。
图3.474HC138引脚图
74HC573数据锁存器。
主要用于数码管、按键等等的控制。
74HC573的八个锁存器都是透明的D型锁存器,当使能(G)为高时,Q输出将随数据(D)输入而变。
当使能为低时,输出将锁存在已建立的数据电平上。
输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。
这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。
74HC573的引脚图如图3.5所示。
图3.574HC573引脚图
3.2硬件原理图
3.2.1主控单片机部分
中断系统是使处理器具有对外界异步事件的处理能力而设置的。
当中央处理器CPU正在处理某件事的时候外界发生了紧急事件,要求CPU暂停当前的工作,转而去处理这个紧急事件[11]。
在波形发生器中,只用到片内定时器/计数器溢出时产生的中断请求,即是在AT89C52输出一个波形采样点信号后,接着启动定时器,在定时器未产生中断之前,AT89C52等待,直到定时器计时结束,产生中断请求,AT89C52响应中断,接着输出下一个采样点信号,如此循环产生所需要的信号波形。
本此课设中,AT89C52单片机的P1口接独立式按键电路,P2口部分接译码器,P0口接锁存器。
主控电路图如图3.6所示。
图3.6主控电路
3.2.2独立按键控制部分
独立式键盘中,各按键相互独立,每个按键各接一根输入线,每根输入线上的按键工作状态不会影响其它输入线上的工作状态。
因此,通过检测输入线的电平状态就可以很容易的判断按键是否被按下了。
独立式键盘电路配置灵活,软件结构简单。
但每个按键需占用一根输入线,在按键数量较多时,输入口浪费大,电路结构显得很繁杂,故此种键盘适用于按键较少或操作速度较高的场合。
如图3.7所示。
图3.7独立式键盘电路图
按键与AT89C52的P1口连接。
K1是监测是否输出锯齿波按键;K2是监测是否输出三角波按键;K3监测是否输出梯形波按键;K4监测是否输出正弦波按键;K5是调频按键。
3.2.3数模转换部分
由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0832。
DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。
但实际上,DAC0832输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是准模拟量的输出[12]。
根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:
直通方式、单缓冲方式和双缓冲方式。
本设计选用但缓冲方式。
由于AT89C52所产生的是数字信号,所以通过DAC0832把数字信号转换成模拟信号。
DAC0832输出的模拟量是电流,为了转换成电压,所以在它后面接入一个运放器,如图3.8所示。
图3.8数模转换电路图
3.2.4延时锁存电路部分
74HC138译码器和74HC573锁存器是该系统的驱动电路必不可少的一部分,控制波形输出和锁存按键状态。
电路如图3.9所示。
图3.974HC138和74HC573的工作电路
3.3总的电路图设计
多种波形发生器的总的电路图如图3.10所示。
该系统由按键控制各种波形的产生及波形频率的变化。
图3.10总电路图
4软件程序设计
4.1流程图的设计
4.1.1主流程图的设计
主程序的流程图如图4.1所示,开始时判断是否调频,然后判断是否调用锯齿波程序,然后判断是否