基于单片机波形发生器的实现与发生.docx
- 文档编号:8456610
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:46
- 大小:568.05KB
基于单片机波形发生器的实现与发生.docx
《基于单片机波形发生器的实现与发生.docx》由会员分享,可在线阅读,更多相关《基于单片机波形发生器的实现与发生.docx(46页珍藏版)》请在冰豆网上搜索。
基于单片机波形发生器的实现与发生
本科毕业设计(论文)
题目基于单片机的波形发生器的实现与设计
学生姓名
专业班级
学号
院(系)
指导教师(职称)
完成时间
摘要
本文介绍了一种基于单片机的波形发生器的设计,整个系统通过单片机STC89C52控制外围数码管显示电路以及参数调节等实现正弦波、方波、三角波、锯齿波和脉冲波五种波形的输出显示。
该波形发生器主要由两部分组成:
系统硬件设计和系统软件设计,在系统硬件设计中,以STC89C52单片机为核心,通过I/O接口设计,扩展了D/A转换模块、同时用LED显示灯指示对应的波形。
并且采用画图软件软件PROTEUS99SE画出原理图,设计并制作波形发生器的印制电路板(PCB)。
系统软件设计是在KeilC的集成开发环境下采用汇编语言完成的,包括主程序、四种波形产生子程序、按键功能子程序和显示子程序等模块。
本系统可以实现波形频率、幅度实时可调,功能灵活,系统的开发成本在百元内,具有测量精度高,误差小、功耗低,数据传输速度较快,可靠性高等特点,有一定的开发价值。
实验表明,设计系统的测试结果与实际波形的频率和幅度一致。
关键词:
波形发生器;STC89C52;LED;PCB
Abstract
Thisarticledescribesthethedesignofthewaveformgeneratorbasedonsingle-chip,theentiresystemthroughthemicrocontrollerSTC89C52controlstheledthatcanfinishconverttingfivewaveformanalogoutputofsinewave,squarewave,trianglewave,sawtoothwaveandpulsewave.Thewaveformgeneratorconsistsoftwoparts:
systemhardwaredesignandsystemsoftwaredesign,inthesystemhardwaredesign,themicrocontrollerSTC89C52isthecoreofthedesign,throughI/OinterfacedesigntoextendtheDAconvertermodule,waveformselectorbuttons,aswellasLEDtodisplay.AndthroughtheSCMsimulationsoftwarePROTEUS99SEtodesignandproduceoftheprintedcircuitboard(PCB)ofthewaveformgenerator.SystemsoftwaredesignisdonewithassemblylanguageintheintegrateddevelopmentenvironmentKeilC,includingthemainProgram,fourwaveformgeneratorsubroutine,keyfunctionsanddisplaysubroutinesmodules.
Thissystemcanrealizethatfrequencyandamplitudeofwaveformisreal-timeadjustableandflexible.Thesystemdevelopmentcostsisinthehundredwithahighaccuracy,theerrorissmall,lowpowerconsumption,fasterdatatransferspeeds,highreliability,thereisacertaindevelopmentvalue.Thetestedfrequencyandamplitudeofthesystemisconsistentwiththeactualwaveform.
Keywords:
waveformgenerator;stc89C52;led;pcb
1绪论1
1.1选题背景及意义1
1.1.1本课题的研究现状1
1.1.2选题目的及意义2
1.2设计基本要求3
2波形发生器系统方案设计与论证4
2.1总体设计方案的比较4
2.2子系统模块方案设计4
2.2.1控制模块方案设计5
2.2.2频率调整模块方案设计5
2.2.3键盘模块方案设计6
2.2.4显示模块方案设计7
2.2.5D/A模块显示方针7
2.3系统总体框图8
2.4波形产生相关理论10
2.5MCU概要11
2.5.1单片机发展历程11
2.5.2单片机的特点11
2.5.3单片机的应用领域12
3硬件实现及模块电路设计13
3.1单片机最小系统的设计13
3.2D/A转换模块14
3.2.1分辨率15
3.2.2转换精度15
3.2.3转换误差15
3.2.4线性度15
3.3频率调整模块16
3.4按键显示模块17
3.5LED显示模块18
3.6RS232串行通信电路及电源供电电路20
3.6.1RS232串行通信电路20
3.6.2电源供电电路21
4单片机开发系统23
4.1系统软件编程语言方案设计23
4.2系统整体软件设计思想24
4.2.1Keil编译器简介24
4.2.2KeilC51单片机软件开发系统的整体结构24
4.2.3uVision4集成开发环境24
4.3主程序流程图25
4.4软件仿真26
5系统软硬件调试与数据处理28
5.1硬件PCB制作、安装、测试与调试28
5.1.1PCB设计、制作、安装28
5.1.2电路板调试与检测安全29
5.1.3供电安全29
5.2PCB电路板的电气规则检查与调试及电路功能测试30
5.2.1PCB电路板的电气规则检查与调试30
5.3测试方法及数据的记录和统计30
5.4测试数据分析及处理30
5.5系统功能实现情况30
6系统抗干扰措施32
6.1形成干扰的基本因素32
6.2提高单片机系统抗干扰能力的主要手段33
结论34
致谢35
参考文献36
附录A英文原文38
附录B汉语翻译45
附录C系统软件部分源程序49
附录D系统原理图55
附录E元器件清单56
附录F符号说明57
附录G实物图58
1绪论
1.1选题背景及意义
波形发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。
各种波形曲线均可以用三角函数方程式来表示。
能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数波形发生器。
在通信、广播、电视系统,在工业、农业、生物医学等领域内,函数波形发生器在实验和设备检测中具有十分广泛的用途。
1.1.1本课题的研究现状
波形发生器既可以构成独立的信号源,也可以是高性能网络分析仪、频谱仪及其它自动测试设备的组成部分。
波形发生器的关键技术是多种高性能仪器的支撑技术,因为它能够提供高质量的精密信号源及扫频源,可使相应系统的检测过程大大简化,降低检测费用并极大地提高检测精度。
美国安捷伦生产的33250A型函数/任意波形发生器可以产生稳定、精确和低失真的任意波形,其输出频率范围为1μHz~80MHz,而输出幅度为10mVpp~10Vpp;该公司生产的8648D射频波形发生器的频率覆盖范围更可高达9kHz~4GHz。
[1]国产SG1060数字合成波形发生器能双通道同时输出高分辨率、高精度、高可靠性的各种波形,频率覆盖范围为1μHz~60MHz;国产S1000型数字合成扫频波形发生器通过采用新技术、新器件实现高精度、宽频带的扫频源,同时应用DDS和锁相技术,使频率范围从1MHz~1024MHz能精确地分辨到100Hz,它既是一台高精度的扫频源,同时也是一台高精度的标准波形发生器。
还有很多其它类型的波形发生器,他们各有各的优点,但是波形发生器总的趋势将向着宽频率覆盖、高频率精度、多功能、多用途、自动化和智能化方向发展[2]。
目前,市场上的波形发生器多种多样,一般按频带分为以下几种:
超高频:
频率范围1MHz以上,可达几十兆赫兹。
高频:
几百KHZ到几MHZ。
低频:
频率范围为几十HZ到几百KHZ。
超低频:
频率范围为零点几赫兹到几百赫兹。
超高频波形发生器,产生波形一般用LC振荡电路。
高频、低频和超低频波形发生器,大多使用文氏桥振荡电路,即RC振荡电路,通过改变电容和电阻值,改变频率。
用以上原理设计的波形发生器,其输出波形一般只有两种,即正弦波和脉冲波,其零点不可调,而且价格也比较贵,一般在几百元左右。
在实际应用中,超低频波和高频波一般是不用的,一般用中频,即几十HZ到几十KHZ。
用单片机89S52,加上一片DAC0832,就可以做成一个简单的波形发生器,其频率受单片机运行的程序的控制。
我们可以把产生各种波形的程序,写在ROM中,装入本机,按用户的选择,运行不同的程序,产生不同的波形。
再在DAC0808输出端加上一些电压变换电路,就完成了一个频率、幅值、零点均可调的多功能波形发生器的设计。
这样的机器体积小,价格便宜,耗电少,频率适中,便于携带。
1.1.2选题目的及意义
波形发生器是一种经常使用的设备,由纯粹物理器件构成的传统的设计方法存在许多弊端,如:
体积较大、重量较沉、移动不够方便、信号失真较大、波形种类过于单一、波形形状调节过于死板,无法满足用户对精度、便携性、稳定性等的要求,研究设计出一种具有频率稳定、准确、波形质量好、输出频率范围宽、便携性好等特点的波形发生器具有较好的市场前景,以满足军事和民用领域对信号源的要求。
虽然我国对于波形发生器的研制起步较晚,但是通过几年的努力也取得了一些可喜的成果。
国产SG1060数字合成信号发生器可以双通道同时输出高分辨率、高精度、高可靠性的各种波形,其频率覆盖范围为1μHz-60MHz。
国产S1000数字合成扫频信号发生器的频率范围为1MHz-1024MHz,可应用于超高频领域。
但是总的来说,这些设计产品价格昂贵主要应用于航空、军事等高端领域,在日常民用方面并没有形成自己真正的产业。
目前国内成熟的产品多位一些PC仪器插卡,独立仪器少之又少。
并且我国现今的任意波形发生器的种类和性能与国外相比仍有很大差距,因此对此内产品的研究设计仍具有重要意义。
本次设计的主要目标是学习和运用单片机的C语言和开发环境,通过现有专业知识,实现利用单片机STC89C52控制外围电路及其参数实现正弦波,方波,三角波,锯齿波,脉冲波这五种常见波形的发生,并且可以接收外接拨码键盘开关量的输入而在一定范围内改变波形的频率和幅度。
在无标准函数发生仪器时,本设计可以作为简单的波形发生器使用。
本次设计准备在成本交低廉的前提下完成,主要是用单片机STC89C52、LED,性能指数都不是很高,所以对此信号源的基本要求是能发生几种常见的波形,正弦波,方波,三角波,锯齿波,并且能够在定的范围内改变频率。
通过该课题的设计,掌握以STC89C52为核心的单片机系统的软硬件开发过程和基本信号的产生原理、测量及误差分析方法,同时掌握波形发生器系统的软硬件设计流程;了解并掌握并行D/A转换器DAC0832的原理及其外围电路的设计方法;掌握利用单片机产生常用波形的方法,进一步熟悉单片机人机接口的设计方法;培养我们综合运用所学的基本知识、基本理论和基本技能的能力,学习解决一般工程技术和有关专业问题的能力。
1.2设计基本要求
本设计采用89C52及其外围扩展系统,软件方面主要是应用C语言设计程序。
系统以89C52单片机为核心,配置相应的外设及接口电路,该系统的软件可运行于KeilC的集成开发环境下,硬件电路原理图设计完成后,能成功完成软件调试。
同时,本系统中任何一部分电路模块均可移植于实用开发系统的设计中,例如温度控制系统、电子时钟万年历等实用的电路系统中,电路系统设计具有很强的实用性。
功能要求:
1)波形发生器的频率,幅值,波形可调;
2)显示当前波形的频率、幅值;
3)对系统进行测试和结果分析;
4)撰写论文;
5)基于单片机以及外围的数码管显示电路,电源管理以及参数调节等电路实现输出波形的显示。
2波形发生器系统方案设计与论证
2.1总体设计方案的比较
波形发生器的设计方案可用多种方案来完成。
在设计前对各种方案进行了比较:
方案一:
用差分放大电路实现三角波到正弦波以及集成运放组成的电路实现波形发生器。
波形变换的原理是利用差分放大器的传输特性曲线的非线性,传输特性曲线越对称,线性区域越窄越好;三角波的幅度应正好使晶体接近饱和区域或者截至区域。
方案二:
利用专用直接数字合成DDS芯片实现函数波形发生器。
这种波形发生器能产生任意波形并达到很高频率,但成本较高。
方案三:
利用单片机STC89C52和发光二极管共同实现正弦波,方波,三角波,锯齿波这四种常见波形的发生,并且可以接收外接拨码键盘开关量的输入而在一定范围实现频率和幅度的调节[3]。
方案四:
采用分立元件构成非稳态的多谐振振荡器,根据具体需要加入积分电路等构成波形发生器。
但这种波形发生器输出频率范围窄,而且电路参数设定较繁琐,输出的波形易受外界环境影响,不稳定,对电路硬件要求很高,不易实现。
可行性分析:
上面四种方案中,方案一中需要人为地搭建波形变换的电路。
方案二成本较高。
方案三利用单片机构成的应用系统有较大的可靠性。
系统扩展、配置灵活。
容易构成各种规模的应用系统,且应用系统有较高的软、硬件利用系数。
单片机具有可编程性,硬件的功能描述可完全在软件上实现,而且设计时间短,成本低,可靠性高。
方案四的电路参数设定较繁琐,输出的波形易受外界环境影响,不稳定。
综合以上四种方案,从性能和制作成本考虑,本设计采用方案三,即采用单片机通过调节拨码键盘开关量可产生可调频率的波形。
2.2子系统模块方案设计
该波形发生器有以下几部分组成:
1)单片机控制模块,2)频率调整模块,3)按键模块,4)显示模块,5)D/A转换模块,6)RS232串行通信电路及电源供电电路模块六部分组成。
2.2.1控制模块方案设计
方案一:
用单片STC89C52作为系统的主控核心。
单片机具有体积小,使用灵活的,易于人机对话和良好的数据处理,有较强的指令寻址和运算功能等优点。
且单片机功耗低,价格低廉的优点。
方案二:
C89C52F005单片机是完全集成的混合信号系统级芯片,具有与89C52兼容的微控制器内核,与MCS-51指令集完全兼容。
除了具有标准8052的数字外设部件,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件,而且执行速度快。
但其价格较贵。
方案三:
用FPGA等可编程器件作为控制模块。
FPGA可以实现各种复杂的逻辑功能,密度高,速度快,稳定性好等许多有点。
FPGA在掉电后会丢失数据上电后须进行一次配置,因此FPGA在应用中需要配置电路和一定的程序。
并且FPGA作为数字逻辑器件,竞争、冒险是数字逻辑组合电路中较为突出的问题,因此在使用时必须注意毛刺的产生、消除及抗干扰性。
在此系统中,采用单片机作为控制器比采用FPGA实现更简便。
从电路结构和成本角度及综合性价比的考虑,确定选择方案一。
2.2.2频率调整模块方案设计
方案一:
通过对单片机的定时器的编程来实现调频。
将一个周期的波形数据离散成256个采样点数据,并启用定时器延时。
当8位累加器A的内容达到最大的计数值255时在自增一次就变成最小值零,然后可以继续增加。
如此,周而复始就可以得到要求的波形输出。
当然通过对定时器初值的设定可以改变波形的频率。
例如,单片机的晶振频率fOSC=12MHz,定时器采用方式1,若产生周期为T的波形,定时器初值的计算方法如下:
单片机机械周期Tmec为:
(2.1)
定时器初值TC为:
(2.2)
定时器初值高位TCH为:
(2.3)
定时器初值低位TCL为:
(2.4)
当要获得1Hz的波形时,按照上述方法可以算出:
TC=61630,TCH=240,TCL=190
但是此种方案最大计数值为65536,最小计数值为1,所以决定了此种方法所能得到的波形的上限频率fMAX为:
(2.5)
下限频率fMIN为:
(2.6)
需要说明的是,以上上限下限频率是对于将一周期波形离散成256个数据点的正弦波和锯齿波而言的。
方案二:
为了提高单片机的资源利用率和运行的效率,按键部分通过8位拨码开关来实现8位数字量通过74ls165的并行输入串行输出给单片机的方案,这样设计的目的优点是节省单片机的I/O口资源,电路结构简单易行。
我们采用74ls165实现频率的改变,使频率能够实时随着拨码按键开关量的输入而改变,电路结构简单,实时性较强。
[4]
综合以上二种方案,方案一是靠软件来实现调频,综合可以看出此种方案的有效频段为0.06Hz到1953Hz,在此范围内输出波形频率连续可调。
从电路结构、实时性的角度考虑,选择方案一。
2.2.3键盘模块方案设计
方案一:
采用独立按键,按键的数目少,但是它拥有结构简单,方便操作,执行效率高等优势。
方案二:
采用矩阵键盘,它以较少得I/O口实现了按键的功能。
经综合考虑,由于节省I/O资源,我们采用矩阵键盘。
2.2.4显示模块方案设计
方案一:
用传统的LED七段数码管位选的方式进行波形频率和幅度的显示。
动态LED扫描的方法就是控制LED和COM端轮流有效,使每个LED轮流点亮有效。
方案二:
采用LCD1602液晶显示,1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5×7或者5×11等点阵字符位组成,1602采用并口传输,速度比12864快。
每个点阵字符位都可以显示一个字符。
1602内部集成有显示芯片,可以识别英文字母、阿拉伯数字和日语。
此液晶显示具有微功耗、体积小、显示内容丰富、超薄轻巧等优点,常用在袖珍式仪表和低功耗应用系统中。
[5]
方案三:
LCD1286是图形点阵,是显示图形和汉字,当然也是可以显示字母和阿拉伯数字了程序的编写上1602复杂的多,由于本次设计只需显示波形的频率和幅度,不需要显示波形图,从电路的简单程度和成本的角度,综合考虑不选择。
方案一占用较多的I/O口资源,需要添加额外的I/O扩展电路和译码电路,但是此方案硬件价格低廉,编程起点低。
方案二运用液晶显示可以显示点阵字母和数字信息,速度快,功耗低,体积小,但是硬件价格较贵,且编程相对于LED较难。
方案三的液晶可以显示汉字和图形,这些功能在本次设计中用不到。
综合考虑,程控波形发生器设计并不需要显示复杂的信息,所以选择方案一。
硬件波形发生器设计不准备加入显示模块,主要是因为此种方案适用于生成特定波形的系统中,使用人员并不需要经常对波形的频率和幅值进行更改,所以显示模块在此种方案中显得冗余。
2.2.5D/A模块显示方针
单片机输出的是数字信号,,必须通过D/A转换后才能模拟信号。
方案一:
采用D/A转换器AD7543。
AD7543是一种串行的D/A转换器,与单片机之间的连线少,布线方便,而且又是12位的D/A转换器,精度高。
但串行数据传输速度慢,当频率较高时,必须减少每周期输出的点数,这将会导致阶梯现象更加明显,因此,此方案不宜使用。
方案二:
采用DAC0832。
这是8位的并行D/A转换器,转换速度快。
综合以上二种方案,本系统选择了方案二。
DAC0832芯片介绍
美国国家半导体公司生产的DAC0832是一种具有8位分辨率、双通道输出的D/A转换芯片。
由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率[6]。
1)DAC0832具有以下特点
1)8位分辨率;
2)双通道A/D转换;
3)输入输出电平与TTL/CMOS相兼容;
4)5V电源供电时输入电压在0~5V之间;
5)工作频率为250KHZ,转换时间为32μS;
6)一般功耗仅为15mW;
7)8P、14P—DIP(双列直插)、PLCC多种封装;
8)商用级芯片温宽为0°Cto+70°C,工业级芯片温宽为40°Cto+85°C。
2)芯片接口说明
在电路原理图设计时,DAC0832的D0-D78条数据线与单片机的P0口相连接,DAC0832的
、
脚与P2.7相连接、
、
与单片机的
相连接,IOUT1与LM324的2脚相连接,3脚数字地、10脚模拟地分别与电源地相连接。
ILE脚与5V电源相连接。
3)单片机对DAC0832的控制原理
当DAC0832未工作时其输入端应为高电平,此时芯片禁用。
当要进行A/D转换时,须先将使能端置于低电平并且保持低电平直到转换完全结束。
当DAC0832工作时其输入端应为低电平,直接将单片机P0口的8位数字量转换为模拟电压量的经IOUT1引脚输出,将示波器的正极探针与IOUT1引脚端相连接,就可以看到波形的产生。
2.3系统总体框图
本系统是以单片机STC89C52、频率调整模块、按键模块、以及LED显示模块、I/O显示,RS232串行通信及USB供电等模块共同实现正弦波,方波,三角波,锯齿波,脉冲波这五种频率、幅度可调的常见波形的功能。
系统原理框图如图2.1。
键盘
图2.1系统原理框图
由图2.2DAC0832转换部分电路图可知,通过代入以下数据对波形输出与频率、幅值调节部分进行具体的理论分析计算。
利用STC89C52单片机、DAC0832、8位拨码开关设计一个能产生正弦波、方波、三角波、锯齿波和脉冲波的频率、幅值、波形可调的波形发生器。
其中8位拨码开关是用来产生8位二进制数作为延时常数,DAC0832是用来将8位数字量转化成模拟量输出。
数字量输入的范围为0-255之间,对应的模拟量输出的范围在Vref-到Vref+之间。
根据这样我们可以利用单片机的并行口输出的数字量,产生常用的波形。
图2.2DAC0832转换部分电路图
1)利用单片机产生方波、正弦波、三角波和锯齿波等信号波形,信号的频率和幅度可变。
2)将一个周期的信号分离成256个点(按X轴等分),每两点之间的时间间隔为T,用单片机的定时器产生,其表示式为:
T=T/256。
如果单片机的晶振为12MHz,采用定时器方式0,则定时器的初值为:
X=213—T/Tmec(2.7)
定时时间常数为:
TL=(8192—T)/MOD256(2.8)
TH=(8192T)/256(2.9)
MOD256表示除256取余数。
3)正弦波的模拟信号是D/A转换器的模拟量输出,其计算公式为:
Y=(A/2sint)+A/2(其中A=VREF)(2.10)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 波形 发生器 实现 发生