函数发生器智能仪表设计Word格式文档下载.docx

上传人:b****1 文档编号:396233 上传时间:2023-04-28 格式:DOCX 页数:29 大小:252.67KB
下载 相关 举报
函数发生器智能仪表设计Word格式文档下载.docx_第1页
第1页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第2页
第2页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第3页
第3页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第4页
第4页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第5页
第5页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第6页
第6页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第7页
第7页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第8页
第8页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第9页
第9页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第10页
第10页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第11页
第11页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第12页
第12页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第13页
第13页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第14页
第14页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第15页
第15页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第16页
第16页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第17页
第17页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第18页
第18页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第19页
第19页 / 共29页
函数发生器智能仪表设计Word格式文档下载.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

函数发生器智能仪表设计Word格式文档下载.docx

《函数发生器智能仪表设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《函数发生器智能仪表设计Word格式文档下载.docx(29页珍藏版)》请在冰点文库上搜索。

函数发生器智能仪表设计Word格式文档下载.docx

三角波;

PWM;

单片机;

调频;

调幅

目录

第一章函数发生器的基本原理…………………………………………………….1

1.2函数发生器简介2

1.3函数发生器的基本原理2

第三章硬件设计……………………………………………………………………..4

3.1应用PWM实现DAC的理论分析4

3.2 用PWM实现DAC的转换6

3.2.1用PWM实现DAC的基本原理6

3.2.2PWM到DAC电压输出的电路实现6

3.3芯片STC89C51简介9

3.4标准串口接口电路12

第4章软件设计……………………………………………………………………15

4.1.Stc89c51外接12M晶振作为时钟频率15

4.2.定时器T0溢出中断15

4.3.键盘识别处理16

4.4LED显示18

4.5延时处理19

第四章总结…………………………………………………………………………20

参考文献……………………………………………………………………………..21

附录A………………………………………………………………………………22

附录B………………………………………………………………………………23

第一章函数发生器的基本原理

1.1单片机的发展概述

单片机是将CPU、存储器(RAM和ROM)、定时/计数器以及I/O接口等主要部件集成在一块芯片上的微型计算机。

单片机是单片微机(SingleChip)的简称,但准确反映单片机本质的名称应是微控制器MCU(MicroControllerUnit)。

目前国外已普遍称之为微控制器。

鉴于它完全做嵌入式应用,故又称为嵌入式微控制器(EmbeddedMicrocontroller)。

1.2函数发生器简介

1.3函数发生器的基本原理

1)波形发生电路:

这部分电路由函数发生器及频率、占空比控制电路组成,波形的选择、频率、占空比的调节都是由单片机来控制。

函数发生器是一个产生从1Hz到大于1000Hz的低失真正弦波、三角波、锯齿波或矩形(脉冲)波的高频波形发生器,它只要少量的外部元件。

频率和占空比可以由调整电流、电压或电阻来独立控制。

2)单片机智能控制电路

该部分电路由单片机、面板按键输入、频率、幅度显示及其各种控制信号的输出及指示电路组成。

第二章总体方案设计

波形的产生是利用PWM脉宽调制原理,通过STC89C52执行某一占空比可变的波形发生程序,向由低频滤波组成的D/A转换器的输入端按一定的规律发生数据,从而在输出端得到相应的电压波形。

在STC89C51的P1口接按扭,通过软件编程来实现波形的产生和频率的改变。

主程序的功能是:

开机以后负责查键,即做键盘扫描及显示工作,然后根据编程所按的键转到相应的子程序进行处理,主程序框图如图2.1所示。

图2.1主程序流程图

本设计中,需要对三角波的波形进行显示,还需要对它的周期进行改变,因此涉及到调用一些子程序,如延时子程序、中断子程序、键盘扫描子程序、LED显示子程序、产生PWM脉冲子程序。

总体的设计思路是:

在硬件电路上有四个按键,四个按键KEY1、KEY2、KEY3、KEY4分别来控制波形的频率输出显示,键盘的输入改变脉冲的频率,通过LED进行显示,中断程序用来实现方波的产生,控制占空比(PWM的输出),然后通过电容和电阻促成的低通滤波器对方波进行滤波,会在示波器上显示出三角波的波形,决定波形的输出。

本设计所应用到的硬件有单片机、显示接口电路、波形转换电路、显示仪器和电源等。

第三章硬件设计

本系统由单片机、显示接口电路、波形转换电路、显示仪器和电源等部分构成。

图3.1为本设计硬件设计框图:

图3.1设计硬件设计框图

3.1应用PWM实现DAC的理论分析

PWM是一种周期一定而高低电平的占空比可以调制的方波信号,图3.2是一种在电路中经常遇到的PWM波。

该PWM的高低电平分别为VH和VL,理想的情况VL等于0,但是实际中一般不等于0,这往往是应用中产生误差的一个主要原因。

图3.2PWM波形

图3.2PWM波形可以用分段函数表示为式

(1):

  

其中:

T是单片机中计数脉冲的基本周期,即单片机每隔T时间记一次数(计数器的值增加或者减少1),N是PWM波一个周期的计数脉冲个数,n是PWM波一个周期中高电平的计数脉冲个数,VH和VL分别是PWM波中高低电平的电压值,k为谐波次数,t为时间。

把式

(1)所表示的函数展开成傅里叶级数[1],得到式

(2)

……

(2)

从式

(2)可以看出,式中第1个方括弧为直流分量,第2项为1次谐波分量,第3项为大于1次的高次谐波分量。

(2)中的直流分量与n成线性关系,并随着n从0到N,直流分量从VL到VL+VH之间变化,这正是电压输出的DAC所需要的。

因此,如果能把式

(2)中除直流分量的谐波过滤掉,则可以得到从PWM波到电压输出DAC的转换,即:

PWM波可以通过一个低通滤波器进行解调。

(2)中的第2项的幅度和相角与n有关,频率为1/(NT),该频率是设计低通滤波器的依据。

如果能把一次谐波很好过滤掉,则高次谐波就应该基本不存在了。

根据上述分析可以得到如图2.3所示的从PWM到DAC输出的信号处理方块图,根据该方块图可以有许多电路实现方法,在单片机的应用中还可以通过软件的方法进行精度调整和误差的进一步校正。

图3.3PWM到DA信号的转换

在DAC的应用中,分辨率是一个很重要的参数,图3.2的分辨率计算直接与N和n的可能变化有关计算公式如式(3):

………………(3)

表1给出了不同N和n的情况下的分辨率。

  

从表1和式(3)可以看出,N越大DAC的分辨率越高,但是NT也越大,即PWM的周期或者式

(2)中的1次谐波周期也越大,相当于1次谐波的频率也越低,需要截止频率很低的低通滤波器,DAC输出的滞后也将增加。

一种解决方法就是使T减少,即减少单片机的计数脉冲宽度(这往往需要提高单片机的工作频率),达到不降低1次谐波频率的前提下提高精度。

在实际中,T的减少受到单片机时钟和PWM后续电路开关特性的限制。

如果在实际中需要微秒级的T,则后续电路需要选择开关特性较好的器件,以减少PWM波形的失真。

3.2 用PWM实现DAC的转换

3.2.1用PWM实现DAC的基本原理

)的数字信号,如图3.2所示。

如果PWM信号的占空比随时间变化,那么通过滤波之后的输出信号将是幅度变化的模拟信号。

在STC89C51中就是采用定时器来控制周期频率,进而来控制可变占空比

3.2.2PWM到DAC电压输出的电路实现

1.PWM信号的产生

PWM波形的产生:

给出设定的频率,计算出周期值,通过定时器来改变脉宽的高低电平,高电平占的宽度值逐渐加1,幅值的变化从00--0FF,当达到最大值0FF时,高电平的宽度在逐渐减1,幅值的变化从0FF–00,从而产生三角波。

具体流程图如图3.4所示:

图3.3PWM产生流程图

对于STC系列单片机STC89C51,可以利用定时/计数器的PWM模式,与比较匹配寄存器相配合,直接生成占空比可变的方波信号,即脉冲宽度调制输出PWM信号。

快速PWM模式的基本工作原理是:

定时/计数器在计数过程中,内部硬件电路会将计数值与比较寄存器中的值进行比较,当两个值相匹配(相等)时,能自动置位(清0)一个固定引脚的输出电平,而当计数器的值达到最大值时,则自动将该引脚的输出电平清0。

因此,在程序中改变比较寄存器中的值(通常在溢出中断服务程序中),定时/计数器就能自动产生不同占空比的方波信号(PWM)输出。

计数器的上限值决定了PWM的频率,而比较匹配寄存器的值决定了占空比的大小。

在实际应用中,除了要考虑如何正确的控制和调整PWM波的占空比,获得达到要求的平均电压的输出外,还需要综合考虑PWM的周期、PWM波占空比调节的精度、积分器的设计等。

根据PWM的特点,在使用定时/计数器设计输出PWM时应注意以下几点:

(1)首先应根据实际情况,确定需要输出的PWM波的频率范围。

这个频率与控制对象有关。

PWM波的频率越高,经过积分器输出的电压也越平滑。

(2)然后还要考虑占空比的调节精度。

占空比的调节精度越高,经过积分器输出的电压也越平滑。

但占空比的调节精度与PWM波的频率是一对矛盾,在相同的系统时钟频率时,提高占空比的调节精度,将导致PWM波的频率降低。

(3)由于PWM波的本身还是数字脉冲波,其中含有大量丰富的高频成分,因此在实际使用中,还需要一个好的积分器电路。

例如采用有源低通滤波器或多阶滤波器等,能将高频成分有效的除掉,从而获得比较好的模拟变化信号。

图3.4从PWM到D/A转换输出的信号处理框图

2.PWM到电压输出型D/A转换的实现这种方式在理论上很成熟,根据图3.4,这种方法的最简单实现方式为PWM波加RC滤波器来实现。

图3.5为最简单的实现方式,利用单片机产生PWM波,通过由电阻R和电容C构成的简单积分电路,滤掉高频进行平滑后,得到D/A转换的输出电压。

该电路没有基准电压,而且随着负载电流和环境温度的变化,精度很难保证。

另外,图3.4的D/A转换的负载能力也比较差,只适合与具有高输入阻抗的后续电路连接。

因此,图3.5的电路只能用在对D/A转换输出精度要求不高、负载很小的场合。

对精度和负载能力要求较高的场合,需要对图3.5的电路进行改进,增加基准电压、负载驱动等电路。

图3.5 简单的PWM到D/A转换电压输出电路

3.高分辨率D/A转换的硬件电路电路图中LM336-5为基准电压源,LM358输出放大器。

PWM波经过两级阻容滤波在B点得到直流电压信号,实现了D/A转换功能。

由于放大器的输入阻抗很大,二级阻容滤波的效果很好,B点的电压纹波极小,满足高精度要求。

输出放大器工作在电压跟随器方式,输出范围在(0—5.2)V之间,满足目前的(1—5)V传输标准。

如果需要输出电流信号,只需要加一级可变恒流输出电路即可。

图3.6基于PWM的D/A转换电路原理图

根据图3.4的结构,图3.5是最简单的实现方式。

图3.6中,PWM波直接从MCU的PWM引脚输出,该电路没有基准电压,只通过简单的阻容滤波得到DAC的输出电压。

R1和C1的具体参数可根据式

(2)的第2部分的一次谐波频率来选择,实际应用中一般选择阻容滤波器的截止频率为式

(2)的基波频率的1/4左右。

3.3芯片STC89C51简介

STC89C51指令代码完全兼容8051单片机,12时钟/机器周期和6时钟/机器

周期可任意选择,它的特点是:

.增强型6时钟/机器周期和12时钟/机器周期

.工作电压:

5.5V-3.4V(5V单片机)/3.8V-2.0V(3V单片机)

.工作频率范围:

0-40MHz,相当于普通8051的0-80MHz,实际工作频率可达48MHz。

.用户应用程序空间4K/8K/13K/16K/20K/32K/64K字节。

.片上集成1280字节/512字节RAM

.通用I/O口(32/36个),复位后为:

P1/P2/P3/P4是准双向口/弱上拉(普通8051传统I/O口),P0口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。

.ISP(在系统可编程)/IAP(在可编程),无需专用编程器/仿真器,可通过串口(P3.0/P3.1)直接下载用户程序,8K程序3秒即可完成一片。

.EEPROM功能

.看门狗

.内部集成MAX801专用复位电路,外部晶体20M以下时,可省外部复位电路

.共三个16位定时器/计数器,其中定时器0还可以当成两个8位定时器使用

.外部中断4路,下降沿中断或低电平触发中断。

PowerDown模式可由外部中断低电平触发中断方式唤醒。

.通用异步串行口(UART),还可以用定时器软件实现多个UART。

.工作温度范围:

0-75℃/-40-+85℃。

.封装:

LQFP-44,PDIP-40,PLCC-44,如选择STC89系列,要优先选择LQFP-44封装。

管脚说明:

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的一些特殊功能口,如下表所示:

  口管脚备选功能

  P3.0RXD(串行输入口)

  P3.1TXD(串行输出口)

  P3.2/INT0(外部中断0)

  P3.3/INT1(外部中断1)

  P3.4T0(记时器0外部输入)

  P3.5T1(记时器1外部输入)

  P3.6/WR(外部数据存储器写选通)

  P3.7/RD(外部数据存储器读选通)

  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:

来自反向振荡器的输出。

  振荡器特性:

  XTAL1和XTAL2分别为反向放大器的输入和输出。

该反向放大器可以配置为片内振荡器。

石晶振荡和陶瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

3.4标准串口接口电路

利用STC89C51P1口输出方波脉冲频率分别为17HZ、13HZ、10HZ、8HZ。

MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。

内部结构基本可分三个部分:

第一部分是电荷泵电路。

由1、2、3、4、5、6脚和4只电容构成。

功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。

第二部分是数据转换通道。

由7、8、9、10、11、12、13、14脚构成两个数据通道。

其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。

8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。

TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;

DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。

第三部分是供电。

15脚GND、16脚VCC(+5v)

图3.7标准串口接口电路

3.5显示电路

74LS164是串行输入并行输出的移位寄存器。

它具有两个串行输入端(A和B)和8位并行输出端(QA-QH)。

引脚8为时钟脉冲接收端,和单片机的TXD引脚相连,用以控制移位寄存器的移位节奏。

串行输入端A和B具有允许和禁止的功能。

图中由于不需要选通,所以,将A和B两端接在一起。

当被显示数据从RXD端输出到移位寄存器74LS164的输入端A、B时,74LS164将串行数据转换成8位输出码QA-QH,然后经驱动器加到4位共阴极LED数码管显示器上。

通常用移位的方法对各数码管进行扫描显示。

图3.8LED显示电路

第4章软件设计

4.1.Stc89c51外接12M晶振作为时钟频率

并采用电源复位设计。

复位电路采用上电复位,它的工作原理是,二极管的作用在于停电后,给电容C提供迅速放电通路,保证再上电时RST为高电平,使CPU可靠复位。

正常工作时,二极管VD反偏,对电路没有影响;

断电后,VCC逐渐下降,当Vcc=0时,相当于Vcc端与地等电位。

这时电容C通过VD迅速放电,放电通路为C正极—电源ycc端(与地等电位)—二极管VD正极—二极管VD负极—C负极,保证再上电时,RST端为高电平,CPU可靠复位。

Stc89c51的P2.1口做为PWM的接口。

用定时/计数器作为中断源。

不同的频率值对应不同的定时初值,允主程序和子程序都存放在STC89C51单片机中。

4.2.定时器T0溢出中断

当开始调用中断子程序时,根据给定的设定频率值,计算出周期,定时器T0的初值设置根据所要显示的频率值,进行重新设置,频率不同所需要的处置也不相同,计数器T0开始计数,每1us自动加1,当计数值小于或等于通过设定频率值所计算出的周期的计数脉冲设定值N时,输出的均是高电平,否则输出低电平;

如果计数值n==N时,计数值n自动清零。

只要有中断请求,中断程序就一直循环调用。

具体程序流程图,如图4.1所示:

图4.1定时器中断流程图

4.3.键盘识别处理

本设计中的键盘只有四个,分别连接P14-P17口。

所以,设计时根据软件的编程实现对数据的改变。

KEY1、KEY2、KEY3KEY4键按下,分别调用LED显示的子程序对频率值依次进行显示,频率值分别是0005HZ,00010HZ,0014HZ,0020HZ。

对于波形的频率设计思路:

频率有四只七段管进行显示。

按下KEY1、KEY2、KEY3、KEY4键,LED上依次显示的是频率的0005HZ,00010HZ,0014HZ,0020HZ。

按键与单片机的接口如图4.2所示:

实现按键扫描步骤:

每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。

矩阵的行线和列线分别通过两并行接口和CPU通信。

每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。

键盘处理程序的任务是:

确定有无键按下,判断哪一个键按下,键的功能是什么;

还要消除按键在闭合或断开时的抖动。

两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。

图4.2按键接口电路

具体执行方案:

上电后先对键盘进行扫描,调用键盘扫描子程序,判断是否有键按下,若有键按下,判断是否是KEY1按下,是,则调用KeyRead()和LED显示程序,则所有LED显示0005,没有,则扫描判断KEY2,KEY2是否按下,是,则调用KeyRead()和LED显示程序,所有LED1显示0010,没有,则继续扫描扫描判断KEY3,KEY3是否按下,是,则调用KeyRead()和LED显示程序,LED2显示0014,没有,则扫描判断KEY4,KEY4是否按下,是,则调用KeyRead()和LED显示程序,LED显示0020。

所有键都没有按下,循环扫描。

流程图如图4.2所示:

图4.3按键扫描流程图

4.4LED显示

本设计用到的是LED静态显示方式。

所谓静态显示方式,就是当显示器显示某一个字符时,相应的发光二极管恒定地导通或截止。

静态显示时,较小的电流能得到较高的亮度。

这是由于显

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

当前位置:首页 > 外语学习 > 韩语学习

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

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