课程设计——波形发生器

  • 格式:doc
  • 大小:447.54 KB
  • 文档页数:28

下载文档原格式

  / 28
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

波形发生器设计

一.摘要

本文以AT89C51单片机为核心,采用C语言的编程方法,外加DAC0832数模转换模块与集成运放模块,构成了函数波形发生器。可产生方波、三角波、正弦波、锯齿波等多种波形,波形的频率可用程序改变,并可根据需要选择输出波形。其中运用软硬件结合的方法实现设计功能,具有线路简单、结构紧凑、性能优越等特点。

关键词:51单片机;DAC;函数波形发生器

二.设计要求

1.产生正弦波、方波、三角波;

2.幅度可以设定;

3.出频率能达到1MHZ。

4. 发挥部分(自选)

三.设计目的

1、巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决实际课题设计的能力。

2、培养针对课题需要,选择和查阅有关手册、图表及文献资料的能力,提高组成系统、编程、调试的动脑动手能力。

3、通过对课题设计方案的分析、选择、比较,熟悉运用单片机系统开发、软硬件设计的方法内容及步骤。

4,掌握各个接口芯片(如0832等)的功能特性及接口方法,并能运用其实现一个简单的单片机应用系统功能器件。

四.设计方案

波形发生器的实现方法通常有以下几种:

方案一:采用模拟电路搭建函数信号发生器,它可以同时产生方波、三角波、正弦波。但是这种模块产生的不能产生任意的波形(例如梯形波),并且频率调节很不方便。

方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。。

方案三:采用AT89S52单片机和DAC0832芯片,直接连接键盘和显示。该种方案主要对AT89S52单片机的各个I/O口充分利用。P1口是连接键盘, P2口接显示电路,P0口连接DAC0832输出波形。这样总体来说,能对单片机各个接口都利用上,而不在多用其它芯片,从而减小了系统的成本。也对按照系统便携式低频信号发生器的要求所完成。占用空间小,使用芯片少,低功耗。

综合考虑,方案三各项性能和指标都优于其他几种方案,能使输出频率有较好的稳定性,充分体现了模块化设计的要求,而且这些芯片及器件均为通用器件,在市场上较常见,价格也低廉,样品制作成功的可能性比较大,所以本设计采用方案三。

五.设计思路

1.基本功能

1.1.波形的产生

(1)正弦波:通过手动的方法计算出输出各点的电压值,然后

在编写程序时以数组的方式给出。当需要时,只要按照顺序进行输出即可。这种方法比在软件中计算速度快且曲线的形状修改灵活。在本设计中将一个周期(360度)分为256个点,则每两个点之间的间隔为1.4度,然后计算出每个点电压对应的数字量,形成数组。只要反复输出这组数据到DAC0832,就可以在系统输出端得到想要的正弦波。

(2)方波:按照设定的周期值将输出的电压改变即可。

(3)三角波:使用查表法。将三角波的一个周期(360度)分为256个点,相邻点等差。反复输出前256个数据到DAC0832,就可以在系统输出端得到想要的锯齿波。

1.2.波形的变换

通过P1口和轻触开关S1-S4相连接来切换波形输出(如按S1键输出正弦波,按S2键产生方波,按S3键产生锯齿波,按S4键产生三角波)。用P0口控制数码管静态显示波形代号。用P2口向DAC0832发送数据,经DAC0832转换后,再把信号放大,最后接到示波器上显示。

2. 幅值的改变

波形的幅值调节,使用硬件方法实现,在DAC0832的VREF口接一滑动变阻器,通过改变DA转换的参考电压来实现波形幅值的改变。

3.频率的改变

频率的改变用软件实现,这里通过增加一个变量V来达到目的。以正弦波为例,给定正弦波的数组表,把对应的数值送给DAC0832,

加以处理,就能输出正弦波。增加变量以后,其形式变为”DAC0832 =sintab[i+v]”,改变v的值,输出一次正弦波数组表的时间就会改变,根据周期与频率的关系,相应的频率也会改变。例如v=0时,需送256次才能把数组表中数据全部送给DAC0832;v=4时,送64次就可达到目的。由于每送一次数据的时间是一定的,次数不同,时间也会不同,频率也会改变。、

4. 附加功能

4.1 对应输出波形状态的显示

采用软硬件结合的方法,在P2口接一个7段数码管,当P1口对应得按键按下,在P2口输出一个数值,从而显示相应的数字。根据数字我们知道正在显示波形的状态,如数码管显示1时,输出的是正弦波;显示2时,输出的是方波。

4.2 .锯齿波的产生

借助于一个变量i,让i从0开始自加1,达到0xff时置为0x00,。并实时把对应的i值送到DAC0832经D/A转换,就可以在系统输出端得到想要的锯齿波。

4.3 方波占空比的调节

对于方波这里增加了一个占空比可调的功能,具体做法与频率的调节十分相似。这里在v的基础上,又增加了两个变量up,down,通过改变up,down的值,从而达到改变方波占空比的目的。

六.硬件电路

1.硬件框图

2. 主要模块

2.1.按键模块

图二按键模块

如图一,按键模块由八个按钮与AT89C51的P1口连接而成。按钮的公共端接低电平,当某一按钮按下时,对应的接口就会收到一个低电平信号,然后发生相应的动作。各个按钮的作用是S1产生正弦波信号,S2产生方波信号,S3产生锯齿波信号,S4产生三角波信号,S5调节使频率正大,S6调节使频率减小,S7使方波占空比增大,S8使方波占空比减小。

2.2数模转换模块

图三数模转换模块

如图二,数模转换模块的核心是DAC0832,DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A