毕业设计论文基于单片机的信号发生器设计.docx

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

毕业设计论文基于单片机的信号发生器设计.docx

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

毕业设计论文基于单片机的信号发生器设计.docx

毕业设计论文基于单片机的信号发生器设计

毕业设计(论文)中文摘要

(题目):

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

摘要:

此函数信号发生器是基于单片机AT89C51设计而成的,能够产生频率范围在0Hz—535Hz的锯齿波、正弦波、三角波、矩形波四种波形,并且能够通过液晶屏1602显示各自的波形类型以及频率数值。

首先,单片机AT89C51经过程序设计的方法生成各种数字信号,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大。

接着,通过按键来控制四种波形的类型选择、和频率数值选择,并由液晶屏1602显示其频率数值和波形类型。

总的系统包括信号发生部分、数/模转换部分以及液晶显示部分三大部分,其中尤其对数/模转换部分和波形产生和变化部分进行详细论述。

关键词:

AT89C51DAC0832液晶屏1602

Title:

DesignofsignalgeneratorbasedonMCU

Abstract:

ThisfunctionsignalgeneratorisbasedontheAT89C51microcontrollerdesign,capableofgeneratingfrequencyrange0Hz-535Hzsawtooth,sine,trianglewave,squarewave,fourtypesofwaveforms,andeachtypeofwaveformandfrequencycanbedisplayedbytheLCDscreen1602value.First,AT89C51microcontrollerprogrammingmethodtogenerateavarietyofdigitalsignalthroughtheD/AconverterDAC0832convertsthedigitalsignalintoananalogsignal,filteredandamplified.Then,thekeytocontrolthefourwaveformtypeselection,andfrequencyselectionofvalues​​,thevalueofitsfrequencyandwaveformtypeisdisplayedbytheLCDscreen1602.Thetotalsystemincludingasignalgeneratingpartofthedigital/analogconvertingsectionandaliquidcrystaldisplaysectionofthreeparts,whereininparticularforthedigital/analogconversionpartandthewaveformgeneratingandchangingpartdiscussesindetail.

keywords:

AT89C51DAC0832LCDinscreen1602

 

目录

1引言3

1.1研究背景4

1.2国内外的研究现状和发展趋势5

2设计要求5

3设计总体方案5

4硬件电路实现7

4.1单片机最小系统的设计7

4.1.1时钟电路8

4.1.2复位电路8

4.2D/A转换电路9

4.3放大滤波电路12

4.4键盘模块的设计13

4.5显示模块的设计14

5软件程序设计15

6测试仪器及测试说明17

结论17

致谢17

参考文献18

附录A19

附录B20

 

1引言

信号发生器是一种常用信号源。

通常能够产生正弦波、方波、三角波、锯齿波等多种波形,因其时间波形可用某种时间函数来描述而得名。

函数信号发生器在电路实验和设备检测中具有十分广泛的应用,密切地联系着工业、农业、生物医学等产业,并对它们的发展起到极大的促进作用。

单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

随着单片机技术的快速发展与普遍应用,函数信号发生器的性能和性价比将会有更大的提升空间。

基于单片机的函数信号发生器将为智能化生活提供实质的帮助。

设计旨在通过查找文献资料提高自己独立学习、思考能力。

提高把理论运用到实践当中的能力,提升认识水平。

1.1研究背景

随着经济与科技不断发展,相应的测试仪器与手段也有了许多改善与提高,但是对之要求也不断提高。

波形发生器的信号已知,使用者根据具体的要求,将其作为激励源,测得感兴趣的参数。

信号源仿真各种测试信号,给待测电路,从而满足实现需求。

信号发生器在仿真实验占有重要地位,对于测试仪器来说也同样不可缺少,因此对相关信号发生器的研究开发有着一定的意义。

传统的信号发生器电路复杂,控制灵活度不够,成本也相对较高。

虽然我国所研制的波形发生器在一定程度上已有了一些成果,但与国外技术确实还存在一定差距,因此很有必要提高相关方面的研究。

利用单片机的控制灵活性,外设处理能力强等特点,实现频率与幅度可调的多种波形,这就克服了传统的缺点,具有良好的实用性。

同时根据程序的易控制性,可以容易实现各种复杂的调频条幅功能。

1.2国内外的研究现状和发展趋势

 

 我国的单片机应用始于80年代,虽然发展迅速,但相对于世界市场我国的占有率还很低。

到目前为止,由于我国的微电子技术和制造工艺都比较落后及国外单片机的竞争等原因,我国还没有设计生产出自己的单片机。

国内的单片机目前注重的还只是低中档的应用,普遍采用的是8或16位的单片机,对宏单片机和DSP等高档的应用还处于初始阶段。

在1980年以前,信号发生器全部属于模拟方式,借助电阻电容,电感电容、谐振腔、同轴线作为振荡回路产生正弦或其它函数波形。

频率的变动由机械驱动可变元件,如电容器或谐振腔来完成,往往调节范围受到限制。

1980年以后,数字技术日益成熟,信号发生器绝大部分不再使用机械驱动而采用数字电路。

数字合成技术使信号发生器变为非常轻便、覆盖频率范围宽、输出动态范围大、容易编程、适用性强和使用方便。

 单片机的发展趋势为:

低功耗与高性能、低电压、低噪声与高可靠性、采用CMOS技术、外围电路内装、串行扩展技术等。

同时,单片机的快速发展也带动着基于单片机的信号发生器的快速发展,如:

任意波形发生器、矢量波形发生器。

使得信号发生器的应用更加广泛。

2设计要求

1、利用AT89C51单片机设计的函数信号发生器产生正弦波、方波、三角波、锯齿波四种波形。

2、四种波形输出类型可通过按键选择。

3、波形频率可调(频率:

0~535Hz)。

4、需显示波形的频率。

3设计总体方案

该函数信号发生器采用单片机AT89C51作为数据处理及控制核心,由单片机完成人机界面、系统控制、信号的采集分析以及信号的处理和变换。

AT89C51单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:

中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通讯接口等,只要将AT89C51再配置键盘、数模转换及波形输出、放大电路等部分,即可构成所需的函数信号发生器。

首先,单片机AT89C51经过程序设计的方法生成各种数字信号,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大。

接着,通过按键来控制四种波形的类型选择、和频率数值选择,并由液晶屏1602显示其频率数值。

其信号发生器总体设计如图3.1所示。

图3.1函数信号发生器总体设计

4硬件电路实现

4.1单片机最小系统的设计

本次设计选用的单片机芯片是AT89C51单片机。

AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM)。

器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元。

用AT80C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可。

如图4.1所示。

图4.1单片机最小系统

4.1.1时钟电路

AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。

这个放大器与作为反馈元件的片外石英晶休或陶瓷谐振器一起构成自激振荡器。

外接石英晶体(或陶瓷诺振器)及电容C1,C2接在放大器的反馈回路中构成并联振荡电路。

如图4.2所示。

图4.2时钟电路

4.1.2复位电路

当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机开始复位。

单片机复位电路是指单片机的初始化操作。

图4.3复位电路

单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并使这个状态开始工作。

如图4所示。

上电后,由于电容C1的充电和反相门的作用,使RST持续一段时间的高电平。

当单片机已在运行当中时,按下复位键sj1后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。

如图4所示。

4.2D/A转换电路

D/AC0832是双列直插式8位D/A转换器。

能完成数字量输入到模拟量(电流)输出的转换。

DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。

如图4.4所示。

图4.4DAC0832内部结构图

D/ACA0832各引脚的功能如下:

D0~D7:

8位数据输入线,TTL电平,有效时间应大于90ns(否则锁

器的数据会出错);

ILE:

数据锁存允许控制信号输入线,高电平有效;

CS:

片选信号输入线(选通数据锁存器),低电平有效;

WR1:

数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。

由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;

XFER:

数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;

R2:

DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。

由WR1、WXFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。

IOUT1:

电流输出端1,其值随DAC寄存器的内容线性变化;

IOUT2:

电流输出端2,其值与IOUT1值之和为一常数;

图4.5D/ACA0832引脚图

Rfb:

反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;

Vcc:

电源输入端,Vcc的范围为+5V~+15V;

VREF:

基准电压输入线,VREF的范围为-10V~+10V;

AGND:

模拟信号地

DGND:

数字信号地

通常DAC0832有三种不同的工作方式,主要依据对数据锁存器和DAC锁存器的控制方式划分:

直通方式,单缓冲方式和双缓冲方式。

 

图4.6单片机与D/AC0832直通连接方式

本设计采用直通方式,当ILE接高电平,CS、WR1、WR2和XFER都接数字地时,DAC处于直通方式,8位数字量一旦到达DI7~DI0输入端,就立即加到8位D/A转换器,被转换成模拟量。

如图7所示。

4.3放大滤波电路

如图4.7所示,LM324的5管脚与DAC0832的(IOUT2)12管脚相连,LM324的6管脚与DAC0832的(IOUT1)11管脚相连,LM324的7管脚与DAC0832的REF(9)管脚相连.第一级运算放大器的作用是将DAC0832输出的电流信号转化为电压信号V1,第二级运算放大器的作用是将V1通过反向放大电路-(R2/R1)倍。

图4.7放大滤波电路图

在第二个运算放大器的输出端连了一个低通滤波器。

如果不加低通滤波器,也能够生成波形,但是产生的信号中毛刺很多,加一个低通滤波器不仅起到的滤波的作用,还起到了平滑的作用。

低通滤波器的截止频率F=1/(2*pi*R3*C6),这里我们选择R3为100欧姆电阻,C6为104电容,截止频率F=16KHZ。

4.4键盘模块的设计

通常单片机外部扩展键盘的方式有独立式键盘,矩阵键盘以及专门的键盘电路。

独立式键盘就是一个I/O口扩展一个开关,这种方式程序编写比较容易,只需要检测单片机I/O某一时刻是否为低电平就能检测出其的按键输入情况,而且按键和I/O口一一对应,所以能够轻松识别按键的值,缺点是由于一个I/O口

能连接一个按键,当按键数量比较多的时候,势必占用了大量的I/O口,对系统

的扩展造成巨大的困难。

图4.8独立键盘输入

由于本设计使用的按键数量并不多。

所以采用独立键盘能够减少系统电路的复杂程度,也大大简化了对编程的要求。

如图9所示。

4.5显示模块的设计

LCD1602液晶显示模块,它可以显示两行,每行16个字符,采用单+5V电源供电,外围电路配置简单。

LCD1602管脚功能如表4.1所示。

表4.1LCD1602管脚功能

引脚号

符号

状态

功能

1

Vss

电源地

2

Vdd

电源+5V

3

V0

对比度控制端

4

RS

输入

寄存器选择

5

R/W

输入

读、写操作

6

E

输入

使能信号

7

DB

三态

数据总线

8

DB

三态

数据总线

9

DB

三态

数据总线

10

DB

三态

数据总线

11

DB

三态

数据总线

12

DB

三态

数据总线

13

DB

三态

数据总线

14

DB

三态

数据总线

15

LEDA

输入

背光+5V

16

LEDK

输入

背地光

LCD1602主要管脚介绍:

V0:

液晶显示器对比度调整端,接地电源时对比度最高,对比度过高时会产生‘鬼影’,使用时可以通过一个10K的电位器调整对比度。

RS:

寄存器选择,高电平时选择数据寄存器;低电平时选择指令寄存器。

R/W:

读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和R/W共同为低电平时可以写入指令或者显示地址;当RS为高电平R/W为高电平R/W为低电平时可以写入数据。

E:

使能端,当E端由高电平跳变成低电平时,液晶模块执行指令。

LCD1602的八位数据端接单片机的P0口,其使能端RS、E分别接单片机的P3.5、P3.0。

通过软件控制液晶屏可以显示波形的种类以及波形的频率。

如图4.9所示。

图4.9LCD1602与单片机连接电路图

5软件程序设计

软件设计上,根据功能分了几个模块编程。

模块主要有:

主程序模块、外部中断0模块,外部中断1模块。

主程序模块:

先是进行初始化的工作,然后根据波形标志a,b,c,d的值进入相应的while循环。

在while循环中,单片机根据地址标志位不停低查表,然后把查得的值赋给DAC0832的数据口,然后地址标志位加一,并判断地址标志位是否等于64,如果是就置0再往下执行,如果不是直接往下执行。

然后根据频率标志位进行相应的延时。

如图5.1所示。

图5.1主程序流程图

外部中断0起到了控制波形,外部中断1一起到控制频率的作用。

如图5.2所示。

图5.2中断程序

6测试仪器及测试说明

测量仪器:

稳压电源、示波器、数字万用表。

测试说明:

将编译好的程序通过编程器下载到AT89C51芯片中,然后插到系统中即可独立完成所有的控制。

当程序初始化后,液晶屏的上只显示“Frequency:

”和“0050Hz”,默认状态输出波形为正弦波,按键1控制波形类型的选择。

按键2、3控制频率变化。

四种波形的频率可调范围,分别如下:

正弦波:

0—535Hz

方波:

0—535Hz

三角波:

0—535Hz

锯齿波:

0—535Hz

结论

基于单片机AT89C51的函数信号发生器能够产生正弦波、方波、锯齿波、三角波四种波形。

四种波形的类型和频率都可以通过按键调节,频率调节的范围是0到535HZ。

波形的类型和频率大小能够通过液晶屏1602显示。

 

致谢

本文是在老师的悉心指导下完成的,衷心感谢她在论文的写作期间给与我的热情帮助和指导。

李老师渊博的知识,认真负责的工作作风,平易近人的态度让我获益匪浅。

在此,向李老师表示最衷心的感谢和最诚挚的敬意。

同时,我还要感谢我的同学,在我的毕业设计过程中,我多次请教他们有关硬件、软件方面的问题,他们都耐心地为我讲解;在我的毕业论文写作过程中,他们提出了很多建设性的意见,并给了我很多启发。

参考文献

1程全.基于AT89C52实现的多种波形发生器的设计[J].周口师范学院学报,2005.22(5):

57~58.

2周明德.微型计算机系统原理及应用[M].北京:

清华大学出版社,2002.341~364.

3刘乐善.微型计算机接口技术及应用[M].北京:

航空航天大学出版社,2001.258~264.

4童诗白.模拟电路技术基础[M].北京:

高等教育出版社,2000.171~202.

5Intel,MicrocontrollerHandbook,1988[M].

附录A

附录B

源程序

#include

unsignedchari,sqar_num=128;//最大值100,默认值50

unsignedcharcho=0;//0:

正弦波。

1:

方波。

2:

三角波。

3:

锯齿波。

unsignedcharnum=0;

unsignedcharTIME0_H=0xff,TIME0_L=0xd9;//定时器0的初值设置;全局变量.对应正弦波,锯齿波50HZ

sbitchg=P1^0;//三角波100Hz.

sbitfreq_u=P1^1;

sbitfreq_d=P1^2;

sbitduty_u=P1^3;

sbitduty_d=P1^4;

sbitcs=P3^7;

bitflag=0;

unsignedintFREQ=50;//初始化频率,50HZ

sbitrs=P2^4;

sbitlcdcs=P2^6;

unsignedcharTempBuffer[7];

unsignedcharvalue1[]={"Frequency:

"};

 

voiddelay(unsignedintms)

{

unsignedinti,j;

for(j=0;j

for(i=0;i<120;i++);

}

unsignedcharcodesin_num[]={

0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,

2,3,3,4,4,4,5,5,6,6,7,7,8,8,9,9,

10,10,11,12,12,13,14,15,15,16,17,18,18,19,20,21,

22,23,24,25,25,26,27,28,29,30,31,32,34,35,36,37,

38,39,40,41,42,44,45,46,47,49,50,51,52,54,55,56,

57,59,60,61,63,64,66,67,68,70,71,73,74,75,77,78,

80,81,83,84,86,87,89,90,92,93,95,96,98,99,101,102,

104,106,107,109,110,112,113,115,116,118,120,121,123,124,126,128,

129,131,132,134,135,137,139,140,142,143,145,146,148,149,151,153,

154,156,157,159,160,162,163,165,166,168,169,171,172,174,175,177,

178,180,181,182,184,185,187,188,189,191,192,194,195,196,198,199,

200,201,203,204,205,206,208,209,210,211,213,214,215,216,217,218,

219,220,221,223,224,225,226,227,228,229,230,230,231,232,233,234,

235,236,237,237,238,239,240,240,241,242,243,243,244,245,245,246,

246,247,247,248,248,249,249,250,250,251,251,251,252,252,253,253,

253,253,254,254,254,254,254,255,255,255,255,255,255,255,255,255

};

 

//调节部分——频率

voidfreq_ud(void)

{

unsignedinttemp;

if(freq_d==0)

{FREQ--;}

elseif(freq_u==0)

{FREQ++;}

if(cho==1|cho==3)//锯齿波256次中断一周期,特殊处理下。

否则他的频率是100(+\-)n*2Hz.

{

temp=0xffff-3906/FREQ;//方波,三角波默认为100hz,切换后频率也为50HZ65336-10^6/(256*FREQ)

TIME0_H=temp/256;

TIME0_L=temp%256;

}

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

当前位置:首页 > 经管营销

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

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