基于at89s52单片机的信号发生器设计内容摘要:

89S52 华科学院本科毕业设计(论文) 14 3. 4 各部分电路原理 DAC0832 芯片原理 由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有 8 位分辨率的数模转换器DAC0832。 DAC0832 主要由 8 位输入寄存器、 8 位 DAC 寄存器、 8 位 D/A 转换器以及输入控制电路四部分组成。 但实际上, DAC0832 输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是准模拟量的输出。 DAC0832 是电流型输出,在应用时外接运放使之成为电压型输出。 管脚功能介绍(如图 35所示) 图 35 DAC0832 管脚图 (1) D7~ D0: 8 位的数据输入端, D7 为最高位。 (2)IOUT1:模拟电流输出端 1。 (3) IOUT2:模拟电流输出端 2,当 DAC 寄存器中数据全为 1 时,输出电流最大,当 DAC 寄存器中数据全为 0时,输出电流为 0, IOUT2 与 IOUT1 的和为一个常数,即 IOUT1+ IOUT2=常数。 (4) Rfe:反馈电阻引出端, DAC0832 内部已经有反馈电阻,所以 Rfe 端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。 (5) Vref:参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定 0 至 255 的数字量转化出来的模拟量电压值的幅度, VREF 范围为 (+10~ 10)V。 VREF 端与 D/A 内部 T 形王玮:基于 AT89S52 的低频信号发生器设计 15 电阻网络相连。 (6) Vcc:芯片供电电压,范围为 (+5~ 15)V。 (7) GND( 3 脚):模拟量地,即模拟电路接地端。 (8) GND( 10 脚):数字量地。 当 WR2 和 XFER 同时有效时, 8位 DAC 寄存器端为高电平“ 1”,此时 DAC 寄存器的输出端Q跟随输入端 D 也就是输入寄存器 Q端的电平变化;反之,当端为低电平“ 0”时,第一级 8位输入寄存器 Q端的状态则锁存到第二级 8位 DAC 寄存器中,以便第三级 8位 DAC 转换器进行 D/A 转换。 一般情况下为了简化接口电路,可以把和直接接地,使第二级 8 位 DAC 寄存器的输入端到输出端直通,只有第一级 8 位输入寄存器置成可选通、可锁存的单缓冲输入方式。 特殊情况下可采用双缓冲输入方式,即把两个寄存器都分别接成受控方式 制作低频信号发生器有许多方案:主要有单缓冲方式,双缓冲方式和直通方式。 单缓冲方式具有适用于只有一路模拟信号输出或几路模拟信号非同步输出的情形的优点,但是电路线路连接比较简单。 而双缓冲方式适用于在需要同时输出几路模拟信号的场合,每一路模拟量输出需一片 DAC0832 芯片,构成多个 DAC0832 同步输出电路,程序简单化,但是电路线路连接比较复杂。 根据以上分析,我们的课题选择了单缓冲方式使用方便,程序简单,易操作。 (2)工作原理 DAC0832 主要由 8 位输入寄存器、 8位 DAC 寄存器、 8位 D/A 转换器以及输入控 制电路四部分组成。 8 位输入寄存器用于存放主机送来的数字量,使输入数字量得到缓冲和锁存,由加以控制; 8位 DAC 寄存器用于存放待转换的数字量,由加以控制; 8位 D/A 转换器输出与数字量成正比的模拟电流;由与门、非与门组成的输入控制电路来控制 2 个寄存器的选通或锁存状态。 DAC0832 与反相比例放大器相连,实现电流到电压的转换,因此输出模拟信号的极性与参考电压的极性相反,数字量与模拟量的转换关系为 Vout1=Vref(数字码 /256) 若 D/A 转换器输出为双极性,如图 36所示。 华科学院本科毕业设计(论文) 16 R 125k 1R810kR910kR 1010kR F B321411U 6 AL M 324567U 6 BL M 324+ 12 12V C C12J7O U TI ou t2I ou t1 图 36 D/A 转换器双极性输出电路 图 36 中,运算放大器 A2 的作用是把运算放大器 A1 的单向输出电压转换成双向输出电压。 DAC0832 主要是用于波形的数据的传送,是本题目电路中的主要芯片。 LM324工作原理 图 37 LM324 原理图 管脚图 LM324 时四运放集成电路 ,它采用 14 脚双列直插塑料封袋,外形上图所示。 它的内部包含四组形式完全相同的运算放大 器,除电源共用外,四组运放相互独立。 每一组运算放大器可用图中所示的符号来表示,它有 5个引出脚,其中“ +”、“ ”为两个信号输入端,“ V+”、“ V”为正、负电源端,“ OUT”为输出端。 两个信号输入端中,“ ”为反相输入端,表示运放输出端 OUT 的信号与该输入端的为相反;“ +”为同相输入端,表示运放输出端 OUT 的信号与输入端的相位相同。 LM324 的引脚排列见图 7。 由于 LM324 四运放电路具有电源电压范围宽,静态功耗小,可但电源使用,价格低廉等优点,因此被广泛应用在各种电路中。 王玮:基于 AT89S52 的低频信号发生器设计 17 第 四 章 软件设计 软件设计上,根 据功能分了几个模块编程。 模块主要有:主程序模块、方波模块、三角波模块、 锯齿波 模块、正弦波模块、 按键扫描 模块等。 显示波形模块是利用 DAC0832 的 8位特点,把波形的数据以 8位数据的形势送进 CPU 中,只要一按键就能显示波形。 4. 1 设计思想 ( 1) 利用单片机产生方波、正弦波、三角波和锯齿波等信号波形,信号的频率和幅度可变。 ( 2)将一个周期的信号分离成 256 个点(按 X轴等分),每两点之间的时间间隔为  T,用单片机的定时器产生,其表示式为:  T=T/256。 如果单片机的晶振为 12MHz,采用定时器方式 0,则定时器的初值为: X=213—  T/Tmec 定时时间常数为: TL =( 8192—  T) /MOD256 TH=(8192 T)/256 MOD32 表示除 32 取余数 ( 3)正弦波的模拟信号是 D/A 转换器的模拟量输出,其计算公式为: Y=( A/2sin t) +A/2 (其中 A=VREF)  t=N T (N=1~256) 那么对应着存放在计算机里的这一点的数据为: ( 4)一个周期被分离成 256 个点,对应的四种波形的 256 个数据存放在以 TAB1TAB4为起始地址的存储器中。 ( sin 1 ) 2 5 5( 2 5 5 ) / 2tD i Y A     华科学院本科毕业设计(论文) 18 4. 2 主 程序设计 图 41 主程序流程图 本软件设计过程中主要实现利用按键来控制不同波形的输出,当按键 KEY1 按下 1 次时,函数发生器就输出方波;当按键 KEY1 按下 2 次时,函数发生器就输出三角波;当按键 KEY1按下 3 次时,函数发生器就输出 锯齿波 ;当按键 KEY1 按下 4 次时,函数发生器就输出正弦波。 通过按键可以以任 意循环方式输出不同波形。 按键 KEY2 按下时复位。 开始 KEY1 按 1 次 输出方波 KEY1 按 3 次 KEY1 按 2 次 KEY1 按 4 次 N N N N Y Y Y Y 输出三角波 输出锯齿波 输出正弦波 王玮:基于 AT89S52 的低频信号发生器设计 19 4. 3 方波程序 设计 图 42 方波程序流程图 方波产生首先将 DAC0832 口地址至为 4000H,当 A 中的内容为 0 时,输出对应模拟量,然后延时,当 A中的内容为 0FFH 时,同样输出对应模拟量,再延时,从而得到方波。 开始 P0=0 延时 P0=255 延时 华科学院本科毕业设计(论文) 20 4. 4 三角波程序 设计 图 43三角波程序流程图 三角波产生首先将 DAC0832 口地址至为 4000H,通过 A 中数值的加一递升,当 A 中的内容为 0 时,与 0FFH 相比,相等时 A中的内容减一递减,从而循环产生三角波。 开始 P0=0 P0++ 如果 P0=255 P0 如果 P0=0 王玮:基于 AT89S52 的低频信号发生器设计 21 4. 5 锯齿波 程序 设计 图 44 锯齿波 程序流程图 锯齿波 产生首先将 DAC0832 口地址至为 4000H,通过 A 中数值的加一递升,当 A 中的内容为 254 时,延时一段时间,再通过 A中的内容减一递减,当 A 的内容减至 1 时,延时一段时间,从而循环产生三角波。 开始 P0=0 P0++ 如果 P0=255 P0 如果 P0=0 延时 延时 华科学院本科毕业设计(论文) 22 4. 6 正弦波程序 设计。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。