《函数发生器课程设计.pdf》由会员分享,可在线阅读,更多相关《函数发生器课程设计.pdf(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 1 目录 摘要-3 第一章 绪论-4 1.1 单片机的概述-4 1.2 函数发生器的分类-4 1.3 研究的目的及意义-5 第二章 函数信号发生器设计-6 2.1 课程设计的目的-6 22 课程设计的要求-6 第三章 方案的设计-7 3.1 方案的设计与选择-7 3.2 设计原理简介及功能-8 3.3 系统硬件的设计及功能-10 3.31 AT89C51 单片机及说明-10 3.32 D/A 转换模块-11 3.4 系统软件设计及接口电路-14 3.41 外部时钟电路-14 3.42 外部复位电路-15 3.43 键盘接口电路-15 3.44 数、模转换及放大电路-16 第四章 系统软件设计
2、-17 4.1 主函数-17 2 4.2 正弦波的程序及仿真结果-18 4.3 三角波的程序及仿真结果-19 4.4 锯齿波的程序及仿真结果-20 4.5 方波的程序及仿真结果-21 第五章 总结与展望-22 参考文献-23 附录一 元器件清单-24 附录二 程序清单-25 附录三 电路原理图-30 3 摘要 本文设计低频信号发生器,以AT89C51 单片机为核心,通过键盘输入控制信号类型和频率的选择,采用DA 转换芯片输出相应的波形。我们采用C 语言进行编程,可实现方波,三角波,锯齿波和正弦波四种波形的产生,且波形的频率可调。经测试该设计方案线路优化,结构紧凑,性能优越,满足设计要求。关键字
3、:单片机,DA 转换,信号发生器 4 第一章 绪论 1.1 单片机概述 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU 随机存储器RAM、只读存储器 ROM、多种I/O 口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。单片机具有集成度高、系统结构简单、使用方便、实现模块化、可靠性高、处理功能强、速度快等特点,因为被广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。1.2 信号发生器分类 信号发生器是指产
4、生所需参数的电测试信号的仪器。因其应用广泛,种类繁多,特性各异,分类也不尽一致。按信号波形可分为正弦信号、函数信号、脉冲信号和随机信号发生器等四大类;按频率覆盖范围分为低频信号发生器、高频信号发生器和微波信号发生器;按输出电平可调节范围和稳定度分为简易信号发生器、标准信号发生器和功率信号发生器;按频率改变的方式分为调谐式信号发生器、扫频式信号发生器、程控式信号发生器和频率合成式信号发生器等。信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。5 1.3 研究的目的及意义 信号发生器是一种经常使用的设备,由纯粹物理器件构成的传统的设计方法存在许多弊端,如:体积较大、重量较沉、移动
5、不方便、信号失真较大、波形形状调节过于死板,无法满足用户对精度、便携性、稳定性等要求,研究设计出一种具有频率稳定、准确、波形质量好、输出频率范围宽、便携性好等特点的波形发生器具有较好的市场前景。以满足工业领域对信号源的要求。6 第二章 函数信号发生器的设计 设计一个基于单片机的函数信号发生器,该函数信号发生器可以输出四种波形,有正弦波,锯齿波,三角波和方波。2.1 课程设计的目的 1 巩固,加深和扩大对单片机应用的知识方面,提高综合及运用所学的知识解决实际课程设计的能力。2 培养针对课题需要,选择和查阅有关手册,图表及文献的能力,提高组成系统,编程,调试的能力。3 通过对课题设计方案的分析,选
6、择,比较,熟悉运用单片机系统开发,软硬件设计的方法内容及步骤。4 掌握C0832 的接口电路及使用方法。2.2 课程设计的要求 1、采用 51 单片机作为主控制芯片;2、按键选择产生三角波、锯齿波、方波、正弦波信号;3、使用 PROTEUS 软件完成系统仿真。7 第三章 方案的设计 3.1 方案的设计与选择 方案一:采用单片函数发生器可产生正弦波、方波等,操作简单易行,用D/A 转换器的输出来改变调节电压,可以实现数控调整频率,但产生信号的频率稳定度不高。方案二:利用芯片组成的电路输出波形,MAX038 是MAXIM 公司生产的一个只需要很少外部元件的精密高频波形产生器,他能产生准确的高频正弦
7、波、三角波、方波。输出频率和占空比可以通过调整电流、电压或电阻来分别地控制。所需的输出波形可由在A0和A1 输入端设置适当的代码来选择,且具有输出频率范围宽、波形稳定、失真小、使用方便等特点。方案三:采用Atmel 公司的AT89C51 单片机编程方法实现,该方法的可以通过编程 的方法控制信号波形的频率和幅度,而在硬件电路不便的情况下,通过程序实现频率的变化和输出波形的选择,并同时在显示器显示相应的结果。方案一输出信号频率不够稳定;方案二成本高,程序复杂度高;方案三,软硬件结合,硬件成本低,软件起点低,优化型相对比较好,容易实现,且满足设计要求。综合考虑,我们采用了方案三,用AT89C51 单
8、片机设计低频信号发生器,能够满足信号的频率稳定性和精度的准确行。8 3.2 设计原理简介 该设计设计一个低频信号发生器,我们采用的是AT89C51 单片机用软件实现信号的输出。该单片机是一个微型计算机,包括中央处理器CPU,RAM,ROM、I/O 接口电路、定时计数器、串行通讯等,是波形设计的核心。该信号发生器原理框图如图2.1,总体原理为:利用AT89C51 单片机构造低频信号发生器,可产生正弦波,方波,三角波,锯齿波四种波形,通过C 语言对单片机的编程即可产生相应的波形信号,并可以通过键盘进行各种功能的转换和信号频率的控制,当输出的数字信号通过数模转换成模拟信号也就得到所需要的信号波形,通
9、过运算放大器的放大输出波形,同时让显示器显示输出的波形信息。本方案其主要模块包括复位电路、时钟信号、键盘控制、D/A 转化及显示。其各个模块的工作原理如下:(1)复位电路是为单片机复位使用,使单片机接口初始化;89C51 等CMOS51 系列。单片机的复位引脚RET 是施密特触发输入脚,内部有一个上拉低电阻,当振荡器起振以后,在RST 引 9 脚上输出2 个机械周期以上的高电平,器件变进入复位状态开始,此时ALE、PSEN、P0、P1、P2、P4 输出高电平,RST 上输入返回低电平以后,变退出复位状态开始工作。该方案采用的是人工开关复位,在系统运行时,按一下开关,就在RST 断出现一段高电平
10、,使器件复位。(2)时钟信号是产生单片机工作的时钟信号,控制着计算机的工作节奏,可以通过提高时钟频率来提高CPU 的速度。89C51 内部有一个可控的反相放大器,引脚XTAL1、XTAL2 为反相放大器输入端和输出端,在XTAL1、XTAL2 上外接12MHZ 晶振和30pF 电容便组成振荡器。时钟信号常用于CPU 定时和计数。(3)键盘模块是是用于控制信号输入的类型,当按键按下时,可以通过单片机编程读取闭合的键号,实现相应的信号输出。其步骤主要是a、判断是否有键按下;b、去抖动,延时20ms 左右;c、识别被按下的键号;d、处理,实现功能。(4)D/A 转换也称为数模转换,是把数字量变换成模
11、拟量的线性电路。单片机产生的数字信号通过DAC0832 转化成模拟信号,输出相应的电流值,通过OP07集成运算放大器可以取出模拟量得电压值,最后利用示波器获得输出的模拟信号的波形;衡量数模转换的性能指标有分辨率、转换时间、精度、线性度等。为可见光的固态的半导体器件,它可以直接把电转化为光用于是显示相关输出波形的信息,包括信号的类型和频率。10 设计功能:(1)本方案利用利用2 位(P1.0 和P1.1)控制开关信号输入类型,P1_0为锯齿波,P1_1为三角波,P1_2为正弦波,P1_3为方波。(2)利用DAC0832 数模转换芯片实现信号的转换,并通过集成运算放大器将信号 放大,输出信号能够在
12、Proteus 软件中的示波器中显示。(3)输出信号幅度:05V。3.3 系统硬件的设计 3.31 AT89C51 单片机及说明 单片机简介:AT89C51 是一种带4K 字节FLASH 存储器的低电压、高性能CMOS 8 位微处理器,俗称单片机。该芯片具有优异的性价比,集成度高,体积小,可靠性强,控制功能强等优 点。其外形及引脚排列如图 3.1 所示。11 主要特性 1 兼容性能强 2 4K 字节可编程FLASH 存储器 3 全静态工作:0Hz-24MHz 4 1288 位内部RAM 5 32 可编程I/O 线 6 两个16 位定时器/计数器 7 5 个中断源 8 可编程串行通道 9 低功耗
13、的闲置和掉电模式 10 片内振荡器和时钟电路 3.32 DAC0832 工作原理 DAC0832 是8 分辨率的D/A 转换集成芯片,由8 位输入锁存器、8 位DAC 寄存器、8 位D/A 转换器及转换控制电路四部 12 分构成。8 位输入锁存器用于存放主机送来的数字量,使输入数字得到缓冲和锁存,并加以控制;8 位DAC 寄存器用于存放存放待转换的数字量,并加以控制;8 位D/A 转换器输出与数字量成正比的模拟电流,由与门、与非门组成的输入控制的输入电路来控制2 个寄存器的选通或锁存状态,其原理框图如3.3。图 3.2 DAC0832 引脚图 当WR2 和XFER 同时有效时,8 位DAC 寄
14、存器端为高电平“1”,此时DAC 寄存器的输出端Q 跟随输入端D 也就是出入寄存器Q 端得电平变化,反之,当端为低电平“0”时,第一级8 位输入寄存器Q 端得状态则锁存到第二级8 位DAC 寄存器中,以便第三极8 位DAC 转换器进行D/A 转换。下图是DAC0832的原理图 13 DAC0832的主要特性参数 1 分辨率为8 位;电流稳定时间1us;2 可单缓冲、双缓冲或直接数字输入;3只需在满量程下调整其线性度;4 单一电源供电(+5V+15V);5 低功耗,20mW。DAC0832 引脚功能简介 1 D0D7:8 位数据输入线,TTL 电平,有效时间应大于90ns(否则锁存器的数据会出错
15、);2 ILE:数据锁存允许控制信号输入线,高电平有效;3 CS:片选信号输入线(选通数据锁存器),低电平有效;4 WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE 5 CS、WR1 的逻辑组合产生LE1,当LE1 为高电平时,数据锁存器状态随输入数据线变换,LE1 的负跳变时将输入数据锁存;14 6 XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;7 WR2:DAC 寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。8 IOUT1:电流输出端1,其值随DAC 寄存器的内容线性变化;9 IOUT2:电流输出端2,其值与IOUT1
16、 值之和为一常数;10 Rfb:反馈信号输入线,改变Rfb 端外接电阻值可调整转换满量程精度;11 Vcc:电源输入端,Vcc 的范围为+5V+15V;12 VREF:基准电压输入线,VREF 的范围为-10V+10V;13 AGND:模拟信号地;14 DGND:数字信号地。3.4 系统软件设计及接口电路 3.41 时钟电路 单片机的时钟信号通常用两种电路形式得到:内部振荡和外部振荡方式。在引脚XTAL1 和XTAL2 外接晶体振荡器,构成了内部振荡方式。由于单片机内部有一个高增益的反相放大器,当外接晶振后,就构成了自激振荡,并产生振动时钟脉冲。晶振通常选用6MHZ、12MHZ、24MHZ。本
17、设计中时钟电路图如图4.2我们选择了12MHZ和晶振分别接引脚XTAL1 和XTAL2,电容C1 C2 均选择为30pF,对振荡器的频率有稳定作用,当频率较大时,正弦波、方波、三角波及锯齿波中每一点的延时时间为几 15 微妙,故延时时间还要加上指令时间才能获得较大的频率波形。3.42 复位电路 复位引脚RST 通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。复位电路通常采用上电自动复位和按钮复位两种式。本设计选择了按键复位如图4.3,在系统运行时,按一下开关,就在RST 断出
18、现一段高电平,使 图 4.2 时钟电路图 器件复位此时 ALE、PSEN、P0、12P1、P2、P4 输出高电平,RST 上输入返回低电平以后,变退出复位状态开始工作。3.43 键盘接口电路 常用的键盘电路一般为矩阵式,但是对于此设计,为了方便 16 程序的简单化,我们采用了一般的键盘接口,键盘输出信号。具体为 P1_0为锯齿波,P1_1为三角波,P1_2为正弦波,P1_3为方波。接口如下图 3.44 数、模转换及放大电路 由于单片机输出的是数字信号,因为要得到模拟信号的波形就必须对其进行数模转换。我们采用了DAC0832 数模转换器,该芯片具由8 位输入锁存器、8 位DAC 寄存器、8 位D
19、/A 转换器及转换控制电路四部分构成。由于其输出为电流输出,因为外加运算放大器UA741 使之装换为电压输出。最后通过示波器显示输出的波形。17 开始 显示 CEO-36385 秒 定时中断 第四章 系统软件设计 4.1 程序流程图 系统初始化 计算相关参数 按 键 是 否按下 查询选择波形 波形输出 18 4.2 正弦波产生(1)输出波形 图51 正弦波仿真波形(2)程序如下:void sin_wave()float i;for(i=0;i2*PI;i+=0.02)DAC0832=128+sin(i)*127;DelayMS(1);if(S2)return;19 4.3 三角波产生(1)输出
20、波形 图 52 三角波仿真图形(2)程序如下 void triangle_wave()uint i;for(i=0;i512;i+)if(i256)DAC0832=-i;DelayMS(1);if(S1)return;20 4.4 锯齿波产生(1)输出波形 图 5-3 锯齿波仿真图形(2)程序如下 void sawtooth_wave()uchar i;for(i=0;i256;i+)DAC0832=i;DelayMS(4);if(S0)return;21 4.5 方波产生(1)输出波形 图 5-4 方波仿真图形(2)程序如下 Void square_wave()uint i;while(1)
21、DAC0832=0;DelayMS(500);DAC0832=255;DelayMS(500);if(S3)return;22 第五章 总结与展望 制作函数信号发生器随设计思想不同,具有多种方法,本文只是一种可能实现的方法。此法的频率控制和幅度控制分辨率高,且硬件集成度高,整机自动化程度高,性能优良,具有很高的实用价值。该信号发生器在调试时,总是出现许多的错误,软件上除了许多的问题,之后纠正和向老师、同学请教慢慢的改了过来。可是在仿真时依然存在很多的问题,开始的时候是仿真出不了波形,之后改了改电路的一根线,出现了。同时该信号源设计尚存在的不足之处,主要有两个方面,第一为缺乏频率准确显示的手段,
22、可以配备相应的数字频率计模块,但如何将显示的精度与信号源的频段配合有待讨论研究;第二为D/A转换时可以加一个锁存器,并且放大电路有待进一步改进使具有更强的输出能力。23 参考文献 1 田开坤.基于LCD12864显示器的数字示波器设计 J.电子制作2011,(5)2 史良.LCD12864显示模块与微处理器的接口设计 J.矿业安全与环保,1999,(5)3 周明理.基于AT89S52的函数信号发生器的设计 J.轻工科技2012,(4)4 贡雪梅、肖川.基于单片机函数信号发生器的Proteus仿真设计 J.西安航空技术高等专科学校学报2013,(1)5 张毅刚、彭喜元、彭宇.单片机原理及应用技术
23、M.北京:高等教育出版社2011,1 6 彭伟.单片机C语言程序设计100例-基于8051+Proteus仿真M.北京:电子工业出版社2011,8 7 谭浩强.C 程序设计(第三版)M.北京清华大学出版社2007 24 附件一 主要元器件清单 元件名称 数量 数值 电阻 1 R1 1k 1 R2 200R 1 R3 100k 1 R4 1k 电容 2 C1,C2 30pF 1 C3 22uF 1 C4 0.1uF 单片机 AT89C51 1 U1 数模转换器 DAC0832 1 U2 放大器 UA741 1 U3 锁存器 74LS373 1 U4 晶振 1 X1 24MHz 25 附录二 程序
24、清单#include#include#include#define uint unsigned int#define uchar unsigned char#define DAC0832 XBYTE0 xfffe#define PI 3.1415926 sbit S0=P10;sbit S1=P11;sbit S2=P12;sbit S3=P13;void DelayMS(uint ms)uchar i;while(ms-)for(i=0;i120;i+);void sawtooth_wave()26 uchar i;for(i=0;i256;i+)DAC0832=i;DelayMS(4);i
25、f(S0)return;void triangle_wave()uint i;for(i=0;i512;i+)if(i256)DAC0832=-i;DelayMS(1);if(S1)return;27 uint i;for(i=0;i0;i-)DAC0832=i;DelayMS(1);if(S1)return;void sin_wave()float i;for(i=0;i2*PI;i+=0.02)DAC0832=128+sin(i)*127;DelayMS(1);if(S2)return;28 void square_wave()uint i;while(1)DAC0832=0;DelayMS(500);DAC0832=255;DelayMS(500);if(S3)return;void main()while(1)if(S1=0)triangle_wave();else if(S0=0)sawtooth_wave();else if(S2=0)sin_wave();29 else if(S3=0)square_wave();else DelayMS(100);30 附件三 电路原理图