基于AT89C51单片机的多功能信号发生器设计

基于AT89C51单片机的多功能信号发生器设计[20200128194259]
摘 要
信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。目前使用的信号发生器大部分是函数信号发生器。所以本设计使用的是AT89C51单片机构成的发生器,可产生三角波、方波、正弦波等多种特殊波形和任意波形,波形的频率可用程序控制改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。文章给出了源代码,通过仿真测试,其性能指标达到了设计要求。之后介绍了单片机的硬件和软件知识。硬件包括单片机AT89C51、复位电路、时钟电路、键盘电路、DACO832、运放4558;软件包括各波形的产生及对硬件的控制程序。
 *查看完整论文请+Q: 351916072 
关键字:信号发生器;AT89C51;DACO832;单片机
引言 1
一. 单片机与信号发生器概述 1
(一). 单片机概述 1
(二). 信号发生器的概述 1
1. 信号发生器基本原理 1
2. 信号发生器作用 1
二. 研究内容 2
三. 方案的设计与选择 2
(一). 方案的比较 2
(二). 设计原理 2
(三). 功能设计 2
(四). 设计思想 3
(五). 硬件原理框图 4
(六). 主控电路 4
(七). 数/模转换电路 5
(八). 显示电路 5
五.软件设计 6
(一). 程序流程图 6
(二). 仿真电路及波形 8
总 结 9
附录一 电路原理图 9
附录二 源程序 10
附录三 器件清单 18
参考文献 18
致 谢 19
引言
单片机诞生于20世纪70年代末,经历SCM即单片机微型计算端机、MCU即微控制器、SOC即片上系统三大阶段。随着大规模集成电路技术的发展,中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、(I/O)接口、定时器/计数器和串行通信接口,以及其他一些计算机外围电路等均可集成在一块芯片上构成单片微型计算机,简称为单片机。单片机具有体积小、成本低,性能稳定、使用寿命长等特点。其最明显的优势就是可以嵌入到各种仪器、设备中,这是其他计算机和网络都无法做到的。它还有着微处理器所不具备的功能,可以单独完成现代工业控制所要求的智能化控制功能。
一. 单片机与信号发生器概述
(一). 单片机概述
单片机是一种微型计算机。具有体积小、成本低,性能稳定、使用寿命长等特点。其最明显的优势就是可以嵌入到各种仪器、设备中,可以单独完成现代工业控制所要求的智能化控制功能。
(二). 信号发生器的概述
1. 信号发生器基本原理
(如图1-1)
图1-1 信号发生器基本原理框图
2. 信号发生器作用
全部参数预置操作,直接键入所需输出频率和电平,输出电平可用dB、μV、mV、V预置,输出衰减器的分辨率最小为0.1dB,输出阻抗50Ω,输出频率和幅度全部LCD液晶数字显示。
二. 研究内容
本文是做基于单片机的信号发生器的设计,将采用编程的方法来实现三角波、锯齿波、矩形波、正弦波的发生。
三. 方案的设计与选择
(一). 方案的比较
方案一:采用单片函数发生器(如8038),8038可同时产生正弦波、方波等,而且方法简单易行,用D/A转换器的输出来改变调制电压,也可以实现数控调整频率,但产生信号的频率稳定度不高。
方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。
方案三:采用单片机编程的方法来实现。该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做的很高。
鉴于方案一的信号频率不够稳定和方案二的电路复杂,频率覆盖系数难以达标等缺点,所以决定采用方案三的设计方法。它不仅采用软硬件结合,软件控制硬件的方法来实现,使得信号频率的稳定性和精度的准确性得以保证,而且它使用的几种元器件都是常用的元器件,容易得到,且价格便宜,使得硬件的开销达到最省。
(二). 设计原理
数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。 其信号发生器构成原理框图如图2-1所示。
图2-1 信号发生器原理框图
(三). 功能设计
(1)本方案利用8155扩展8个独立式按键,6个LED显示器。其中“S0”号键代表方波输出,“S1”号键代表正弦波输出,“S2”号键代表三角波输出,“S3” 号键代表锯齿波输出。
(2)“S4”号键为10Hz的频率信号,“S5”号键为100Hz的频率信号,“S6”号键为500Hz的频率信号,“S7”号键为1KHz的频率信号,6个LED显示器输出信号的频率值,选用共阳极LED。
(3)利用两片DAC0832实现幅度可调的信号源,(其中一片用来调节幅度,另外一片用来实现信号源的输出)。
(4)频率范围:10~1000Hz。
(5)输出波形幅度为0~5V。
(四). 设计思想
(1)利用单片机产生方波、正弦波、三角波和锯齿波等信号波形,信号的频率和幅度可变。
(2)将一个周期的信号分离成256个点(按X轴等分),每两点之间的时间间隔为 T,用单片机的定时器产生,其表示式为: T=T/256。
如果单片机的晶振为12MHz,采用定时器方式0,则定时器的初值为:
X=213— T/Tmec (2.1)
定时时间常数为:
TL =(8192— T)/MOD256 (2.2)
TH=(8192 T)/256 (2.3)
MOD32表示除32取余数
(3)正弦波的模拟信号是D/A转换器的模拟量输出,其计算公式为:
Y=(A/2sin t)+A/2 (其中A=VREF) (2.4)
t=N T (N=1~256) (2.5)
那么对应着存放在计算机里的这一点的数据为:
(4)一个周期被分离成256个点,对应的四种波形的256个数据存放在以TAB1--TAB4为起始地址的存储器中。
(五). 硬件原理框图
硬件原理方框图如图4-1所示。
图4-1 硬件原理框图
(六). 主控电路
AT89C51单处机内部设置两个16位可编程的定时器/计数器T0和T1,T0或T1被允许计数后,从初值开始加计数,最高位产生溢出时向CPU请求中断。
中断 。AT89C51输出一个波形采样点信号后,接着启动定时器,在定时器未产生中断之前,AT89C51等待,直到定时器计时结束,产生中断请求,AT89C51响应中断,接着输出下一个采样点信号,如此循环产生所需要的信号波形[6]。
如图4-2所示,AT89C51从P0口接收来自键盘的信号,并通过P2口输出一些控制信号,将其输入到8155的信号控制端,用于控制其信号的输入、输出。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jxgc/zdh/4368.html

好棒文