函数信号发生器打印1.docx
- 文档编号:15731873
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:39
- 大小:3.84MB
函数信号发生器打印1.docx
《函数信号发生器打印1.docx》由会员分享,可在线阅读,更多相关《函数信号发生器打印1.docx(39页珍藏版)》请在冰点文库上搜索。
函数信号发生器打印1
密级:
NANCHANGUNIVERSITY
学士学位论文(设计)
THESISOFBACHELOR
(2011—2015年)
中文题目:
基于单片机函数信号发生器设计
英文题目:
DesignoffunctionsignalgeneratorbasedonMCU
学院:
南昌大学共青学院
系别:
信息工程系
专业班级:
电子信息工程
学生姓名:
吴颖
学号:
8120211036
指导教师:
刘定军
二○一五年五月
学士学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
本人签名:
日期:
摘要
信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。
目前使用的信号发生器大都是函数信号发生器,并且特殊波形发生器的价格昂贵。
所以本设计使用的是AT89C52单片机构成的发生器,可产生三角波、方波、正弦波等多种特殊波形和任意波形,波形的频率可用程序控制改变。
在单片机上加外围器件距阵式键盘,通过键盘控制波形频率的增减以及波形的选择,并用了LCD显示频率大小。
在单片机的输出端口接DAC0832进行D/A转换,再通过运放进行波形调整,最后输出波形接在示波器上显示。
本设计具有线路简单、结构紧凑、价格低廉、性能优越等优点。
在介绍DAC0832芯片特性的基础上,论述了采用DAC0832芯片设计数字函数信号发生器的原理以及整机的结构设计。
对其振荡频率控制、信号输出幅度控制以及频率和幅度数显的实现作了较详细的论述。
关键词:
信号发生器;单片机;DAC0832;波形调整;LCD
ABTRACT
Signalgeneratorisacommonsignalsource,widelyusedinelectroniccircuits,automaticcontrolsystemandteachingexperimentetc..Mostsignalgeneratorscurrentlyinuseisthefunctionsignalgenerator,waveformgeneratorandaspecialpriceofexpensive.SothedesignistheuseofgeneratoriscomposedofAT89C52microcontroller,canproducetrianglewave,sinewave,FangBoandmanyotherspecialwaveformandarbitrarywaveform,frequencyavailableprocedureswaveformcontrolchange.Andperipheraldevicesinthemicrocontrollermatrixkeyboard,throughthekeyboardtocontrolthewaveformfrequencyincreaseordecreaseandthewaveformselection,andusetheLCDdisplayfrequencysize.IntheoutputendoftheSCMisconnectedtotheDAC0832toD/Aconversion,andthenbyusingwaveformregulation,thefinaloutputwaveformisconnectedwiththedisplayontheoscilloscope.Hastheadvantagesofsimplecircuit,compactstructure,lowcost,superiorperformanceandotheradvantagesofthisdesign.BasedonintroducingthecharacteristicsofDAC0832chip,thepaperdiscussestheprincipleofusingDAC0832chipdesignofdigitalfunctiongeneratorandthedesignofthestructureofthe.Ontheoscillationfrequencycontrol,realizetheoutputsignalamplitudecontrol,frequencyandamplitudedisplayarediscussedindetail.Thefunctionsignalge.Thefunctionsignalgeneratorcanoutputtrianglewave,squarewaveandsinewave.
Keywords:
Signalgeneratorchip;DAC0832;waveformadjustment;LCD
目录
第1章绪论1
1.1课题的背景1
1.2课题的可行性研究1
第2章系统设计的方案2
2.1方案一2
2.2方案二2
2.3方案三2
2.4系统方案论证2
第3章系统的硬件设计3
3.1芯片介绍3
3.1.1DAC0832的介绍3
3.1.2单片机AT89C52的介绍4
3.2函数信号发生器的整体设计7
3.3函数信号发生器的基本组成7
3.4系统各部分电路设计8
3.4.1时钟电路8
3.4.2复位电路9
3.4.3数模转换电路9
3.4.4信号放大模块电路10
3.4.5按键指示电路10
3.4.6LCD显示电路11
第4章系统的软件设计12
4.1系统主程序流程图12
4.2Protues介绍14
第5章系统的软件设计14
5.1电路仿真图14
5.1.1正弦波仿真图15
5.1.2方波仿真图15
5.1.3三角波仿真图16
5.1.4锯齿波仿真图17
5.1.5电路整体仿真图17
结论18
参考文献21
致谢.................................................................................................22
附录A23
附录B24
附录C25
第1章绪论
1.1课题的背景
函数信号发生器被广泛运用在工业自动化,产品的开发,教学科研等多个方面,它能够产生方波,锯齿波,正弦波还有三角波,这种波形可以作为一种常见的信号运用在测试方面。
利用示波器,显示器和其他设备,以便根据相关的规则,来让电子运动,在荧光屏上产生图像,经常会利用锯齿波信号发生器作为时基电路。
要在示波器荧光屏上不失真地观察到被测信号波形,要求在水平偏转线圈上加随时间线性变化的电压——锯齿波电压,使电子束沿水平方向匀速搜索荧光屏。
对示波器屏幕上所测量的波形,在水平偏转线圈和电压不变形随时间线性变化,对于三角波,方波也有重要的作用。
通常情况下,函数信号发生器是可以自动产生三角波,正弦波和锯齿波的阶梯电压波形。
因此,希望设计出来一种函数信号发生器,可产生正弦波,三角波,方波的方案。
1.2课题的可行性研究
为适应特定的功能和需求,一个函数发生器,可以产生三种或更多种波形。
在该装置中利用到的可以是一个分离装置,并且也能是集成型的设备,并且能够利用它有很多种方法来产生正弦波,三角波和方波。
如果按照周期来确定一个由整形电路,正弦波到方波,积分电路后,让它实现一个三角波变换成正弦波的功能。
非正弦波,正弦波,还可以生成三角波和方波,然后三角波和方波转换成正弦波。
由于电子科技在飞速发展,新型的材料,更加完善的设备层出不穷地出现,新型函数信号发生器,在设备上面的选择可以更加多。
第2章系统设计的方案
2.1方案一
利用文氏电桥产生正弦振荡,再经由比较器得到方波,方波通过积分从而可以得到三角波。
此方案由于是开环电路,结构相对简单,它所能够产生出来的正弦波跟方波失真会比较小。
但会在产生的过程中存在一些难题,因为它需要的频率覆盖系数需要达到1000倍,明显可以看出1000倍的频率的变化将改变DT积分需要的时间造成了1000的输出电压振幅产生变化的三角波次,而这是电路所不希望的。
在幅度的稳定性上很难满足条件,这样容易在仿真的时候使积分器发生失调的现象。
2.2方案二
利用ICL8038芯片构成8038集成函数发生器。
8038是一种能够产生多种波形输出的精密振荡集成电路,是一个多用途,可以用来产生正弦波,三角波,锯齿波,方波,并且可以施加直流电压来调整振荡产生的频率。
因为外部电容器C的充电,放电电流是通过两个电流源来控制输出的,所以电容器C两端的电压u和时间呈线性关系,可以输出三角波波形。
2.3方案三
利用单片机AT89C52程序设计由转换器DAC0832数模转换。
AT89C52单片机使用的程序代码设计的方法,产生锯齿波,三角波,正弦波,方波,然后将数字信号用模拟信号显示,通过四波的D/A转换器DAC0832滤波器放大,最后由示波器显示,选择频率的类型通过键盘来改变,以控制四个波形,最终输出和显示类型和它们的值。
2.4系统方案论证
使用单芯片的软件设计的方法被用来制造四种波形,通过键盘选择四种波形,频率可由LCD1602型和波形显示的频率进行调整。
通过单片机控制转换,输出四种波形、易操作,成本较低。
总结之前的三种情况,我们最终决定以方案三来产生信号。
第3章系统的硬件设计
3.1芯片介绍
系统硬件设计主要使用到的芯片是DAC0832和AT89C52。
3.1.1DAC0832的介绍
DAC0832是一种转换的D/A芯片,他的采样频率为8位,集成电路具有两个输入寄存器,DAC0832芯片的缓冲方式有单个缓冲器、双缓冲和直通,通过三种不同的输入方法,能够适用于各种电路(例如:
多模拟D/A同步异步输入,转换)。
所以DAC0832在各个领域都有广泛的运用。
关于DAC0832应用的一些重要资料见下图3.1.1-1
图3.1-1DAC0832芯片内部结构与引脚图
以电流的形式来显示转换得到的结果。
如果有必要,可以模拟对应的电压信号,由线性运算放大器高输入阻抗来实现。
可通过RFB端引用片内固有电阻来调整运放的反馈电阻,或者通过外接来调整。
TTL电平满足DAC0832的逻辑输入,可直接连接在TTL电路,或者计算机上面。
DAC0832芯片引脚功能:
D0〜D7:
8个数据输入,TTL电平,有效时间应当超过90ns(或锁存数据错误);
ILE:
数据锁存允许控制信号输入线,高电平有效;
CS:
片选信号输入线(选通数据锁存器),低电平有效;
WR1:
数据锁存写选通输入线,负脉冲(脉冲的周期需超过500ns时)有效。
生产LE1由ILE,CS逻辑WR1,当所述LE1高时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;
XFER:
通过数据的传输得以控制信号的输入,低电平有效,负脉冲(脉冲宽度应超过500ns时)有效;
WR2:
DAC寄存器选通输入线,负脉冲(脉冲宽度应超过500ns的)有效。
WR2:
DAC寄存器选通输入线,负脉冲(脉宽需大于50ns时)有效。
由WR2、XFER的逻辑组合,生成LE2。
当LE2是高电平的时候,输入二会导致DAC寄存器输出的结果产生相应的变化。
LE2的负跳变将数据锁存器的内容转入DAC寄存器,同时也会进行D/A转换。
IOUT1:
电流输出端1,它的值随着DAC的内容而产生线性变化;
IOUT2:
电流输出端2,它的值跟IOUT1的值相加会得到一个常数;
RFB:
反馈信号输入线,改变的RFB的电阻大小可以调整并且转换全部量程的精度值;
Vcc:
电源输入端,Vcc的范围为+5V~+15V;
VREF:
基准电压输入线,VREF的范围为-10V~+10V;
AGND:
模拟信号地;
DGND:
数字信号地。
3.1.2单片机AT89C52的介绍
AT89C52是由美国制造的低电压,且高性能的单片机,单片机内8k字节的,可以反复擦写的FLASH只读程序存储器。
并且该单片机还带有256字节的能够随机存取数据的存储器该公司所用的相关技术,具有密度高,不易丢失数据的优点,并且可以兼容标准MCS-51指令系统。
单片机内具有通用的8位中央处理器,FLASH存储单元。
如3.1-2图是AT89C52的引脚图。
图3.1-2AT89C52引脚图
3.2函数信号发生器的整体设计
采用单片机AT89C52DAC0832LCD1602组成的控制系统,其系统硬件总体方框图如图3.2-1所示:
图3.2-1整体设计框图
在图3.2-1的系统中,以高性能/价格比的AT89C52为核心,采用新型单片数字DAC0832来进行数模转换,LCD1602显示,此外,还有键盘/显示电路等,整个系统结构紧凑,性能可靠。
3.3函数信号发生器的基本组成
主要由单片机,数模转换模块,放大器模块,显示模块,按键设定模块组成。
如3.3图所示
图3.3系统原理图
Vcc:
电源电压
GND:
地
P0口:
P0口是一组8开漏双向I/O口,即复用地址/数据总线端口。
作为输出端口,每个都能够吸收8TTL逻辑门电路,写入到端口“1”,可作为高阻抗来进行输入。
在访问外部程序和数据存储器内存的过程中,这组线时间转换(低8)地址和数据总线复用,访问期间激活内部上拉电阻。
在进行FLASH程序编写的时候,指令字节通过P0接口来接收,在程序验证的过程中,输出代码的指令字节,在检查的同时,要求外接上拉电阻。
P1口:
P1是一个带内部上拉电阻的逻辑门电路,有8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL。
作为输出口使用的时候,通过内部的上拉电阻把端口调节至高电平,对端口写“1”。
作输入口使用的时候,因为内部具有上拉电阻,当引脚被外部信号拉低时会输出一个电流(IIL)。
FLASH编程和程序校验期间,P1接收低8位地址。
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可吸收或输出电流,4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口调整到高电平,可以作为输入口。
作输入口使用时,因为内部存在上拉电阻,当引脚被外部信号拉低时会输出一个电流(IIL)。
在外部数据访问外部程序存储器或存储的16位地址(例如,执行MOVX@DPTR)的时候,P2口送出高8的地址数据。
在访问中与外部数据存储器地址的(如MOVX执行@RI指令),(在R2寄存器的内容即特殊功能寄存器(SFR))P2线上内容,并没有在整个访问过程中改变。
在进行FLASH代码编程或校验时,P2也会接收高位地址和一些其他的控制信号。
P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL门。
当对P3入口输入“1”的时候,他们通过内部上拉电阻被拉高,并且可以作为输入端口来使用。
当作为输入端时,被外部拉低的P3口将利用上拉电阻输出电流(IIL)。
P3口一般可以用来作为I/O口线,另外它还有第二个很重要的功能,如下表所示:
表3.1P3口第二功能
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INT0(外中断0)
P3.3
INT1(外中断1)
P3.4
T0(定时/计数器0外部输入)
P3.5
T1(定时/计数器1外部输入)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
P3口还会接收一些用于FLASH闪速存储器编程和程序校验的控制信号。
RST:
复位输入。
当振荡器,RST引脚出现高层次两个机器周期以上高电平将使MCU复位。
ALE/PROG:
当访问外部存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
即使存在外部存储器没有访问,ALE为仍L/6的固定时钟脉冲信号输出的振荡频率,因此它可用于外部定时或时钟。
注意:
每次访问外部数据存储器时都会跳过一个ALE脉冲。
在FLASH程序代码编写过程中,该引脚也是编程脉冲输入(PROG)。
如果有必要,可以在(SFR)8EH单元DO位置的特殊功能寄存器,ALE操作可以被禁用,只有一个MOVX和MOVC指令ALE才能被激活。
此外,该引脚会被轻微得拉高,当单片机去执行外部程序时,设置ALE则会无效。
PSEN:
程序存储允许(PSEN)输出是外部程序存储器读选通信号。
当AT89C51的指令从外部程序存储器(或数据)提取时,每个机器周期两次PSEN有效,有两个脉冲输出。
在这个过程中,当访问外部数据存储器的时候,则这两个有效PSEN信号不会出现。
EA/VPP:
外部访问启用。
要让CPU只访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
注意:
如果加密LB1被编程,EA端将内部锁存复位结束状态。
EA端为高电平(VCC侧)的CPU,则执行内部程序存储器中的指令。
在FLASH编程,该引脚加上+12V的编程允许电源Vpp的,当然它必须是设备采用12V的编程电压Vpp。
XTAL1:
输入到反向晶振放大器和内部时钟发生器。
XTAL2:
振荡器反相放大器的输出端。
3.4系统各部分电路设计
主要由单片机、晶振电路、复位电路、数模转换电路、放大电路LCD显示电路和按键电路组成。
3.4.1时钟电路
时钟电路用于产生时钟信号,以单片机AT89C52来工作,AT89C52本身是一个比较复杂的同步时序电路,为了保证只有在时间序列的指令的工作方式,严格控制在AT89C52时钟信号的实施的速度和MCU的时钟频率的稳定性。
通常是由于两种形式的时钟:
内部时钟和外部时钟。
我们系统提供的时钟信号是通过内部时钟的方式来产生的。
AT89C52用于放大器的反向振荡器,这个高增益放大器的输入和输出引脚是XTAL1和XTAL2,他们连接在整个晶体振荡器和用于调节电容器使用的电容,他们构成了一个自激振荡器。
在该电路中,C2和C1在30PF的选择,但如果电容太小会对振荡频率的稳定和快速的频率产生影响。
晶振频率一般在1.2MHZ~12MHZ之间,频率越高单片机的速度就会越快,但是会对存储器的速度要求增高。
为了改善稳定性因此我们采用了NPO电容,用12MHZ的晶振频率的频率振荡器。
本次系统所采用的时钟电路图如图3.4-1所示。
图3.4-1时钟电路图
3.4.2复位电路
在图3.3中按下复位开关K然后松开开关,
可以端获得低电平,RST端输出复位信号,得到信号后单片机复位。
也可以由于(VCC加入并且电压超过复位门限电压)从而引起系统正常复位。
图3.4-2复位电路图
3.4.3数模转换电路
DAC0832是一个单片直流输出型的D/A转化器,使用8位转换器转换的DC输出型CMOS工艺,D/A变换器具有8个输入端口,1个模拟输出端口,输入可有2的8次方个不同的二进制组态,输出为
(256)个电压中的其中一个,DAC0832的转换的数字信号为模拟信号,生成正弦波方波三角波,并通过按键来改变频率,并显示在LCD1602显示屏上。
3.4.4信号放大模块电路
从DAC0832转换后的单芯片数字信号的输出,信号幅度是比较小的,所以需要放大。
采用常规的放大方式,采用两片运放,实现两级放大。
图3.4-3信号放大模块电路
3.4.5按键指示电路
通过按键来选择4种不同的波形以及改变波形的频率,通过发光二极管来指示相应的频率档位,1-999HZ发光二极管D9亮,1K-10K发光二极管D10亮。
图3.4-4按键指示电路
3.4.6LCD显示电路
LCD液晶显示器的液晶显示器被称为LiquidCrystalDisplay。
LCD的结构是在两片平行的玻璃当中放置液态的晶体,细金属丝和的液体垂直于水平两片玻璃之间,通过是否通电来控制杆晶体分子改变方向,将光线从屏幕反射。
比CRT要更好,但价格比昂贵。
现如今液晶显示器的价格已经有大幅度的下降,并且比CRT更适用,LCD已成为主流。
如图所示:
图3.4-5LCD电路
如上图所示,1602的八位数据端接单片机的P1口,其三个使能端RS、RW、E分别接单片机P2.2-P2.4。
通过软件控制液晶屏可以显示波形的种类以及波形的频率。
在单片机系统中应用液晶显示器作为输出器件有以下几个优点:
显示质量高、数字式借口、体积小、重量轻、功耗低等。
第4章系统的软件设计
4.1系统主程序流程图
首先,了解系统的功能需求和键盘的设置方式,从而选择相应的程序监控程序结构,再针对实际要求,从而可以对监控软件和各个执行模块之间的调度关系进行最合理得当的安排。
本部分详细介绍了基于AT89C52单片机的函数信号发生器系统的软件设计。
根据功能需求,可以将系统设计分为多个子程序进行设计,如数据处理子程序、结果显示子程序、功能执行子程序。
采用KieluVision3集成编译环境和汇编语言来进行系统相关的程序模块的设计。
本章从设计需求、软件系统框图出发,先介绍整个的设计思路后,再逐次分析各模块中的程序所运用到的算法和逻辑的实现,从而能够编写出满足方案需求的完整程序,并且对温度进行实时监控。
代码编写的方式是C语言,由于篇幅有限以及DAC0832的运用已经逐渐规范和成熟,此处就仅以主要的流程图进行说明。
图?
?
?
第5章系统的仿真与调试
5.1Protues介绍
Protues是由英国公司Labcenterelectronics开发出来的EDA工具软件。
是一种方便快捷的电子系统原理设计和仿真的工具。
Protues讲其他EDA工具的一些功能集中到一起,最大的特点是它将电路仿真实现了交互化,可视化的功能。
通过Protues,的虚拟仿真模式,用户可以对数字电路,模拟电路,单片机,混合电路等进行系统的仿真。
Protues还提供了一种图像显示的功能,可以将电路中变化的信号,以图像的形式展现出来,更加具体化,直观化。
其功能类似于示波器,但是却更完善。
Protues的提供了模拟信号跟数字信号两种可测试的信号,并且支持第三方的软件编译和代码调试。
在绘制好相应的原理图之后,调入编译好的目标代码,我们可以通过Protues模拟出实物的运行状态跟运行的过程。
Protues软件具有其它EDA工具软件的功能。
这些功能是:
(1)原理布图
(2)PCB自动或人工布线
(3)SPICE电路仿真
革命性的特点:
(1)互动的电路仿真。
用户甚至可以利用实时如RA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 函数 信号发生器 打印