基于单片机的信号发生器设计.docx

上传人:b****0 文档编号:9337576 上传时间:2023-05-18 格式:DOCX 页数:42 大小:792.53KB
下载 相关 举报
基于单片机的信号发生器设计.docx_第1页
第1页 / 共42页
基于单片机的信号发生器设计.docx_第2页
第2页 / 共42页
基于单片机的信号发生器设计.docx_第3页
第3页 / 共42页
基于单片机的信号发生器设计.docx_第4页
第4页 / 共42页
基于单片机的信号发生器设计.docx_第5页
第5页 / 共42页
基于单片机的信号发生器设计.docx_第6页
第6页 / 共42页
基于单片机的信号发生器设计.docx_第7页
第7页 / 共42页
基于单片机的信号发生器设计.docx_第8页
第8页 / 共42页
基于单片机的信号发生器设计.docx_第9页
第9页 / 共42页
基于单片机的信号发生器设计.docx_第10页
第10页 / 共42页
基于单片机的信号发生器设计.docx_第11页
第11页 / 共42页
基于单片机的信号发生器设计.docx_第12页
第12页 / 共42页
基于单片机的信号发生器设计.docx_第13页
第13页 / 共42页
基于单片机的信号发生器设计.docx_第14页
第14页 / 共42页
基于单片机的信号发生器设计.docx_第15页
第15页 / 共42页
基于单片机的信号发生器设计.docx_第16页
第16页 / 共42页
基于单片机的信号发生器设计.docx_第17页
第17页 / 共42页
基于单片机的信号发生器设计.docx_第18页
第18页 / 共42页
基于单片机的信号发生器设计.docx_第19页
第19页 / 共42页
基于单片机的信号发生器设计.docx_第20页
第20页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的信号发生器设计.docx

《基于单片机的信号发生器设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的信号发生器设计.docx(42页珍藏版)》请在冰点文库上搜索。

基于单片机的信号发生器设计.docx

基于单片机的信号发生器设计

摘要

信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。

传统常用的信号发生器绝大部分是由模拟电路构成的,当这种信号发生器用于低频信号输出时往往需要的RC值很大,不但参数准确度难以保证,而且体积和功耗都很大。

而基于单片机的信号发生器,精度高、体积小、调幅宽并且价格低,已成为数字信号发生器的发展趋势。

本文设计的信号发生器采用AT89C51作为主控芯片,由单片机生成波形编码,通过D/A转换电路实现数据的转换控制,利用数码管显示电路对输出波形的参数进行显示,可输出电压值为0~5V,频率为0~1000Hz的方波、锯齿波、三角波和正弦波四种波形信号。

本设计输出的信号,适用于多种低频信号源的使用场所。

采用这种方法设计的信号发生器具有成本低、显示效果好、抗干扰能力强和设计灵活方便等优点。

关键词:

信号发生器;AT89C51;D/A转换;单片机

Abstract

Signalgenerator,alsoknownassourceoroscillator,intheareasofproductionpracticesandtechnologyhasawiderangeofapplications.Curvesofvariouswaveequationcanbeexpressedbytrigonometricfunction.Canproduceavarietyofwaveforms,suchasthetrianglewave,sawtooth,squarewave(withsquarewave),sinewavesignalgeneratorcircuitiscalledthefunction.FunctionGeneratorexperimentsandequipmenttestingatthecircuithasaverywiderangeofuses.Mostoftraditionalcommonsignalgeneratorisformedbytheanalogcircuit,whenthissignalgeneratorforlowfrequencysignaloutputoftheRCvaluesoftenneedagreat,notonlyparameterisdifficulttoensureaccuracy,butalsohavegreatsizeandpowerconsumption.Thesignalgeneratorbasedonsinglechip,highprecision,smallvolume,adjustedwidthandlowprices.Hasbecomethedevelopmenttrendofdigitalsignalgenerator.

ThisarticledescribesthesignalgeneratorusingAT89C51asthemainchip,thewaveformgeneratedbythemicrocontrollercode,throughtheD/Aconversiondataconversioncontrolcircuit,usingdigitaldisplaycircuitparametersontheoutputwaveformdisplay,theoutputvoltageis0~5V,0~1000Hzfrequencysquarewave,sawtooth,trianglewaveandsinewavesignalsoffour.Thedesignoftheoutputsignalfortheuseofavarietyoflow-frequencysignalsourcesite.Inthiswaythesignalgeneratordesignlowcost,effects,goodanti-jammingcapabilityandtheadvantagesofdesignflexibility,haveabroadmarketprospect.

Keywords:

SignalGenerator;AT89C51;D/Aconversion;Single-chipMicrocontroller

目    录

1引言

1.1研究的意义与目的

信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。

信号发生器有很多种分类方法,其中一种方法可分为混和信号发生器和逻辑信号发生器两种。

其中混和信号发生器主要输出模拟波形;逻辑信号发生器输出数字码形。

混和信号发生器又可分为函数信号发生器和任意波形/函数发生器,其中函数信号发生器输出标准波形,如正弦波、方波等,任意波/函数发生器输出用户自定义的任意波形;逻辑信号发生器又可分为脉冲信号发生器和码型发生器,其中脉冲信号发生器驱动较小个数的的方波或脉冲波输出,码型发生器生成许多通道的数字码型。

传统常用的信号发生器绝大部分是由模拟电路构成的,当这种信号发生器用于低频信号输出时往往需要的RC值很大,不但参数准确度难以保证,而且体积和功耗都很大,而基于单片机的信号发生器,精度高、体积小、工作稳定、易于调试并且成本较低,已成为数字信号发生器的发展趋势。

因此本文设计了一款基于单片机的信号发生器。

1.2本文主要研究内容

本文设计的基于单片机的信号发生器,可输出电压值为0~5V,频率为0~1000Hz的方波、锯齿波、三角波和正弦波四种波形信号。

主要研究内容有:

1.采用AT89C51作为主控芯片;

2.采用D/A0832实现数据的转换控制;

3.利用数码管显示电路对输出波形的参数进行显示;

本系统输出的信号,适用于多种低频信号源的使用场所。

采用这种方法设计的信号发生器具有成本低、显示效果好、抗干扰能力强和设计方便等优点。

2设计方案的确定

2.1设计方案的比较

方案一:

利用振荡电路构成的信号发生器

电路构成的基本思路是将一种波形变换成另一种波形。

首先利用正弦波振荡电路输出正弦波电压,然后利用电压比较器将正弦波变成矩形波,而矩形波发生电路又是其他非正弦波发生电路的基础。

例如:

若将方波电压加在积分运算电路的输入端,则输出就将获得三角波电压;若改变积分电路正向积分和反向积分时间常数,使某一方向的积分常数趋于零,则可获得锯齿波。

常用正弦波振荡器主要由决定振荡频率的选频网络和维持振荡的正反馈放大器组成,这就是反馈振荡器。

按照选频网络所采用元件的不同,正弦波振荡器可分为LC振荡器、RC振荡器和晶体振荡器等类型。

其中LC振荡器和晶体振荡器用于产生高频正弦波,正反馈放大器既可以由晶体管、场效应管等分器件组成立,也可以由集成电路组成,但前者的性能可以比后者做得好些,且工作频率也可以做得更高。

但若产生的信号波形比较复杂时,电路的设计将变得很复杂。

加之传统振荡器电路由于有较大的温度漂移,需要较长的预热时间。

方案二:

利用单片机构成的信号发生器

波形的产生是通过单片机执行某一波形发生程序,向D/A转换器的输入端按一定的规律发送数据,从而在D/A转换电路的输出端得到相应的电压波形。

波形的周期可以通过单片机的输出周期来改变,并可根据需要选择单极性输出或双极性输出。

系统可由单片机、显示接口电路、波形转换(D/A)电路和电源四部分构成。

通过单片机输出各种波形发生程序,输入到D/A转换电路,然后经D/A电路转换输出得到各种所需的波形信号。

设计中加上按钮控制和LED显示器,则可通过按钮设定所需要的波形,并在LED上显示频率和电压,波形可用示波器显示。

通过软件编程来选择各种波形、幅值电压和频率,以驱动数码管显示电压幅值和频率,每种波形对应一个按钮。

此方案的优点是线路简单、结构紧凑。

若采用单片机设计,可大大简化信号发生器电路的设计,也能大大提高频率精度。

因此,选用单片机构成信号发生器的方案。

2.2系统整体设计方案

信号发生器电路的总体设计方框图如图2-1所示,控制器采用单片机,数据转换电路采用D/A转换电路,显示电路用共阴七段数码管实现动态扫描显示,通信接口利用MAX232实现与外部设备的连接。

 

图2-1硬件电路整体框图

3系统硬件设计

3.1主控芯片的选择

本设计采用的主控芯片是AT89C51。

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器,是低电压、高性能CMOS8位微处理器单片机。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。

所以本设计采用AT89C51作为主控芯片。

3.1.1AT89C51主要特性

AT89C51的主要特性如表3-1所示

表3-1AT89C51的主要特性

兼容MCS-51指令系统

4k可反复擦写(>1000次)ISPFlashROM

32个双向I/O口

4.5-5.5V工作电压

2个16位可编程定时/计数器

时钟频率0-33MHz

全双工UART串行中断口线

128x8bit内部RAM

5个中断源

低功耗空闲和省电模式

中断唤醒省电模式

3级加密位

看门狗(WDT)电路

软件设置空闲和省电功能

灵活的ISP字节和分页编程

双数据寄存器指针

3.1.2AT89C51主要管脚

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)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如表3-2所示:

管脚备选功能,P3口同时为闪烁编程和编程校验接收一些控制信号。

表3-2P3口的第二功能

口线

替代的第2功能

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(外部数据存储器读选通)

 

3.1.3AT89C51存储器结构

AT89C51的存储器属于哈佛结构,在物理结构上分为程序存储器和数据存储器空间,共有4个存储空间:

片内程序存储器和片外程序存储器空间以及片内数据存储器和片外数据存储器空间。

AT89C51程序存储器地址空间

AT89C51片内FlashROM的容量为4KB,地址为0000H-0FFFH;片外最多可扩至64KBROM,地址为1000H-FFFFH,片内外统一编址,如图3-2所示。

当引脚EA接高电平时,AT89C51的程序计数器PC在0000H-0FFFH范围内(即前4KB地址)执行片内FlashROM中的程序;当指令地址超过0FFFH后,就自动转向片外ROM中去取指令。

当引脚EA接低电平时,AT89C51片内ROM不起作用,CPU只能从片外FlashROM中取指令,地址从0000H开始编址。

AT89C51数据存储器地址空间

(1)片内RAM低128字节

00H-1FH地址安排为4组工作寄存器区,每组有8个工作寄存器(R0-R7),共占32个单元,见表所示。

通过对程序状态字PSW中RS1、RS0的设置,每组寄存器均可选作CPU的但前工作寄存器组。

若程序中不需要4组,那么其余也用作一般RAM单元。

CPU复位后,选中第0组寄存器为当前的工作寄存器。

工作寄存器后的16个字节(20H-2FH),可用位寻址方式访问其各位。

在AT89C51系列单片机的指令系统中,还包括许多位操作指令,这些微操作指令可以直接对这128位寻址,位地址为00H-7FH,如图3-1所示。

(2)片内RAM高128字节

AT89C51片内高128字节中,有21个特殊功能寄存器(SFR),离散地分布在80H-FFH的RAM中,如图3-1所示。

访问特殊功能寄存器只允许使用直接寻址。

 

图3-1RAM队列图3-2FlashROM队列

3.1.4AT89C51时钟及复位电路设计

复位电路分为上电自动复位和按钮复位两种方式,在程序跑飞时,使用复位电路可使程序恢复正常工作状态。

最简单的复位电路是上电自动复位,它的工作原理是:

加电瞬间电容通过充电来实现其电路如图3-3所示。

在通电瞬间,电容C通过电阻R充电,RST端出现正脉冲,用以复位。

只要电源VCC的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化。

为了保证复位高电平持续时间大于2个机器周期。

当采用晶体为12MHz时,可取C=10Uf,R=8.2KΩ。

但是这个电路要想起到重新复位的作用,只能先下电,再上电才行。

而如果在电容两端并联一个按键,就成了按键复位电路,只要按下这个按键,单片机就能复位而无需下电。

本设计采用手动复位和上电自动复位组合方式复位。

结构原理图如图3-4电路所示。

VCC上电时,电容充电,在1K电阻上出现电压,使得单片机复位;几个毫秒后,电容充满,1K电阻上电流降为0,电压也为0,使得单片机进入工作状态。

工作期间,按下按键,电容放电。

按键松手,电容又充电,在1K电阻上出现电压,使得单片机复位。

几个毫秒后,单片机进入工作状态。

 

图3-3上电自动复位

本设计采用AT89C51外接12MHZ晶振为单片机提供时钟频率,将AT89C51的XTAL1和XTAL2两端跨接石英晶体及两个电容可以构成稳定的自激振荡器。

电容取33pF,可稳定频率并对振荡频率有微调作用。

 

图3-4单片机时钟及复位电路

3.2D/A转换电路设计

D/A模块是本系统的核心部分,信号发生器的主要功能就是由这部分实现。

模块先接受来自单片机系统的数字量,通过DAC0832的转换变成模拟电流输出,通过电流-电压转换,得到模拟电压。

不同波形的采样数字量不断地被单片机系统送给转换模块,从而形成各种波形输出。

D/A转换电路的作用是将单片机输出的波形样值编码转换成模拟量值,完成双极性的波形输出。

本设计采用DAC0832作为转换芯片。

3.2.1DAC0832芯片

DAC0832是采用CMOS工艺制成的单片直流输出型8位D/A转换器。

主要由两个8位寄存器(输入寄存器和DAC寄存器)和一个8位D/A转换器组成。

常用八位的D/A转换器DAC0832内部结构资料:

芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。

D/A转换结果采用电流形式输出。

要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个功能。

运放的反馈电阻可通过RFB端引用片内固有电阻,还可以外接。

该片逻辑输入满足TTL电压电平范围,可直接与TTL电路或微机电路相接。

(1)DAC0832各引脚功能

●DI0~DI7:

数字信号输入端。

●ILE:

输入寄存器允许,高电平有效。

片选信号,低电平有效。

●WR1:

写信号1,低电平有效。

传送控制信号,低电平有效。

●WR2:

写信号2,低电平有效。

●IOUT1、IOUT2:

DAC电流输出端。

●RFB:

是集成在片内的外接运放的反馈电阻。

●VREF:

基准电压输入线(-10~+10V)。

●VCC:

工作电源(+5~+15V)。

●AGND:

模拟地NGND:

数字地。

D/A转换芯片输入时数字量,输出为模拟量。

模拟信号很容易受到电源和数字信号等干扰而引起波动。

为提高稳定性和减小误差,一般把数字地和模拟地分开。

DAC0832采用二次缓冲方式。

这样可以在输出的同时,采集下一个数据,从而提高转换速度,更重要的是能够在多个转换器同时工作时,实现多通道D/A的同步转换输出。

(2)主要的特性参数

●分辨率为8位。

●只需在满量程下调整其线性度。

●可与单片机或微处理器直接接口,需要时也可与微处理器连接而单独使用。

●电流稳定时间为1us。

●可双缓冲、单缓冲或直通数据输入。

●功耗低,约为200mW。

●逻辑电平输入与TTL兼容。

●单电源供电(+5~+15V)。

DAC0832是采用CMOS工艺制成的单片直流输出型8位D/A转换器。

主要由8位输入位寄存器、8位DAC寄存器和一个8位D/A寄存器组成,如图3-5所示。

 

 

图3-5DAC0832内部结构

8位输入寄存器用于存放CPU送来的数字量,使输入数字量得到缓冲和锁存,由

端加以控制;8位DAC寄存器用以存放待转换的数字量,由

端控制;8位D/A转换电路由8位T型电阻网络和电子开关组成,电子开关受8位DAC寄存器输出的数字量控制,T型电阻网络可以输出与数字量成正比的模拟电流。

3.2.2DAC0832波形产生原理

一般利用DAC0832实现复杂波形的输出,要首先利用采样定理对各波形进行抽样,然后对各采样值进行编码,得到的数字量存入各个波形表,执行程序时通过查表方式依次取出,经过D/A转换后输出就可以得到不同波形。

如果N个点构成波形的一个周期,则DAC0832输出N个样值点后,便得到一个周期的波形信号。

重复输出N点,得到第二周期。

利用单片机的晶振控制输出周期的速度,也就控制了输出波形的频率。

DAC0832将参考电压分成256份,单片机向DAC0832发送不同的数字编码,可以产生不同的输出。

假设给DAC0832输入的某个数字编码的值为D,则按照本系统的硬件设计,数模转换模块的输出电压应为U0=Uref*D/256。

3.2.3D/A转换电路

D/A转换电路由一片DAC0832和两片LM324AN组成。

DAC0832是具有20条引线的双列直插式CMOS器件,它内部具有两级数据寄存器,完成8位电流D/A转换,故不需外加电路。

DAC0832是电流输出型,示波器上显示波形,通常需要电压信号,电流信号到电压信号的转换可由运算放大器LM324AN实现,用两片LM324AN可以实现双极性输出。

单片机向DAC0832发送数字编码,产生不同的输出。

先利用采样定理对各波形进行抽样,然后把各采样值进行编码,得到的数字量存入各个波形表,执行程序时通过查表方法依次取出,经过D/A转换后输出就可以得到波形。

假如N个点构成波形的一个周期,则DAC0832输出N个样值点后,样值点形成运动轨迹,即一个周期。

重复输出N个点,成为第二个周期。

利用单片机的晶振控制输出周期的速度,也就是控制了输出的波形的频率。

这样就控制了输出的波形及其幅值和频率。

设计中为了实现模拟电压的输出,采用如图3-6所示电路,将DAC0832的数据输入端与AT89C51的P0口相连,用来接收单片机发送的数据。

输出端利用两片LM324AN实现波形的输出,经过第一片LM324AN功放后,输出反向电压;经过第二片LM324AN一倍功放后,输出正向电压。

从图3-6所示电路图中可以看出,当VREF接+5V时,输出电压OUT的范围是0~5V;当接+10V时,输出电压OUT的范围是0~10V;输入数字量的变化,将引起模拟量输出的变化。

 

图3-6D/A转换电路

3.3数码管显示电路设计

显示部分采用8位7段共阴数码管,驱动芯片分别是74LS48、74LS138,在软件设计时,要根据芯片的控制逻辑来写出显示程序所需要的显示数据表,所以需要了解这两个芯片的真值表,如表3-3、表3-4所示。

3.3.1显示原理

显示模块实现输出波形参数的显示功能。

显示部分用的是8位7段共阴数码管,使用的是动态扫描显示:

74LS48输出为段选信号,决定数码管显示的字型码;74LS138是位选信号,决定显示的数码管位。

在动态扫描时,每一个瞬间只使一位字符显示,在此瞬间,段选输出相应字符段选码,位选则在该显示位输出选通电平,以保证该位显示相应字符。

如此轮流,使每位分时显示该位应显示的字符。

 

表3-374LS48真值表

输入

输出

数字

DCBA

YaYbYcYdYeYfYg

字形

0

0000

1111110

0

1

0001

0110000

1

2

0010

1101101

2

3

0011

1111001

3

4

0100

0110011

4

5

0101

1011011

5

6

0110

0011111

6

7

0111

1110000

7

8

1000

1111111

8

9

1001

1110011

9

输入

输出

G1

+

CBA

0

X

XXX

11111111

X

1

XXX

11111111

1

0

000

01111111

1

0

001

10111111

1

0

010

11011111

1

0

011

11101111

1

0

100

11110111

1

0

101

11111011

1

0

110

11111101

1

0

111

11111110

表3-474LS138真值表

3.3.2显示电路

在显示模块部分,如图3-7,通过74LS138和74LS48实现对七段数码管的显示控制。

由于选用8位LED,为简化

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2