本科毕业设计--简易函数信号发生器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简易函数信号发生器设计
摘要:信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。这次的设计分为五个模块:单片机控制及显示模块、数模转换模块、波形产生模块、输出显示模块、电源模块。使用AT89C52作为主控台结合芯片DAC0832产生1HZ-300HZ频率可调的五种信号波(正弦波、三角波和方波)。这几种波形有几个开关控制,可以随意进行切换,十分方便。另外,波形的频率和振幅也可以通过开关进行更改。可以说这次的设计操作简单,内容丰富,而且电路快捷明了。在编程语言上,我们选择自身比较熟悉的 C语言,这样在后期波形的调试及与硬件衔接方面更容易发挥出自身优势。经过设计及后期长时间的调试,设计的所有功能均已实现。
关键字:信号发生器、频率、幅度、AT98C52、DAC0832
1、设计要求
1)以单片机为核心,经过D/A转换和放大电路的处理,最后输出信号;
2)要求能输出正弦波、三角波和方波四种信号;
3)输出信号可以通过按键来改变;
4)频率可变,范围在1---300hz;
5)幅度可调0---10v;
6)可实现四路A/D电压采样;
2、总体设计
2.1 系统组成及工作原理
该函数信号发生器可以输出四种波形,有正弦波、三角波和方波。在此基础上进一步实现对波形频率和占空比的调节,并用液晶屏分两行显示波形名称和波形频率。
函数信号发生器的设计总体框图如图1所示,主要有单片机AT89C52,电源,键盘模块,LCD1602显示模块构成。
按案件模块:由5个复位开关与74LS21组成的系统通过对单片机传输中断信号来实现波形切换及频率和占空比的调节。
显示模块:用LCD1602,分行显示波形类型和波形频率的显示。
图1 系统总体框图
2.2测量原理
我们这个系统可实现四路A/D电压采样,使用的算法是:V=5*N/256,取五个点电压进行测量,并将测量完的十进制数据转化为二进制数据。
AD采样数据
电压源输入0.10 0.20 0.30 0.40 0.45
1.01
2.00
3.02
4.01 4.51
电压表测得
(放大后)
采集系统测得 1.01 2.00 3.02 4.02 4.52 3、硬件设计
3.1硬件组成
3.1.1 资源分配
晶振采用12MHZ。P1口的P1.0-P1.4分别与四个按键连接,分别控制波形切换、频率加、频率减,占空比加,占空比减。
P2口与DAC0832的D0-D7数据输入端相连。
P3口用来控制DAC0832的输入寄存器选择信号CS。
3.1.2 D/A转换模块部件
DAC0832芯片原理
管脚功能介绍(如图2所示)
V c c
20
Iout111lsbDI07Iout212DI16DI25Rfb 9DI34DI416Vref
8
DI515DI6
14msbDI713ILE 19WR218CS 1WR1
2
Xfer 17
U2
DAC0832
图2 DAC0832管脚图
DI7~DI0:8位的数据输入端,DI7为最高位。 ILE :数据锁存允许控制信号输入线,高电平有效。 CS :选片信号输入线(选通数据锁存器),低电平有效。
WR1:数据锁存器写选选通输入线,负脉冲有效,由ILE 、CS 、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变化,LE1的负跳变时将输入数据锁存。
XFER :数据传输控制信号输入线,低电平有效,负脉冲有效。
WR2:DAC 寄存器选通输入线,负脉冲有效,由WR2、XFER 的逻辑组合产生LE2,当LE2为高电平时,DAC 寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC 寄存器并开始D/A 转换。
IOUT1:模拟电流输出端1,当DAC 寄存器中数据全为1时,输出电流最大,当 DAC 寄存器中数据全为0时,输出电流为0。
IOUT2:模拟电流输出端2, IOUT2与IOUT1的和为一个常数,即IOUT1+IOUT2=常数。
RFB :反馈电阻引出端,DAC0832内部已经有反馈电阻,所以 RFB 端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。
VREF :参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,VREF 范围为(+10~-10)V 。VREF 端与D/A 内部T 形电阻网络相连。
Vcc :芯片供电电压,范围为(+5~+15)V 。 AGND :模拟量地,即模拟电路接地端。
DGND :数字量地。 3.1.3放大部分
放大部分采用双极运算放大电路,LM358 内部包括有两个独立的、高增益、
内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。
图3 lm358
3.2 单片机核心模块
3.2.1 AT89C52单片机及其说明
AT89C52为8 位通用微处理器:
图4 PDIP封装的AT89C52引脚图
采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,
其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM 及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0~P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(32~39 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。
P0 口
P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的
方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1 口
P1 是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑
门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
P2 口
P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑
门电路。对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16 位地址的外部数据存储器(例如执行MOVX @DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX @RI 指令)时,P2 口输出P2 锁存器的内容。