收藏 分享(赏)

简易函数信号发生器设计_毕业论文.doc

上传人:无敌 文档编号:669536 上传时间:2018-04-17 格式:DOC 页数:24 大小:3.97MB
下载 相关 举报
简易函数信号发生器设计_毕业论文.doc_第1页
第1页 / 共24页
简易函数信号发生器设计_毕业论文.doc_第2页
第2页 / 共24页
简易函数信号发生器设计_毕业论文.doc_第3页
第3页 / 共24页
简易函数信号发生器设计_毕业论文.doc_第4页
第4页 / 共24页
简易函数信号发生器设计_毕业论文.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、1简易函数信号发生器设计摘要:信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。这次的设计分为五个模块:单片机控制及显示模块、数模转换模块、波形产生模块、输出显示模块、电源模块。使用 AT89C52 作为主控台结合芯片DAC0832 产生 1HZ-300HZ 频率可调的五种信号波(正弦波、三角波和方波) 。这几种波形有几个开关控制,可以随意进行切换,十分方便。另外,波形的频率和振幅也可以通过开关进行更改。可以说这次的设计操作简单,内容丰富,而且电路快捷明了。在编程语言上,我们选择自身比较熟悉的 C 语言,这样在后期波形的调试及与硬件衔接方面更容易发挥出自身优势。经过设计及后期

2、长时间的调试,设计的所有功能均已实现。关键字:信号发生器、频率、幅度、AT98C52、DAC08321、设计要求1)以单片机为核心,经过 D/A 转换和放大电路的处理,最后输出信号;2)要求能输出正弦波、三角波和方波四种信号;3)输出信号可以通过按键来改变;4)频率可变,范围在 1-300hz;5)幅度可调 0-10v;6)可实现四路 A/D 电压采样;2、总体设计2.1 系统组成及工作原理该函数信号发生器可以输出四种波形,有正弦波、三角波和方波。在此基础上进一步实现对波形频率和占空比的调节,并用液晶屏分两行显示波形名称和波形频率。函数信号发生器的设计总体框图如图 1 所示,主要有单片机 AT

3、89C52,电源,键盘模块,LCD1602 显示模块构成。按案件模块:由 5 个复位开关与 74LS21 组成的系统通过对单片机传输中断信号来实现波形切换及频率和占空比的调节。显示模块:用 LCD1602,分行显示波形类型和波形频率的显示。2图 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、 4.02 4.523、硬件设计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 所示)3Vcc20Iout1 11lsbDI07Iout2 12DI16DI25Rfb 9DI34DI416Vref 8DI515DI614msbDI713ILE 19WR2 18CS1WR1 2Xfe

5、r17U2DAC0832图 2 DAC0832 管脚图DI7DI0:8 位的数据输入端,DI7 为最高位。ILE:数据锁存允许控制信号输入线,高电平有效。CS:选片信号输入线(选通数据锁存器) ,低电平有效。WR1:数据锁存器写选选通输入线,负脉冲有效,由 ILE、CS、WR1 的逻辑组合产生 LE1,当 LE1 为高电平时,数据锁存器状态随输入数据线变化,LE1 的负跳变时将输入数据锁存。XFER:数据传输控制信号输入线,低电平有效,负脉冲有效。WR2:DAC 寄存器选通输入线,负脉冲有效,由 WR2、XFER 的逻辑组合产生LE2,当 LE2 为高电平时,DAC 寄存器的输出随寄存器的输入

6、而变化,LE2 的负跳变时将数据锁存器的内容打入 DAC 寄存器并开始 D/A 转换。IOUT1:模拟电流输出端 1,当 DAC 寄存器中数据全为 1 时,输出电流最大,当 DAC 寄存器中数据全为 0 时,输出电流为 0。IOUT2:模拟电流输出端 2, IOUT2 与 IOUT1 的和为一个常数,即IOUT1IOUT2常数。RFB:反馈电阻引出端,DAC0832 内部已经有反馈电阻,所以 RFB 端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。VREF:参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定 0 至 255 的数字量转

7、化出来的模拟量电压值的幅度,VREF 范围为(+10-10)V。VREF 端与 D/A 内部 T 形电阻网络相连。Vcc:芯片供电电压,范围为(+5+15)V。AGND:模拟量地,即模拟电路接地端。DGND:数字量地。3.1.3 放大部分 放大部分采用双极运算放大电路,LM358 内部包括有两个独立的、高增益、4内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。图 3 lm3583.2 单片机核心模块3.2.1 AT89C52

8、 单片机及其说明AT89C52 为 8 位 通用微 处 理 器 :图 4 PDIP 封装的 AT89C52 引脚图采用工业标准的 C51 内核,在内部功能及管脚排布上与通用的 8xc52 相同,5其主要用于会聚调整时的功能控制。功能包括对会聚主 IC 内部寄存器、数据RAM 及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号 IR 的接收解码及与主板 CPU 通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接 12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和 VSS(20

9、脚)为供电端口,分别接+5V 电源的正负端。P0P3 为可编程通用 I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为 N1 功能控制端口,分别与 N1 的相应功能管脚相连接,13 脚定义为 IR 输入端,10 脚和 11 脚定义为 I2C 总线控制端口,分别连接 N1 的 SDAS(18 脚)和 SCLS(19 脚)端口,12 脚、27 脚及 28 脚定义为握手信号功能端口,连接主板 CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。 P0 口P0 口是一组 8 位漏极开路型双向 I/O 口, 也即地址/数据总线复用口。作为输出口用时,每位能

10、吸收电流的 方式驱动 8 个 TTL 逻辑门电路,对端口 P0 写“1”时,可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。 在 Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 P1 口P1 是一个带内部上拉电阻的 8 位双向 I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑 门电路。对端口写“1” ,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电

11、流(IIL)。 P2 口P2 是一个带有内部上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑 门电路。对端口 P2 写“1” ,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。 在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVX DPTR 指令)时,P2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储器(如执行 MOVX RI 指令)时,P2 口输出 P2 锁存器的内容。 6Flash 编程或校验时,P2 亦接收高位地址

12、和一些控制信号。 P3 口P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻 辑门电路。对 P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的 P3 口将用上拉电阻输出电流(IIL) 。 P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二功能 P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号。 RST复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。 ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用

13、于锁存地址的低 8 位字节。一般情况下,ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。 对 Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG) 。 如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。该位置位后,只有一条 MOVX 和 MOVC 指令才能将 ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 禁止位无效。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当 AT89C

14、52 由外部程序存储器取指令(或数 据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。 EA/VPP外部访问允许。欲使 CPU 仅访问外部程序存储器(地址为 0000HFFFFH) ,EA 端必须保持低电平(接 地) 。需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。 如 EA 端为高电平(接 Vcc 端) ,CPU 则执行内部程序存储器中的指令。 Flash 存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用 12V 编程电压 Vpp。 XTAL1振荡器反相放大器的及内部

15、时钟发生器的输入端。 XTAL2振荡器反相放大器的输出端。 7特殊功能寄存器在 AT89C52 片内存储器中,80H-FFH 共 128 个单元为特殊功能寄存器(SFE) ,SFR 的地址空间映象如表 2 所示。 并非所有的地址都被定义,从 80HFFH 共 128 个字节只有一部分被定义,还有相当一部分没有定义。对没有定义的 单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。 不应将数据“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单 元数值总是“0” 。 AT89C52 除了与 AT89C51 所有的定时/计数器 0 和定时/计数器

16、1 外,还增加了一个定时/计数器 2。定时/计数器 2 的控 制和状态位位于T2CON(参见表 3)T2MOD(参见表 4) ,寄存器对(RCAO2H、RCAP2L)是定时器2 在 16 位捕获方式或 16 位 自动重装载方式下的捕获/自动重装载寄存器。 数据存储器AT89C52 有 256 个字节的内部 RAM,80H-FFH 高 128 个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高 128 字节的 RAM 和特殊功能寄存器的地址是相同的,但物理上它们是分开的。 当一条指令访问 7FH 以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高 128 字节 RA

17、M 还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功能寄存器。 例如,下面的直接寻址指令访问特殊功能寄存器 0A0H(即 P2 口)地址单元。MOV 0A0H,#data 间接寻址指令访问高 128 字节 RAM,例如,下面的间接寻址指令中,R0 的内容为 0A0H,则访问数据字节地址为 0A0H, 而不是 P2 口(0A0H) 。 MOV R0,#data 堆栈操作也是间接寻址方式,所以,高 128 位数据 RAM 亦可作为堆栈区使用。定时器 0 和定时器 1: 83.2.2 单片机最小系统版模块图 53.3 两级运放电路图 6芯片特性:内部频率补偿9直流电压增益高(约 100d

18、B)单位增益频带宽(约 1MHz)电源电压范围宽:单电源(3 30V)双电源(1.5 一15V)低功耗电流,适合于电池供电 低输入偏流低输入失调电压和失调电流共模输入电压范围宽,包括接地差模输入电压范围宽,等于电源电压范围输出电压摆幅大(0 至 Vcc-1.5V)3.4显示电路图 7LCD1602主要功能 A、 40 通道点阵 LCD 驱动; B、 可选择当作行驱动或列驱动; C、 输入/输出信号:输出,能产生 202 个 LCD 驱动波形;输入,接受控制器送出的串行数据和控制信号,偏压(V1V6); D、 通过单片机控制将所测的频率信号读数显示出来104 、程序设计4.1 主程序设计图 84.2 子程序设计4.2.1 三角波程序流程图三角波的实现是设置一个初值,然后进行加数,同样是加到某个数之后再进行减数,减到初值之后就再返回到先前的操作,这个操作跟锯齿波的实现是相似的。此程序输入的 VREF 的电压是5V,因此该波形输出的最大频率是初值为 00H 和最终值为 0FFH,且步数为 1,这样输出的波形是最大的。程序流程图如下图所示:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报