基于单片机函数信号发生器的设计.docx
- 文档编号:14471987
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:37
- 大小:872.51KB
基于单片机函数信号发生器的设计.docx
《基于单片机函数信号发生器的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机函数信号发生器的设计.docx(37页珍藏版)》请在冰点文库上搜索。
基于单片机函数信号发生器的设计
基于单片机函数信号发生器的设计
摘要:
本文设计的函数发生器采用STC89C51单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、运放电路(LM324)、按键和LED显示灯电路等。
电路采用AT89S51单片机和一片DAC0832数模转换器组成数字式低频信号发生器。
通过按键控制可产生方波、锯齿波、三角波、正弦波等,同时用LED显示灯指示对应的波形。
所产生的波形幅度在一定范围内可调,波形准确并且平滑。
本文设计的函数信号发生器,它具有价格低、性能高和在低频范围内稳定性好、操作方便、体积小、耗电少等特点。
由于采用了LM324运算放大器,使其电路更加具有较高的稳定性能,性能比高。
此电路清晰,出现故障容易查找错误,操作简单、方便。
关键词:
单片机;信号发生器;运放器
SignalgeneratorestablishedonTheMCUfunctiondesign
Abstract:
FunctiongeneratorofthisdesignusesSTC89C51microcontrollerasthecontrolcore,theexternalD/Aconversioncircuit(DAC0832),opampcircuit(LM324),keyboardandLEDdisplaycircuitetc..ThecircuitusesAT89S51microcontrollerandaDAC0832DACdigitallowfrequencysignalgenerator.ThroughthebuttoncontrolcanproduceFangBo,sawtoothwave,trianglewave,sinewave,withLEDdisplaythecorrespondingwaveform.Thewaveamplitudegeneratedcanbeadjustedinacertainrange,accurateandsmoothwaveform.Functionsignalgeneratorisdesignedinthispaper,ithasthecharacteristicsoflowprice,highperformanceandlowfrequencyrange,goodstability,convenientoperation,smallsize,lesspowerconsumptionetc..DuetotheadoptionoftheLM324operationalamplifier,thecircuitstabilityhasmorehigh,highperformance.Thiscircuitisclear,thefaultiseasytofindtheerror,simpleoperation,convenient.
Keywords:
Singlechipmicrocomputer;Signalgenerator;Operationalamplifier
第一章绪论
1.1单片机概述
伴随着信息技术及集成电路技术的大规模快速发展,所谓单片机就是指“CPU即中央处理器、RAM即随机存取存储器、ROM只读存储器、(I/O)即输入输出接口、定时器/计数器,串行通信接口”,和其余一些关于计算机外部电路即外围等都可以聚集在相同的一块芯片上,从而组成了单片微型计算机”[1]。
单片机具有的特征有体积很小、造价低,性能稳定且使用时间周期长等。
其最占上风的点便是能够嵌入到种种类型的仪器、设备中,而这同样亦是其余网络甚至是计算机都无法做到的和完成的。
1.2课题研究的社会实用意义及应用领域
随着电子技术的发展,与此同时也相应的建议出了更为严格的要求,相应的试验设备和手段,在同一时间信号发生器已经成为测试仪器中的重要范畴,所以开发函数信号发生器具有重大意义。
而以前的大多数信号发生器都是采用的是特殊打造的芯片,在大方向控制方式方面相当愚钝且运营造价高[7]。
本设计充分利用了单片机的控制,使输出波形可以实现频率,幅值可调。
也可以实现调频,根据需要的各种方便的相位调制和振幅调制功能,具有良好的社会实践意义。
鉴于单片机的函数信号发生器有功率耗能低、抗干扰性强,造价低,所以它被大规模地运用在社会各个阶层领域,具有实用区域覆盖面大,影响力广等优点。
函数信号发生器是一种信号源经常被在各种科学信息实验中使用的,普遍地被应用在科学电子电路、自动操作系统以及教育实验等范畴中。
1.3研究内容
(1)要想产生不同的波形,必须要采用多种模块设计方案。
本文通过单元电路设计和软件模块设计,系统控制输出波形。
(2)该函数发生器采用STC89C51单片机作为控制核心,外围采用D/A转换电路(DAC0832)、运放电路(LM324)、按键和LED显示灯电路等组成,通过按键及幅值的调节可以观察信号发生器图形的变化。
第二章单元电路的设计
2.1系统设计
2.1.1系统方案的比较
(1)选题论证
制作低频信号发生器可以用一片DAC0832来实现,它可以分为单极性和双极性。
而本项目选择了单片双极性。
之所以选单片双极性是因为其精度高,滤波好,抗干扰效果好。
(2)方案选择
方案一:
STC89C51芯片中每一路模拟输出与DAC0832芯片相连,构成多个DAC0832同步输出电路,输出波形稳定,精度高,但是第二级DAC0832输出,发生错误并且电路连接复杂。
方案二:
STC89C51芯片中只有一路模拟输出或几路模拟信号非同步输出,这种情况下CPU对DAC0832执行一次写操作,则把一个数据直接写入DAC寄存器,DAC0832的输出模拟信号随之对应变化。
输出波形稳定,精度高,滤波好,抗干扰效果好,连接简单,性价比高。
因此我们设计中采用方案二。
2.1.2芯片选择模块
方案一:
STC89C51单片机是一种高性能8位单片微型计算机。
它把构成计算机的中央处理器CPU、存储器、寄存器、I/O接口制作在一块集成电路芯片中,从而构成较为完整的计算机。
同时,为什么选STC89C51而不选用AT89C51,那是因为STC89C51相对于AT89S51更强大,而C51增加的新功能包括:
⑴性能有了较大提升,价格基本不变,甚至比89C51更低;
⑵ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。
是一个强大易用的功能;
⑶最高工作频率为33MHz,大家都知道89C51的极限工作频率是24M,就是说S51具有更高工作频率,从而具有了更快的计算速度;
⑷具有双工UART串行通道;
⑸内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路;
⑹双数据指示器;
(7)兼容性方面:
向下完全兼容51全部字系列产品。
比如8051、89C51等等早期MCS-51兼容产品。
2.2单片机模块及电源模块的设计
2.2.1单片机模块
该函数发生器采用STC89C51单片机作为控制核心,外围采用D/A转换电路(DAC0832)、运放电路(LM324)、按键和LED显示灯电路构成。
目前,许多单片机已可在2.2V电压下运行,有的已能在1.2V或0.9V下工作,功耗降至μA级,一粒钮扣电池就可长期使用。
利用单片机采用程序设计方法来产生低频信号,其下限频率很低。
具有线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强,用途广泛等优点,并且能够对波形进行细微调整,改良波形,使其满足系统的要求。
只要对电路稍加修改,调整程序,即可完成功能升级。
这里介绍一种采用STC89C51单片机和一片DAC0832数模转换器做成的数字式低频信号发生器,它的特点是价格低、性能高,在低频范围稳定性好、操作方便、体积小、耗电少等。
信号发生器与其它相比还具有如下优点:
①较分立元件信号发生器而言,具有频率高,工作稳定,容易调试等特性;②较专用DDS芯片的信号发生器而言,具有结构简单,成本低等特性。
2.3D/A转换模块
D/A转换器,本文试验采用DAC0832,是一个8的分辨率D/A转换芯片,完全兼容的微处理器。
所用的这个DA芯片具有的优点有造价低、方便等单一接口转换等等,因此在单片机实际应用领域中得到普遍的应用。
D/A转换器是三个8位器件组成的,即输入锁存器、寄存器DAC、D/A转换电路,以及一个不是8位的转换控制电路。
其中DAC0832是熟练利用了CMOS工具制作而成的直流单片方面输出型的8位转换器。
下面分别为DAC0832的内部构造及引脚分布图:
图2-1DAC0832里面结构图
DAC0832里面包含有第一级的8位输入的寄存器和第二级的8位寄存器DAC,因此不再需要外部连接特殊制作的锁存器。
由DAC0832内部结构图中可以看出其包含两个不同级别的锁存器,其中第一级的锁存器被命名为:
输入寄存器,它有专属的锁存信号是ILE;而第二级的锁存器则被命名为DAC寄存器,而传输控制信号被作用于DAC寄存器的特定锁存信号。
在转换模块中,正是由于存在两级锁存器,这样使DAC0832在双缓冲器方式下工作,这种效果就是等于在输出模拟的函数信号在类似一样的时间采集到接下来的一个数字量,这样一来可以起到一个有效提高转换速度的效果。
除此以外,由于存在两级锁存器这样一来可以在不止一个的转换器D/A中同一时间进行工作,同一时间利用第二级的锁存信号的基础上可以实现不止一个的转换器相同步伐输出的功效。
DAC0832数模转换器的主要性能参数:
1.分辨率为8位;
2.电流稳定时间1us;
3.可单缓冲、双缓冲或直接数字输入;
4.只需在满量程下调整其线性度;
5.单一电源供电(+5V~+15V);
6.低功耗,200mW。
一般而言DAC0832有三种不一样的工作形式,区别最重要的是依据掌管控制方式的不同来划分的,即分为数据锁存器和DAC锁存器。
在一般的DAC0832有三种不同形式的工作方式,而最主要是基于不同的控制模式的电荷,即DAC锁存器。
数据锁存分为三种形式分别为:
单缓冲形式,直通形式以及双缓冲形式的。
此中贯穿形式:
在具体试验中WR1和WR2以及CS,其中XFER直接连接低电平端口,而DAC0832可根据需要在任意时刻转换输入的数据值的大小,用这种方式的优点在于比较方便简单,而且被占用的I/O口也会相对比较少,然而,当I/O需要延长时易受外界滋扰。
单缓冲区中的数据锁存,DAC锁存使能端连接在一起,只需要一套信号就可以控制两个寄存器的。
双缓冲模式是数据锁存,DAC锁存器独立控制,这是很容易消耗大量的I/0端口。
图2-2DAC0832的单缓冲方式连线图
2.4显示模块的设计
对于这次设计要求对输出波形的频率,幅值以及波形进行输出,因此需要扩展显示板块,经常使用的显示模块LCD有7端的数码显示管,由于实验仪器的限制,本次实验的波形在实验室中的示波器上显示出来,通过按键可以改变波形。
第三章硬件电路的设计
3.1系统框图
图3-1低频信号发生器系统框图
低频信号发生器系统主要由CPU、D/A转换电路、基准电压电路、电流/电压转换电路、按键和波形指示电路、电源等电路组成。
其工作原理为当分别每按下按键一次就会分别出现方波、锯齿波、三角波、正弦波,并且有数码管会指示是那种波形序号,另外,发光二极管发光说明系统处于工作状态。
3.2资源分配
软、硬件设计是设计中不可缺少的,为了满足功能和指标的要求,资源分配如下:
1.晶振采用12MHZ;
2.内存分配
P2口与DAC0832的DI0-DI7数据输入端相连。
P2口用来控制DAC0832的输入寄存器选择信号CS、输入寄存器写选通信号WR1及DAC寄存器写选通信号WR2和数据传送信号XFER。
3.3最小单片机系统设计
STC89C51功能特性概述:
STC89C51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的STC89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。
STC89C51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,STC89C51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
STC89C51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,STC89C51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
3.3.1STC89C51的引脚图
图3-2STC89C51的引脚图与实物图
3.3.2管脚说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
表3-1端口引脚图
I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚读端口。
实际上并不从外部读入数据而是把端口锁存器的内容读入到内部总线经过某种运算或变换后再写回到端口锁存器,只有读端口时才真正地把外部的数据读入到内部总线上面。
图中的两个三角形表示的就是输入缓冲器,CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作,这是由硬件自动完成的,不需要我们操心。
然后再实行读引脚操作,否则就可能读入出错。
为什么看上面的图如果不对端口置1端口锁存器,原来的状态有可能为0Q端为0Q^为1加到场效应管栅极的信号为1该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1。
若先执行置1操作则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入。
由于在输入操作时还必须附加一个准备动作,所以这类I/O口被称为准双向口,89C51的P0/P1/P2/P3口作为输入时都是准双向口。
接下来让我们再看另一个问题,从图中可以看出这四个端口还有一个差别除了P1口外,P0/P2/P3口都还有其他的功能
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.3.3STC89C51的晶振及其连接方法
CPU工作时都必须有一个时钟脉冲。
有两种方式可以向89S51提供时钟脉冲:
一是外部时钟方式,即使用外部电路向89S51提供始终脉冲,见图3--(a);二是内部时钟方式,即使用晶振由89S51内部电路产生时钟脉冲。
一般常用第二种方法,其电路见图3-3。
图3-389S51的时钟脉冲
图3-3中:
J一般为石英晶体,其频率由系统需要和器件决定,在频率稳定度要求不高时也可以使用陶瓷滤波器。
C1、C2:
使用石英晶体时,C1=C2=30(±10)pF
使用陶瓷滤波器时,C1=C2=40(±10)pF
3.3.4STC89C51的复位
使CPU开始工作的方法就是给CPU一个复位信号,CPU收到复位信号后将内部特殊功能寄存器设置为规定值,并将程序计数器设置为“0000H”。
复位信号结束后,CPU从程序存储器“0000H”处开始执行程序。
89S51为高电平复位,一般有3种复位方法。
ⅰ上电复位。
接通电源时
ⅱ手动复位。
设置一个复位按钮,当操作者按下按钮时产生一个复位信号。
ⅲ自动复位。
设计一个复位电路,当系统满足某一条件时自动产生一个复位信号。
图3-4为最简单的上电复位和手动复位方法。
89S51
图3-489C51的复位电路
3.3.5芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,STC89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
3.4各部分电路原理
3.4.1DAC0832芯片原理
①管脚功能介绍(如图3-5所示)
图3-5DAC0832管脚图
(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形电阻网络相连。
(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同步输出电路,程序简单化,但是电路线路连接比较复杂。
根据以上分析,我们的课题选择了单缓冲方式使用方便,程序简单,易操作。
②工作原理
DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。
8位输入寄存器用于存放主机送来的数字量,使输入数字量得到缓冲和锁存,由加以控制;8位DAC寄存器用于存放待转换的数字量,由加以控制;8位D/A转换器输出与数字量成正比的模拟电流;由与门、非与门组成的输入控制电路来控制2个寄存器的选通或锁存状态。
DAC0832与反相比例放大器相连,实现电流到电压的转换,因此输出模拟信号的极性与参考电压的极性相反,数字量与模拟量的转换关系为Vout1=-Vref×(数字码/256),若D/A转换器输出为双极性,如图3-6所示。
图3-6D/A转换器双极性输出电路
图3-6中,运算放大器A2的作用是把运算放大器A1的单向输出电压转换成双向输出电压。
其原理是将A2的输入端Σ通过电阻R1与参考电压VREF相连,VREF经R1向A2提供
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 函数 信号发生器 设计