基于单片机的函数信号发生器设计汇总.docx
- 文档编号:24318859
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:21
- 大小:373.29KB
基于单片机的函数信号发生器设计汇总.docx
《基于单片机的函数信号发生器设计汇总.docx》由会员分享,可在线阅读,更多相关《基于单片机的函数信号发生器设计汇总.docx(21页珍藏版)》请在冰豆网上搜索。
基于单片机的函数信号发生器设计汇总
毕业设计(论文)
题目:
基于单片机的函数信号发生器设计
学院:
专业名称:
准考证号:
学生姓名:
2013年12月5日
摘要
本文以AT89C51单片机为核心设计了一个低频函数信号发生器。
信号发生器采用了数字波形合成技术,通过硬件电路和软件程序相结合,输出自定义波形,如正弦波、方波、三角波、锯齿波,波形的频率和幅度在一定范围内可任意改变。
波形和频率的改变可以通过软件来控制,幅度的改变可以通过硬件实现。
本文介绍了波形的生成原理、硬件电路和软件部分的设计原理。
本系统可以产生最高频798.6HZ的波形。
该信号发生器具有体积小、价格低、性能稳定、功能齐全等优点。
关键词:
AT89C51;单片机;DAC;数字波形合成;低频信号发生器
目录
第一章绪论………………………………………………………………………1
1.1研究内容……………………………………………………………………1
1.2课题的来源与技术背景……………………………………………………1
1.3研究信号发生器的目的及意义……………………………………………1
1.4单片机概述…………………………………………………………………2
1.5信号发生器的分类…………………………………………………………2
第二章方案的设计与选择…………………………………………………………2
2.1方案的比较…………………………………………………………………2
2.2设计原理……………………………………………………………………3
2.3设计思想………………………………………………………………………4
2.4设计功能……………………………………………………………………4
第三章硬件设计……………………………………………………………………5
3.1硬件原理框图………………………………………………………………5
3.2主控电路……………………………………………………………………5
3.3数/模转换电路………………………………………………………………7
3.4波形产生模块设计……………………………………………………………7
3.5键盘显示模块的设计………………………………………………………8
3.6时钟电路………………………………………………………………………9
3.7运算放大电路和低通滤波电路………………………………………………9
3.8显示电路……………………………………………………………………10
3.9程序流程图…………………………………………………………………10
第四章安装调试及测量数据分析…………………………………………………11
4.1调试过程……………………………………………………………………11
4.2出现的问题与解决的方法…………………………………………………11
4.3实验波形图…………………………………………………………………12
第五章小结……………………………………………………………………13
参考文献……………………………………………………………………………13
附录…………………………………………………………………………………14
第一章绪论
1.1研究内容
本文是做基于单片机的信号发生器的设计,将采用编程的方法来实现三角波、锯齿波、矩形波、正弦波的发生。
根据设计的要求,对各种波形的频率和幅度进行程序的编写,并将所写程序装入单片机的程序存储器中。
在程序运行中,当接收到来自外界的命令时,需要输出某种波形时可以调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,将波形从信号发生器的输出端口输出。
1.2课题的来源与技术背景
无论是在生产上还是在科研与教学上,信号发生器都是电子工程师仿真实验的最佳工具。
随着我国经济和科技的发展,对相应的测试仪器和测试手段也提出了更高的要求,信号发生器己成为测试仪器中至关重要的一类,因此开发信号发生器具有重大的意义。
传统的信号发生器采用专用芯片,不仅成本高,而且控制方式不灵活。
本设计充分利用单片机能灵活的控制、丰富的外设处理能力,并采用DDS技术,实现频率、幅值可调的函数波形的输出,同时可以根据需要方便地实现各种比较复杂的调频、调相和调幅功能,其具有良好的实用性。
根据其频率发生方法又可分为谐振法和合成法两种。
一般的传统发生器都是采用的谐振法,即用具有频率选择性的回路来产生正弦振荡,从而来获得所需频率,也可以根据频率合成技术来获得所需频率。
利用频率合成技术制成的合成波形发生器,通常被称为频率合成器或频率综合器。
频率综合器是指利用频率合成技术合成的频率源,它常常是没有调制的,也没有足够宽的和足够准确的输出电平调节,其工作范围往往也不宽,最小频率间隔也比较大,一般用作专用设备使用,或做某一个系统中的一个组成部分。
1.3研究信号发生器的目的及意义
波形发生器是信号源的一种,主要给被测电路提供所需要的己知信号(各种波形),然后用其它仪表测量感兴趣的参数。
可见信号源在各种实验应用和试验测试处理中,它的应用非常广泛。
它不是测量仪器,而是根据使用者的要求,作为激励源,仿真各种测试信号,提供给被测电路,以满足测量或各种实际需要。
随着信息技术的蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。
不过现在新的台式仪器的形态,和几年前的己有很大的不同。
这些新一代台式仪器具有多种特性,可以执行多种功能。
而且外形尺寸与价格,都比过去的类似产品减少了一半。
1.4单片机概述
随着大规模集成电路技术的发展,中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、(I/O)接口、定时器/计数器和串行通信接口,以及其他一些计算机外围电路等均可集成在一块芯片上构成单片微型计算机,简称为单片机。
单片机具有体积小、成本低、性能稳定、使用寿命长等特点。
其最明显的优势就是可以嵌入到各种仪器、设备中,这是其他计算机和网络都无法做到的。
1.5信号发生器的分类
信号发生器应用广泛,种类繁多,性能各异,分类也有很多。
按照频率范围分类可以分为:
超低频信号发生器、低频信号发生器、视频信号发生器、高频波形发生器、甚高频波形发生器和超高频信号发生器。
按照输出波形分类可以分为:
正弦信号发生器和非正弦信号发生器,非正弦信号发生器又包括:
脉冲信号发生器,函数信号发生器、扫频信号发生器、数字序列波形发生器、图形信号发生器、噪声信号发生器等。
按照信号发生器性能指标可以分为一般信号发生器和标准信号发生器。
前者指对输出信号的频率、幅度的准确度和稳定度以及波形失真等要求不高的一类信号发生器。
后者是指其输出信号的频率、幅度、调制系数等在一定范围内连续可调,并且读数准确、稳定、屏蔽良好的中、高档信号发生器。
第二章方案的设计与选择
2.1方案的比较
方案一:
采用单片函数发生器(如8038),8038可同时产生正弦波、方波等,而且方法简单易行,用D/A转换器的输出来改变调制电压,也可以实现数控调整频率,但产生信号的频率稳定度不高。
方案二:
采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的
要求,且电路复杂。
方案三:
采用单片机编程的方法来实现。
该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。
此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做的很高。
鉴于方案一的信号频率不够稳定和方案二的电路复杂,频率覆盖系数难以达标等缺点,所以决定采用方案三的设计方法。
它不仅采用了软件和硬件的结合,即用软件控制硬件的方法来实现,从而使得信号频率的稳定性和精度的准确性得以保证,而且它使用的几种元器件都是常用的元器件,容易得到,且价格便宜,以使所需硬件的成本不会太高。
2.2设计原理
数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。
89C51单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:
中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通讯接口等,只要将89C51配置键盘及其接口、显示器及其接口、数/模转换及其波形输出、指示灯及其接口等四部分,即可构成所需的波形发生器,其信号发生器构成原理框图如图(2-1)所示。
输出
2.
图(2-1)
89C51是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。
当数字信号经过接口电路到达转换电路时,将其转换成模拟信号,也就是所需要的输出波形。
波形ROM表示将信号一个周期等间距地分离成64个点,储存在单片机得ROM内。
具体ROM表示通过MATLAB生成的,例如正弦表,MATLAB生成的程序如下:
x=0:
2*pi/64:
2*pi;y=round(sin(x)*127)+128
2.3设计思想
(1)利用单片机产生方波、正弦波、三角波和锯齿波等信号波形,信号的频率和幅度可变。
(2)将一个周期的信号分离成256个点(按X轴等分),每两点之间的时间间隔为
T,用单片机的定时器产生,其表示式为:
T=T/256。
如果单片机的晶振为12MHz,采用定时器方式0,则定时器的初值为:
X=213—
T/Tmec(2.1)
定时时间常数为:
TL=(8192—
T)/MOD256(2.2)
TH=(8192
T)/256(2.3)
MOD32表示除32取余数
(3)正弦波的模拟信号是D/A转换器的模拟量输出,其计算公式为:
Y=(A/2sin
t)+A/2(其中A=VREF)(2.4)
t=N
T(N=1~256)(2.5)
那么对应着存放在计算机里的这一点的数据为:
(2.6)(4)一个周期被分离成256个点,对应的四种波形的256个数据存放在以TAB1--TAB4为起始地址的存储器中。
2.4设计功能
(1)本方案利用8155扩展8个独立式按键,6个LED显示器。
其中“S0”号键代表方波输出,“S1”号键代表正弦波输出,“S2”号键代表三角波输出,“S3”号键代表锯齿波输出。
(2)“S4”号键为10Hz的频率信号,“S5”号键为100Hz的频率信号,“S6”号键为500Hz的频率信号,“S7”号键为1KHz的频率信号,6个LED显示器输出信号的频率值,选用共阳极LED。
(3)利用两片DAC0832实现幅度可调的信号源,(其中一片用来调节幅度,另外一片用来实现信号源的输出)。
(4)频率范围:
10~1000Hz。
(5)输出波形幅度为0~5V。
第三章硬件设计
3.1硬件原理框图
硬件原理方框图如图(3-1)所示。
图(3-1)
3.2主控电路
设计中主要采用AT89C51型单片机,它具有如下优点:
(1)拥有完善的外部扩展总线,通过这些总线可方便地扩展外围单元、外围接口等。
(2)该单片机内部拥有4K字节的FLASHROM程序存储器空间和256字节的RAM数据存储空间,完全可以满足程序的要求。
由于该芯片可电可擦写[1],故可重复使用。
如果更改程序内容,可将芯片拿下重新烧写。
(3)该单片机与工业标准的MCS-51型机的指令集和输出引脚兼容。
AT89C51单处机内部设置两个16位可编程的定时器/计数器T0和T1,它们具有计数器方式和定时器方式两种工作方式及4种工作模式。
在波形发生器中,将其作定时器使用,用它来精确地确定波形的两个采样点输出之间的延迟时间。
模式1采用的是16位计数器,当T0或T1被允许计数后,从初值开始加计数,最高位产生溢出时向CPU请求中断。
中断系统是使处理器具有对外界异步事件的处理能力而设置的。
当中央处理器CPU正在处理某件事的时候外界发生了紧急事件,要求CPU暂停当前的工作,转而去处理这个紧急事件。
在波形发生器中,只用到片内定时器/计数器溢出时产生的中断请求,即是在AT89C51输出一个波形采样点信号后,接着启动定时器,在定时器未产生中断之前,AT89C51等待,直到定时器计时结束,产生中断请求,
[1]电可擦写[1]:
在设备上擦除芯片上已有的信息,芯片可以重新编程,即芯片的一种写入方法。
AT89C51响应中断,接着输出下一个采样点的信号,如此循环产生所需要的信号
波形。
主控电路图如图(3-2)所示,AT89C51从P0口接收来自键盘的信号,并通过P2口输出一些控制信号,将其输入到8155的信号控制端,用于控制其信号的输入、输出。
如果有键按下,则在读控制端会产生一个读信号,使单片机读入信号。
如果有信号输出,则在写控制端产生一个写信号,并将所要输出的信号通过8155的PB口输出,并在数码管上显示出来。
图(3-2)
89C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。
用89C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图(3-3)89C51单片机最小系统所示。
由于集成度的限制,最小应用统只能用作一些小型的控制单元。
其应用特点:
1)有可供用户使用的大量I/O口线;
2)内部存储器容量有限;
3)应用系统开发具有特殊性。
图(3-3)
3.3数/模转换电路
由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数/模转换器DAC0832。
DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。
但实际上,DAC0832输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是准模拟量的输出。
DAC0832是电流型输出,在应用时外接运放使之成为电压型输出。
数/模转换电路如图(3-4)所示。
根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:
直通方式、单缓冲方式和双缓冲方式。
本设计选用直通方式。
DAC0832的数据口和单片机的P0口相连。
CSDA:
片选信号输入线(选通数据锁存器),低电平有效;
WR:
数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。
由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存。
如图(3-4)
3.4波形产生模块设计
由单片机采用编程方法产生三种波形,通过DA转换模块DAC0832在进行过滤波放大之后输出。
其电路图(3-5)波形产生电路如下:
图(3-5)
如上图所示,单片机的P0口连接DAC0832的八位数据输入端,DAC0832的输出端接放大器,经过放大后输出所要的波形。
DAC0832的为八位数据并行输入的,其结构图(3-6)DAC0832的内部结构如下:
图(3-6)
3.5键盘显示模块的设计
本系统采用独立键盘,其连接电路图如图(3-7)按键接口如下:
图(3-7)为键盘接口电路的原理图,图中键盘和8155的PA口相连,AT89C51的P0口和8155的D0口相连,AT89C51不断的扫描键盘,看是否有键按下,如果有,则根据相应按键作出反应。
其中“S0”号键代表方波输出,“S1”号键代表正弦波输出,“S2”号键代表三角波输出,“S3”号键代表锯齿波输出,“S4”号键为10Hz的频率信号,“S5”号键为100Hz的频率信号,“S6”号键为500Hz的频率信号,“S7”号键为1KHz的频率信号。
图(3-7)
3.6时钟电路
8051单片机有两个引脚(XTAL1,XTAL2)用于外接石英晶体和微调电容,从而构成时钟电路,其电路图如图(3-8)时钟电路所示。
电容C1、C2对振荡频率有稳定作用,其容量的选择为30pf,振荡器选择频率为12MHz的石英晶体。
由于频率较大时,三角波、正弦波、锯齿波中每一点的延时时间为几微秒,故延时时间还要加上指令时间才能获得较大的频率波形。
图(3-8)
3.7运算放大电路和低通滤波电路如图(3-9)
图(3-9)
LM324的5管脚与DAC0832的(IOUT2)12管脚相连,LM324的6管脚与DAC0832的(IOUT1)11管脚相连,LM324的7管脚与DAC0832的REF(9)管脚相连。
第一级运算放大器的作用是将DAC0832输出的电流信号转化为电压信号V1,第二级运算放大器的作用是将V1通过反向放大电路-(R2/R1)倍。
根据要求输出的电压在0-5V可调,而V1的电压大约是5V,所以R1选择5K的电阻,R2选择10K的电位器,这样最大的输出电压为5*(10/2)=10,最小电压为0,可以实现要求的电压0-5V。
在第二个运算放大器的输出端连了一个低通滤波器。
如果不加低通滤波器,也能够生成波形,但是产生的信号会有毛刺,如果加一个低通滤波器不仅能起到滤波的作用,还能起到平滑的作用。
低通滤波器的截止频率F=1/(2*pi*R3*C6),这里我们选择R3为100欧姆的电阻,C6为104电容,截止频率F=16KHZ。
实验表明,此时的输出波形效果不错。
3.8显示电路
显示电路是用来显示波形信号的频率,从而使得整个系统更加合理,如果从经济的角度出发,显示器件采用LED数码管显示器较好。
LED数码管是采用共阳极接法,当主控端口输出一个低电平后,与其相对应的数码管即变亮,显示所需数据。
其器件模型如图(3-10)所示。
图(3-10)
3.9程序流程图
本文中子程序的调用是通过按键的选择来实现,在取得按键相应的键值后,启动计时器和相应的中断服务程序,再直接查询
程序中预先设置的数据值,通过转换输出相应的电压,从而形成所需的各种波形。
主程序的流程图如图(3-11)所示,在程序开始运行之后,首先是对8155进行初始化,之后判断信号频率值,如符合所需的频率,则重置时间常数,
并通过显示器显示出来,如不符合则返回。
在中断结束后,还要来判断波形是否符合,如符合,则显示其频率,如不符合则返回,重新判断。
图(3-11)
图(3-12)为各波形子程序的流程图。
如图所示,在中断服务子程序开始后,通过判断来确定各种波形的输出,当判断选择的不是方波时,则转向对正弦波进行判断,如此反复。
如果选择的是方波,则用查表的方法求出相应的数据,并通过D/A转换器将数据转换成模拟信号,形成所需波形信号。
图(3-12)
第四章安装调试及测量数据分析
4.1调试过程
1)不通电,检查各线路连接是否正常。
2)首先是调试单片机部分,D/A转换器和运算放大器芯片不接。
用STC_ISP_V483软件通过串口输入程序,看是否可以正常输入程序。
3)当可以正常输入程序时,给89C51单片机输入一个让所有I/0口一会儿输入0,延时,再输出1的程序,以此类推。
并用万能表不断测量各I/O口的电压是不是一会儿高,一会儿低。
4)安上D/A转换器和运算放大器芯片,给单片机输入一个输出正弦波的测试程序,通过示波器看输出是否正常。
4.2出现的问题与解决的方法
1)调试单片机的串口时,发现不能正常的输入程序。
我想可能是单片机坏了,于是借了一块学习板测试了一下单片机芯片,发现可以正常下载。
这说明很可能是LM324的电路出了问题。
我仔细查看了电路图,又上网查了下其他的LM324的电路图,发现我的电路图和别人的不一样。
通过看书,得知,电路图中LM3242的TIOU1接串口的第3脚。
而其他书上有些电路图却是LM324的TIOU1接到了串口的第2脚。
于是我将LM324的TIOU1接串口的第2脚,再输入程序,终于可以常下载了。
2)刚开始写的测试程序输出的波形失真很大。
我想可能是波形的ROM表里的数据值过小,导致DA输出的误差很大。
因而卧将波形的ROM表里的数据值调大,在测试时发现波形变得好多了。
3)调试波形的时候我发现矩形波的失真比较大。
我想到可能是低通滤波器的截止频率太低了,因而我将RC低通滤波器的电阻由1K换成了100欧姆,效果好了很多。
4.3实验波形图如图(4-1)、图(4-2)、图(4-3)、图(4-4)
锯齿波三角波
图(4-1)图(4-2)
正弦波方波
图(4-3)图(4-4)
第五章小结
通过这次毕业设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学三年的学习成果,进一步加深了我对专业知识的了解和认识以及动手的能力。
虽然在这次设计中对于所学知识的运用和衔接还不够熟练,作品完成的还不是很出色。
但是我将在以后的工作和学习中继续努力、不断完善。
这个设计是对我们过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。
当然还是存在不足的地方,比如不能实现频率的按一个小的步进调整。
并且当频率太小时矩形波会有些失真。
信号发生器可以生成更多的波形,只需要再加些波形表即可。
在这里得感谢学校为我们提供个这样一个实践的机会,当然还得感谢实验室指导老师们的细心指导。
参考文献:
[1]单片机原理及运用实例仿真,李泉溪主编,北京航空航天大学出版社
[2]电子技术基础数电部分(第五版),康华光主编,高等教育出版社
[3]电子线路CAD实用教程(第三版)潘永雄沙河主编,先电子科技大学出版社
[4]电路基础(第二版)皇冠斌等主编,华中科技大学出版社
[5]MATLAB教程R2011a张志涌等主编,北京航空航天大学出版社
[6]单片机原理及接口技术李权利主编,高等教育出版社
[7]新概念51单片机C语言教程-入门、提高、开发、拓展全攻略郭天祥编著,电子工业出版社
[8]模拟电子技术基础简明教程杨素行主编,高等教育出版社
附录1电路原理图
附录2器件清单
89C51芯片
1个
8155芯片
1个
DAC0832芯片
2个
30PF电容
3个
12MHZ晶振
1个
8位拨码开关
1个
万能版
1个
显示管
6个
10K电阻
1个
开关
1个
LM324
2个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 函数 信号发生器 设计 汇总
![提示](https://static.bdocx.com/images/bang_tan.gif)