基于单片机的低频信号发生器设计毕业设计论文.docx
- 文档编号:27630908
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:43
- 大小:2.11MB
基于单片机的低频信号发生器设计毕业设计论文.docx
《基于单片机的低频信号发生器设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的低频信号发生器设计毕业设计论文.docx(43页珍藏版)》请在冰豆网上搜索。
基于单片机的低频信号发生器设计毕业设计论文
淮阴工学院
毕业设计说明书(论文)
作者:
学号:
学院:
电子与电气工程学院
专业:
电子信息工程
题目:
基于单片机的低频
信号发生器
讲师
张月红
指导者:
(姓名)(专业技术职务)
评阅者:
(姓名)(专业技术职务)
年
月
毕业设计说明书(论文)中文摘要
本文设计的目的是利用AT89S51单片机和数模转换元件DAC0832产生所需不同信号的低频信号源,即采用AT89C51单片机作为控制中心,而在外围采用数字/模拟转换电路(DAC0832)、运放电路(LM358)、按键电路和LCD液晶显示电路等,通过按键可控制产生方波、锯齿波、三角波、正弦波,调整频率的大小,同时用LCD液晶显示对应的波形输出。
本文中简要介绍了单片机AT89S51的基础理论,DAC0832数模转换器的结构原理和使用方法,,以及与电路设计有关的各种芯片,并着重详细介绍了利用单片机控制D/A转换器产生上述信号的硬件电路和软件编程设计。
本文所设计的系统简单、性能良好、性价比高,可用于多种需要低频信号源的场所,可应用到相关的生活中去。
关键词单片机,信号发生器,低频,D/A转换电路,运算放大电路
毕业设计说明书(论文)外文摘要
TitleMicrocontrollerBasedonthelow-frequency
signalgenerator
Abstract
Thepurposeofthisdesignistheuseofsingle-chipAT89S51DAC0832digitaltoanalogconversionelementdifferentsignalstoproducethedesiredlow-frequencysignalsource,whichusesAT89C51microcontrollerasthecontrolcenterandintheperipheryusingdigital/analogconversioncircuit(DAC0832),op-ampcircuit(LM358),keycircuitandLCDLCDcircuits,etc.,canbecontrolledbybuttonsproducesasquarewave,sawtooth,trianglewave,sinewave,adjustthefrequencyofthesize,andwithLCDdisplaythecorrespondingwaveformoutput.ThisarticlebrieflydescribesthebasictheoryofSCMAT89S51,structureprincipleanduseDAC0832digital-,,aswellasavarietyofchipandcircuitdesignrelated,andfocusdescribestheuseofSCMD/Aconvertergeneratesthesignalhardwarecircuitdesignandsoftwareprogramming.Thisarticleisdesignedsystemissimple,goodperformance,cost-effective,canbeusedforvariousneedsofthelow-frequencysignalsourceplace,itcanbeappliedtotherelevantlife.
KeywordsMicrocontroller,signalgenerator,lowfrequency,D/Aconvertercircuit,anoperationalamplifier
1绪论
1.1信号发生器综述
现在市场上有许多种信号发生器,一般分为以下几种:
超高频:
频率范围1MHz以上,可达几十兆赫兹。
高频:
几百千赫兹到几兆赫兹。
低频:
频率范围为几十赫兹到几百千赫。
超低频:
频率范围在零点几赫兹以下。
超高频信号发生器:
产生波形一般用LC振荡电路,频率在零点几赫兹以下。
1.2信号发生器的发展历史
在20世纪初随着电子行业的兴起,信号发生器就出现在人们生活中了。
伴随着时间的推移,科学的发展,到了四十年代,人们在这个时期设计的信号发生器的结构复杂,多依靠硬件电路拼接,比较死板,并且消耗的功率比较大,浪费能源。
在1964年第一台有全部晶体管制作的信号发生器诞生了。
随着技术的不断进步,在此之后,信号发生器的市场需求变大,因此信号发生器得到很好的发展机遇,这个时候人们开始使用模拟电子以及集成电路技术[1][2],虽然这时候信号发生器得到很大的改善,但是仍存在着频率稳定性不够好,材料不够便宜等缺点。
令人兴奋的是在70年代微处理器、模数转换器、数模转换器的发明,增强了使用硬件以及软件使构成的信号发生器的功能,可以制造出比较繁杂的波形。
。
伴随着电子技术,数字信号技术以及计算机科学技术的飞快发展,模拟信号走下历史舞台,而数字信号登上历史舞台,它克服了模拟信号的诸多缺点,例如改善了信号的精确度以及转换效率。
如今能够通过可视化编程语言编写发生器的操作界面,这样人们可以做到直接用手输入想要的波形,来做到波形的输入。
1.3信号发生器主要研究内容
信号发生器又被叫做函数信号发生器,可测试被测电路所需的生成的设备特定值。
该装置是一个研究,教学,制造业最常见的通用设备,传统的信号发生器是没有信源装置的控制的单一芯片,如可由555振荡电路构成,可产生正弦波信号,矩形信号和三角波信号,但常会引起波形畸变,且难以控制,频率范围小,结构冗杂等缺点。
在实践中以及科学技术研究如工业,农业,通信,生物医学经常需要使用低频信号发生器。
然而从一个硬件电路组装成一个低频信号源,因为它需要使用难以控制准确度的电阻和电容组装而成,这很难保证参数的准确性。
并且由于它体积大,功耗大,泄漏以及许多其他的缺陷,在实际应用过程中的存在将大大增加电路的复杂性,性能通常不令人满意。
低频信号源可选择利用单片机产生设计方案,频率稳定性都能够可以得到很好的改变[3][4]。
采用软硬件结合的途径,在硬件不变的情况下只需要改变软件,就可以实现频率大小转换,并且具有稳定的频率,不会被其他信号所串扰等优点。
2硬件设计
2.1总体设计框图
图2-1基于单片机的低频信号发生器系统框图
该低频信号发生器的设计系统包含有单片机,数模转换电路,电压转化电路,波形指示模块以及按键模块组成。
其主要目的是通过按键来控制正弦波,方波,锯齿波,三角波的对应显示,以及频率的调整,并且有相应的指示灯进行指示工作。
2.2单片机最小系统
2.2.1单片机选择
方案一:
AT89C51只可以同时载入,并且要有VPP烧写高压才可以。
而AT89C51系列在大于4.8V和小于5.4V的时候则可以常工作,否则不能正常工作。
AT89C51的频率规模最高只能够达到24M,超过同样不能正常工作。
方案二:
AT89S51则支持ISP在线可编译写入手艺。
串行载入效率更加高、稳定性相对越来越好,载入电压只要4至5V就可以达到要求。
AT89S51标称的1000次,现实中使用次数是1000次至10000次,这更有益初学者不断的练习烧写,降低实验实践的成本。
方案三:
AVR单片机最大的优点是可以提前读取命令,在单片机工作时,AVR可以在执行之前一条指令命令的同时提取下一条命令。
AVR单片机中含有32个寄存器,属于多累加器型,所以它的读写速度很快。
中断响应速度快。
AVR单片机具有许多中端口,所以在发出终端指令时能够迅速做出相应。
AVR单片机耗能低。
方案选择:
AT89S51兼容AT89C51。
AT89C51在生活生产中已经全部停产,所以价钱方面,现有的AT89C51的批发价是AT89S51一倍。
虽然AVR单片机有许多优点但是AVR价格很高,指令集也过于简单,同时AVR支持的位操作也不多。
所以本设计选择方案二。
2.2.2单片机介绍
AT89S51单片机简介:
AT89S51单片机性能优良,他不仅消耗功率少,性能也比较全面。
在单片机的内部构造里面,AT89S51单片机中含有8位CPU和可编程Flash存储器(8k),这样在面对各种复杂的开发环境时AT89S51单片机就能够更快速更好的应用。
在功能上,AT89S51单片机中包含了许多基础功能,如存储程序、计数/定时、复位、数据的输入输出、开关中断以及串行口,这些与其他的单片机并没有多大的区别。
此外AT89S51单片机在0Hz时有两种节电模式选择:
一种是空闲模式,这种模式下除CPU不再工作外其他部分可以继续运行;另一种是掉电保护模式,这种模式下在保存完RAM内容后,单片机内各模块全部停止工作,一直到下个命令或复位后才开始工作。
由于AT89S51芯片被广泛的应用于各种开发实践,所以采用AT89S51进行开发时有很多经验可以借鉴。
AT89S51的端口如下图3-1所示
图2-2-1AT89S51引脚图
管脚说明[5][6]P0端口:
P0口用作通用的输入/输出口,当需要外部总线扩展(在单片机芯片的外部扩展存储器芯片或其他接口芯片)时,P0口用做分时复用的低8位地址,数据总线。
只有P0口可直接读写外部存储器控制。
由于当需要外部总线扩展时是分时输出,所以应该将地址数据锁存在外部通过加上锁存器,用ALE作为信号。
P1端口:
P1口是唯一的单一功能的端口,只能作为一般的数据输入/输出口,专门为用户使用的I/O端口。
P2端口:
P2口用作通用I/O口时,从体系扩大时作高8位地址线用,属于准双向端口。
当外部存储器不延伸时,P2口作为地址总线也是准双向口。
P3口(P3.0~P3.7):
如下表
表2-2-2P3串口详细表
P3口是双功能口,除具有数据输入/输出功能外,每一口线还具有特殊的第二功能。
RST:
引导内部复位程序或电路引脚。
只需要RST保持高电平一段时间,通常上电RC电路,或专用电源监控芯片,即可完成复位了。
EA∕VPP:
/EA=0时,执行外部存储器;/EA=1时,先执行内部存储器再执行外部存储器。
VCC:
电源电压,接+5V。
2.2.3晶振电路的介绍
晶振电路简介:
AT89S51有一个内部振荡器被用于组成一个高增益反相放大器,该芯片的引脚XTAL1是放大器的输入端,XTAL2放大器的输出端。
该放大器的反馈,石英或陶瓷谐振器元件芯片关共同构成如图3-5所示时钟振荡电路。
在单片机能够正常工作时都需要有相对应的时钟脉冲。
向AT89S51提供时钟脉冲两种方法分别是:
一是外部时钟方式,二是内部时钟方式。
[7][8]本设计采用第二种:
即使用晶振由AT89C51内部电路产生时钟脉冲,其电路图见图2-2-2。
图2-2-3AT89S51的时钟脉冲
X1为晶体振荡器,一般为石英晶体,其系统的需要以及器件可以确定它的频率大小,陶瓷滤波器一般可用于其频率稳定度不高的情况下。
12M是比较常用的晶振,51单片机是12分频的,如果选用12M晶振,并且是单指令周期的语句,刚好是1us,其他语句正好是1us的整数倍。
很容易的机算出每个语句耗用的时间。
正常情况下,用石英晶体振荡器,C1=33pFC2=33pF。
使用陶瓷滤波器时,C1=46pF,C2=46pF。
2.2.4复位电路简介
复位电路,我们是用它使得电路还原到刚开始状态。
如清除计算器按钮的作用一样,当你完成计算的话题肯定是要被清除,或者,你犯了一个错误,在操作应进行时出现一个误判,想要恢复到起始的状态,那么就需要重新计算。
计算器清除,并启动复位电路意味着不同的按钮。
首先,当电源接通时立马对电路进行复位操作;第二个在调试系统或者认为需要时候可以手动复位,第三个在程序中设计自动地进行复位操作。
AT89S51复位:
它的主要目的是将PC改为0000H,所以单片机将重新从0000H地址运行。
有时候系统运行会出现未知错误,人为的操作不当或死锁情况出现,想要走出困境,还需要按复位按钮重新启动。
除了使PC为零,复位动作也波及到许多其它特殊用途寄存器,它们的初始化后的状态如下表所示:
表2-2-4内部寄存器复位后情况表
此外,复位操作还对单片机的某些端口会产生影响,例如会让ALE和/PSEN变为无失效状况,ALE=0,/PSEN=1。
当RST变为低电平情况下,不再出现复位,CPU此时便可从初始化重新开始运行[9]。
AT89S51复位操作的三种形式分别为上电复位、上电按钮复位以及系统本身复位。
上电复位电路如下图2-2-4所示。
因为RST引脚中有拉低电阻,故电阻R可以不再外接。
在单片机通上电的时刻,开始对RC电路进行充电,这时RST端口产生正向脉冲,RST端只需要保持在高电平两个机器周期后,便能够使得单片机进行复位。
为12MHz晶体振荡器RC正常值C=F,R=8.2k欧姆。
我们能够经常遇到早简便的复位电路中,复位端经常会被串扰信号滋扰,容易导致复位操作失误,该时候在RST端口上接上一去耦电容就能够解决问题。
由于系统的需要,系统中需要设计一个手动的复位按钮开关,只要复位电路并联一个常开按钮开关来达到目的,在短时间内按下开关按钮就能使RST引脚端口变为高电平,然后让单片机复位[10]。
如下图2-2-5所示
图2-2-5按钮复位电路图
2.3数模转换模块
在单片机将数字信号输出过程中,我们需要将输出的内容转化为模拟信号。
8位分辨率的DAC0832是一个D/A转换器集成芯片,与AT89S51单片机很好地兼容。
该DA芯片以其成本低,操纵简洁的界面,易于转换节制等,普遍用于单片机利用体系。
在这里,采用了DAC0832元器件。
此变换器包括八个输入锁存器,八DAC寄存器,八D/A转换电路和开关控制电路。
D/A转换输出电流形式。
若是必要一个响应的模拟电压发生信号,经由过程线性运算放大器的高输入阻抗。
1、分辨率为8位;
2、电流稳定时间1us;
3、单缓冲、双缓冲或直接数字输入;
4、只需在满量程下调剂其线性度;
5、单一电源供电(+5V~+15V);
6、低功耗,20mW。
DAC0832的管脚功能[11][12]:
IOUT2:
电流输出端2,其值与IOUT1值之和为一常数;Rfb:
反馈信号输入引脚;VCC:
电源输入,电压范围+5~+15;VREF:
参考电压输入端,范围-10V~+10V;AGND:
模拟信号地;DGND:
数字信号地。
AT89C51对DAC0832执行写操作一次就是将一个数据载入数据锁存器的相同时刻也直接载入到DAC寄存器中,模拟量输出便会伴随产生变动。
数字量与模拟量的转换相关公式为:
Vout1=-Vref×(数字码/256)
D/A转换结果采用电流形式输出。
能够通过连接一个高输入阻抗变来满足相对需要的模拟电压信号。
运放的反馈电阻可以通过两种方法获得,第一种可以利用RFb端获得运放内部自带的电阻,第二种可以外接一电阻。
因而,DAC0832一般常常要外接一个运算放大器,进行电流电压转换,这样才可以获得到模拟输出电压。
2.4运算放大模块
在经过数模转换模块,我们可以得到转换后的模拟信号,但是这些模拟信号相对比较微弱,不足以驱动紧接下来连接的设备,因此我们需要连接一个运算放大器来放大我们的模拟信号。
在本设计中我们需要计算信号被放大的倍数,那么放大倍数可根据反馈电阻除以输入电阻得到。
起初在设计的过程中,我采用了一级放大器,出现了饱和失真。
由下图可以知道是由本设计的放大倍数不足导致饱和失真。
图2-4-1饱和失真电路仿真图
因此需要增加运算放大器的倍数,在选择运算放大器中,为将信号放到足够大的程度,我们可以采用LM358双运算放大器。
LM358包括两对运算放大器,其可用于宽电压范围单电源供电,并且也适用于双电源,电流与电压无关必须要在满足合适的工作情况下。
LM358还具有以下特点:
表2-4-2LM358特点情况表
因此,在本设计中我选择了用LM358双运算放大器。
双LM358双运算放大器是由两个LM358运算放大器组成,在电路中,我们通过在运算放大器中串联一个下拉电阻R4,通过接地使得该端口平时的电平为低电平。
同时我们为使得波形在放大的时候不失真接上一电位器,通过调节电位器来使得波形不失真。
下图为运算放大器的设计电路仿真图:
图2-4-3运算放大电路仿真图
同时值得注意的是在运算放大倍数过大的时候会导致图形的截止失真。
2.5键盘电路设计模块
在单片机体系中为了控制整体状况,和向体系输入数据,利用体系中设有按键或键盘,实现简略的人机会话。
一组开关的组合就是一个比较简单的键盘,键一般为断开按钮开关,闭合开关时它们才导通。
从键盘的结构的分类,键盘可以分为独立式和矩阵式两类,每个都根据其键盘识别方法可以分为两种编码和非编码的。
专用的硬件解码器实现键盘上的按键闭合,并产生编号或编码称为键盘键作为调用的软件来辨别非编码键盘。
在单片机应用系统中经常需要使用几个简单的键完成数据,输入命令,在这种情况下,结构可以单独使用键盘。
该接口电路的工作原理很简单,当有键被按下,每个输入线为高电平;相应的输入线为低电平则有键按下,单片机查询该端口的状态就知道哪个键关闭。
使用一键一线的方法,增加键的数量,会增加的输入的数量,为了减少占用输入线,可以是一个键盘矩阵结构。
由于本系统所需要的按键并不多,用4个按钮开关就能控制波形,因而可采用独立式未编码键盘结构。
键盘电路图如图2-5-2所示。
图2-5-2键盘电路图
按键介绍K1:
是步进值调节按钮K2:
在选定波形情况下,增加频率。
在选定步进值情况,增加步进值大小。
K3:
在选定波形情况下,减小频率。
在选定步进值情况下,减小步进值大小。
K4:
波形的选择按钮,每按一次会切换到不同的波形。
2.6显示电路设计模块
显示电路设计一般为数码管显示和液晶显示,液晶显示器有许多优点,例如:
功耗低、微体积、显示内容多等,在小仪表和低功耗应用系统中得到更加广泛的应用。
本设计采用字符LCD模块为液晶显示器,与5×7点阵展示字符,这取决于容量显示屏上可以被划分成一行的16个字符,2行的16个字符,2行的20个字符等等。
液晶显示器是一个运行比较慢的显示器件,因而在运行一条条指令时候首先要知道模块的忙标记位为低电平,示意不忙,不然此指令作废。
想要实现显示字符功能时要提前输入显示字符的地址,意思是指挥模块应该怎样将字符显示出来。
表2-6-1是DM-162的内部显示地址。
表2-6-1 1602的内部显示地址
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
序号
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
第一行
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
第二行
字符产生存储器(反转片)内1602LCD模块储存了160个不一样点的字符模形,这些字符是:
英文字母、通常使用的符号和日语假名等,每一个字符具有固定的代码。
在软件中设置温度的代码是:
30.0℃(00110011B,00110000B,00101110B,00110000B,01000011B);37.0℃(00110011B,00110111B,00101110B,00110000B,01000011B);60℃(00110110B,00110000B,01000011B)。
在液显电路的衔接上,LCD1602液晶显示模块直接单片AT89S51相连,然后以驱动NMOS上拉电流负载,需求接一个上拉电阻,來使得这个位置拥有有效的高电平。
所以接10K电阻来保证拥有有效的高电平,以确定显示高度点,是否要显示。
VEE因为终端电源连接到正电源,对比度就会相对较弱,然而接地电源的时候产生的对比度就会变得相对过高,将有一个“鬼影”,对比度过低会使屏幕模糊。
对比度的调节需要一10k的电位器。
LCD1602的RS寄存器选择连接端口P2.5单片机的口,通过软件程序设置此引脚,以确定所选择的寄存器。
读写端口的LCD液晶显示器直接连接到微控制器P2.6口,在高电平时候输入的对数字信号进行读数。
配置E端终止单片机的P2.7端口,使能端由高电平命令执行到一个较低的水平时候,显示读数。
LCD显示电路图如图2-6-2:
图2-6-2LCD显示电路原理图
此外,为了控制LCD液晶显示的亮度,已经将本设计灰度固定。
如想调节液晶显示器的亮度可以接一滑动变阻器,可通过滑动变阻器来调节液晶显示屏的亮度大小。
3软件设计
系统软件设计分为主程序和子程序设计。
其重点是产生各类波形的编程例程,并进行编程来产生各种波形。
其中,所述频率变化的各种波形可以通过使用延迟的常规方法来实现插入。
显示模块是通过使用DAC0832的8位性质,将波形与之对应的模拟数据以8位的数据模式写入到单片机中去,只须按下键就能显示相对应的波形。
3.1主程序流程图
如图3-1所示:
图3-1主程序流程图
该软件程序设计的目的主要实现是通过按钮来控制不一样波形的显示,在初始的时候,我们在通电瞬间系统就开始工作,本设计将默认初始化为发出正弦波工作信号。
当按钮1闭合时,函数发生器就会切换到下一个波形;若再次按下按钮1就会继续切换到下一个波形,本设计共有四种波形,按下按钮1会依次循环出现。
当按钮2按下时,函数发生器自动怎么加频率;当按钮3闭合时,函数发生器就会减少频率的输出;当按钮4闭合时,函数发生器就进入步进值调节的软件控制程序。
3.2子程序流程图
如下图锯齿波流程3-2所示。
图3-2-1锯齿波流程图
锯齿波产生把数值00H放入寄存器A里面,D/A转换器输出A中的数值,若A里面的数值和FFH相等则返回开始,若A中的数值不等于FFH时,那么A中的内容不断累加,从而输出波形。
如下图三角波流程3-2-2所示
图3-2-2三角波流程图
三角波是一个数值的上升,当加入到一个0的内容。
一个数值每降低,从而可以获得一个三角波周期。
产生三角波程序:
ucharcodesanjiao[64]={
0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133,140,147,154,161,168,175,182,189,196,203,210,217,
224,217,210,203,196,189,182,175,168,161,154,147,140,133,126,119,112,105,98,91,84,77,70,63,56,49,42,35,28,21,14,7,0
};
如下图正弦波程序流程3-2-3所示
图3-2-3正弦波程序流程图
正弦波波形设计指令可通过查表获得。
ucharcodesin[64]={
135,145,158,167,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 低频 信号发生器 设计 毕业设计 论文