毕业设计-基于at89s51单片机的低频数字信号发生器的设计_第1页
毕业设计-基于at89s51单片机的低频数字信号发生器的设计_第2页
毕业设计-基于at89s51单片机的低频数字信号发生器的设计_第3页
毕业设计-基于at89s51单片机的低频数字信号发生器的设计_第4页
毕业设计-基于at89s51单片机的低频数字信号发生器的设计_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

低频数字信号发生器的设计学校昆明理工大学专业电子信息工程姓名指导教师单位昆明理工大学指导教师姓名指导教师职称讲师THEDESIGNOFDIGITALSIGNALGENERATOROFLOWFREQUENCYUNIVERSITYKUNMINGUNIVERSITYOFSCIENCEANDTECHNOLOGYMAJORELECTRONICINFORMATIONENGINEERINGNAMENAMEOFADVISORUNITOFADVISORKUNMINGUNIVERSITYOFSCIENCEANDTECHNOLOGYPROFESSIONALTITLELECTORATE目录摘要IABSTRACTII第1章绪论111概述112设计要求2第2章设计的整体构思321输入输出电路的构思323软件设计的构思4231幅度控制4232频率控制4233波形的产生524本章小结5第3章硬件电路设计631系统总体电路图632单片机最小系统833单片机与DAC0832的接口技术10331DAC0832简介10332LM324功能13333DAC0832和MCS51的接口1434按键及显示电路设计16341按键的设计16342显示电路的设计1735本章小结18第4章软件部分的设计1941软件总体流程1942各部分软件设计20421键盘显示模块设计20422波形产生模块的设计2243本章小结27第5章系统的安装与调试2851系统设计的安装与调试2852系统的各部分调试28521系统硬件调试28522系统软件调试2953在调试过程中遇到的问题2954本章小结30结论31总结与体会32致谢33参考文献33附一英文翻译34摘要各种各样的信号是通信领域的重要组成部分,其中正弦波、锯齿波和方波等是较为常见的信号。在科学研究及教学实验中常常需要这几种信号的发生装置。为了实验、研究方便,研制一种灵活适用、功能齐全、使用方便的信号源是十分有必要的。本文研究的是利用AT89S51单片机和数模转换器件DAC0832产生不同波形的低频信号源,其信号幅度和频率都是可以按要求控制。文中简要介绍了DAC0832数模转换器的结构原理和接口方法,波形产生的原理以及波形频率幅值调节控制的方法。本次关于产生不同低频信号的信号源的设计方案,不仅在理论和实践上都基本能满足实验的要求,而且具有较强的可行性。该信号源的特点是体积小、价格低廉、性能稳定、实现方便、功能齐全。关键词信号发生器;单片机;DAC0832;ABSTRACTVARIOUSSIGNALSAREANIMPORTANTPARTOFCORRESPONDENTAREAINTHISAREA,SINEWAVE,TRIANGLEWAVEANDSQUAREWAVEARECOMMONSIGNALSINSCIENCERESEARCHANDTEACHINGEXPERIMENT,WEOFTENNEEDTHEOCCURRENCEEQUIPMENTOFTHESESIGNALSINORDERTOMAKETHEEXPERIMENTANDRESEARCHEASIER,TODEVELOPASUITABLE,FULLFUNCTIONALANDEASILYUSEDSIGNALSSOURCEISESSENTIALTHISPAPERINTRODUCESTHELOWFREQUENCYSOURCESOFDIFFERENTSIGNALSTHATAREPRODUCEDBYAT89S51MCUANDDAC0832ITSSIGNALRANGEANDFREQUENCYCANBECONTROLLEDBYREQUIREMENTTHISPAPERCOMPENDIUMINTRODUCESTHEPRINCIPLEANDTHEINTERFACEOFTHEDAC0832DIGITALANALOGCONVERTERWHATISMORETHISPAPERGAVEUSTHEWAYTOGETTHEDIFFERENTWAVEOFDIFFERENTFREQUENCYANDDIFFERENTAMPLITUDETHISSIGNALSOURCEDESIGNPLANCONCERNSONPRODUCINGDIFFERENTLOWFREQUENCYSIGNALS,NOTONLYMEETTHEREQUESTOFEXPERIMENTINTHEORYANDINPRACTICE,BUTALSOHAVESTRONGFEASIBILITYTHETRAITOFTHISSIGNALSOURCEISSMALLVOLUME,LOWPRICE,STABLEFUNCTION,EASILYACHIEVABLE,ANDFULLFUNCTIONKEYWORDSDIGITALSIGNALGENERATOR;MCU;DAC0832;第1章绪论11概述当今是科学技术及仪器设备高度智能化飞速发展的信息社会,电子技术的进步,给人们带来了根本性的转变,给人们的生活和工作带来了很多的便利。现代电子领域中,单片机的应用正在不断的走向深入,这必将导致传统控制与检测技术的日益革新。单片机构成的仪器具有高可靠性、高性能价格比,在智能仪表系统和办公自动化等诸多领域得以极为广泛的应用,并走入家庭,从洗衣机、微波炉到音响汽车,处处可见其应用。因此,单片机技术开发和应用水平已逐步成为一个国家工业发展水平的标志之一。数字信号发生器,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。实验室,我们经常采用数字信号发生器作为信号源来产生各种频率幅值不同的波形以满足不同实验的不同要求。目前,市场上常见的波形发生器多为纯硬件的搭接而成,且波形种类有限,多为锯齿、正弦、方波、三角等波形。信号发生器种类比较繁多,性能上各有差异,但是它们都可以产生不同频率的正弦波、调幅波、调频波信号,以及各种频率的方波、三角波、锯齿波和正负脉冲波信号等。利用信号发生器输出的信号,可以对元器件的特性及参数进行测量,还可以对电工和电子产品整机进行指标验证、参数调整及性能鉴定。在多级电路传递网络、电容与电感组合电路、电容与电阻组合电路及信号调制器的频率、相位的特性测试中它都得到广泛的应用。传统的一般可以完全由硬件电路搭接而成,如采用555振荡电路发生正弦波、三角波和方波的电路便是可取的路径之一,不用依靠单片机。但是这种电路存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点。在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟机械振动等领域常常要用到低频信号源。而由硬件电路构成的低频信号其性能难以令人满意,而且由于低频信号源所需的RC要很大。大电阻,大电容在制作上有困难,参数的精度亦难以保证。体积大,漏电,损耗显著更是其致命的弱点。一旦工作需求功能有增加,则电路复杂程度会大大增加。本设计利用单片机采用程序设计方法来产生低频信号,其频率底线很低。具有线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强,用途广泛等优点,并且能够对波形进行细微调整,改良波形,使其满足系统的要求。只要对电路稍加修改,调整程序,即可完成功能升级。12设计要求本课题的主要任务是在深入了解信号发生器波形产生原理的基础上。利用单片机来设计一款数字式低频信号发生器,主要技术指标包括1、波形方波、正弦波、锯齿波;2、幅值电压1V、2V、3V、4V、5V;3、频率10HZ、20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ课题包括硬件设计和软件设计两大部分,其中硬件部分要完成原理电路图的设计以及制作。软件部分包括程序设计、烧录、以及单片机调试,最后完成整机的调试运行。第2章设计的整体构思电路整体框图如下图1所示AT89S51DAC0832DAC0832键盘LED显示基准电压输出图1系统整体框图本课题是主要思想是从单片机处理系统查询频率存储单元(存放信号频率值),并开始执行信号生成程序,通过D/A转换器和两级运算放大器,将数字量变成模拟量,从而得到超低频的波形信号,其波形信号的频率可以由键盘快速方便的调节。其波形信号的幅值,可以由控制D/A转换器的参考电压,从而实现波形信号幅度的控制,本设计用单片机控制所产生信号的幅度,并且充分地利用了单片机强大的程序控制和计算功能,采用查表的方法利用软件生成了各种信号,从而大大地节省了硬件开销,动态地实现了目标信息的模拟。21输入输出电路的构思在本设计中,键盘显示部分我们用到四个按键。一个用来选择输出波形的种类按一次输出方波,再按一次,输出锯齿波,再按一次输出正弦波,如此反复;另外一个用来调节波形频率的大小其设计思路是,使波形的频率随着按键次数的增加而增加;还有一个按键用来调节输出波形幅值的大小,其设计思路是,使波形的幅值随着按键次数的增加而增加;另外一个按键用来确认输出波形。在显示部分,本设计采用动态显示。总共设置六位显示,第一位用来显示输出波形的种类,比如,当LED显示0的时候输出方波,显示1的时候输出锯齿波,显示2的时候输出正弦波。波形的输出是由按键来控制的。第二位到第四位用来显示输出波形的频率,第五位和第六位用来显示输出波形的幅值。23软件设计的构思231幅度控制由于D/A数模转换器输出的最大幅度可以用其基准电压来控制,所以控制第二片D/A数模转换器输出给第一片D/A数模转换器的电压值就可控制信号幅度。因此,送入第二片的值是几个固定的值。由于DAC0832内部具有锁存器,所以只需向第二片D/A送值一次,直到下一次改变信号幅度。232频率控制单片机内部数据只有0、1之分,所产生的信号也都是离散信号。为了能够让单片机输出所需的数字信号,我们采用对信号采样、量化的方法来实现由单片机产生所需信号。在本设计中,对信号的四分之一周期采样19个幅度值,通过反复查表来输出幅度值,而整个信号是通过正查表和逆向查表来实现的。采样的点越密,信号失真度也就越小。输出的波形也就越标准。两次采样点的输出时间间隔是由定时、计数器来控制的,因此,通过控制不同的计数初值就可以控制整个信号的频率。计数时间信号周期/72。计数次数计数时间/机器周期。对应的,计数初值65536计数次数。单片机只能产生离散频率的信号,所以所得到的信号频率不是连续的,而是离散的频率点。由于这部分计算位数较多,不适合用单片机编程来计算计数初值,所以本设计中将各频率的计数初值算出,让单片机按控制命令来查表控制频率。正弦波和三角波的频率控制方法都与上述方法相同,而方波的频率控制是半周期计数,经过半周期只需改变输出为最大或最小电平即可。本设计为低频信号发生器,在频率只有几十赫兹的时候计数次数将很大,因此计数器的工作方式选为工作方式1,每次计数器溢出时需要重新装入计数初值。233波形的产生本设计要求产生三种波形,分别为方波、锯齿波以及正弦波。方波的产生比较容易实现,利用单片机输出,使高低电平间隔输出即可。要产生锯齿波,可以按增量规律反复给D/A转换器送数字信号,并且由于送出电压与时间成线性关系,因此相对也比较容易实现。正弦波是比较难以实现的,也是比较麻烦的,正弦波的产生是通过对标准正弦波进行采样输出而得到的,采样间隔越小,正弦波的输出精度就越高,失真度越小。输出的波形就越标准。24本章小结本章主要介绍了低频信号发生器目前的应用和发展现状。从理论方面,对课题进行了说明和论证,并提出了解决方案的初步方法,列出了总体方案框图。系统方案的论证是十分重要的,它是设计工作的开始,也给出了实现设计的工作步骤。有了充分的准备,设计才能有条不紊开始实施。第3章硬件电路设计31系统总体电路图系统大致由D/A转换电路、按键输入电路、LED数码管显示电路构成。首先通过不同按键选择输出的波形、幅值、频率等信息,然后根据要求由单片机输出所需要信号的数字量,再由D/A数模转换器将数字量转化为模拟信号输出,最后通过运放转化为模拟电压输出。因为D/A数模转换器的最大输出电压与其输入的基准电压相关,所以只要能控制D/A的基准电压便可以控制输出幅度,实现幅度可调。所以设计用两片DAC0832来输出信号,第一片D/A用来输出信号,第二片D/A用来控制第一片D/A的基准电压。P1口做输出输出八位二进制数字信号。第一级DAC0832数模转换器将P1口输出的数字信号变成连续变化的的电流信号,这个电流信号经过两个集成运算放大器组成的双极型电压输出电路变化成电压信号输出。电压变化范围为5V5V,做第二级DAC0832数模转换器的基准电压。第一级DAC0832数模转换器的基准电压为5V,由电源以及分压电路取得电压。P1口的八位二进制数输出信号再经过第二级DAC0832数模转换器以及集成运放输出,使输出电压信号U的变化范围满足要求系统总体电路图如图2所示图2系统总体电路图32单片机最小系统单片机,又称微处理器。是现代电子设计中使用最广泛的电子元件。它价格低廉,功能强大,体积小,性能稳定。单片机其最基本的结构是将CPU和计算机外围功能单元,如存储器、I/O口、定时器、计数器、中断系统等集成在一个芯片上构成的。虽然单片机只是一个芯片,但是无论从组成还是从功能上看,它都具有了微型系统的特征。AT89S51是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器的8位CMOS微控制器,使用高密度、非易丢失存储技术制造,并且与8051引脚和指令系统完全兼容。芯片上的FLASH存储器允许在线编程或采用通用的非易丢失存储编程器重复编程。单片机I/O口是本次设计中重点使用到的资源,因此下面对I/O口的功能说明P0口P0口共有8个引脚,其中P07为最高位,P00为最低位。这8条引脚有两种不同的功能,分别使用于两种不同情况。第一种情况是89S51不带片外存储器,P0口可以作为通用I/O口使用,P00P07用于传送CPU的输入/输出数据。这时,输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;第二种情况是89S51带片外存储器,P00P07在CPU访问片外存储器时用于传送片外存储器的低8位地址,然后传送CPU对片外存储器的读写数据。P1口P1口是一个内部提供上拉电阻的8位双向I/O口,其缓冲器可接收输出4TTL门电流。P1口管脚写入“1”后,被内部上拉为高电平,用作输入;被外部下拉为低电平时,将输出电流。P2口P2口的第一功能和P0口的第一功能相同,即它可以作为通用I/O口使用。它的第二功能和P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但并不能像P0口那样还可以传送存储器的读写数据。P3口作输入/输出时同P1口。P3口也可作为89S51的一些特殊功能口。单片机想要正常工作,那就让它满足一定的基本条件,我们称之为最小应用系统。它主要包括时钟电路也就是XTAL1、XTAL2晶体振荡电路反相输入端和输出端,然后要特别注意几个引脚,比如复位端、外部程序存储器地址允许使用端。在启动的时候都需要复位,使CPU和系统中的其他部件处于一个确定的初始状态,并从这个状态开始工作。MCS51单片机都有一个复位引脚RST,在振荡器运行时,RST引脚上保持至少两个机器周期的高电平输入信号,复位过程即可完成。为响应这一过程,CPU发出内部复位信号。内部复位操作是在发现RST为高电平后的第二个机器周期进行的,并且此后的每个周期都重复进行复位操作,直到RST变成低电平为止。复位电路的连接方法有很多,有上电复位电路、采用反向器的复位电路、按键电平复位和按键脉冲复位。本设计中采用的是按键电平复位,并带有上电复位功能,其设计简单,采用电阻分压的方式给RST提供高电平。这种设计使用元件少,而且计算简便,只要两个分压电阻的阻值选择适当,可以使得分压值达到复位需要,也可以使时间常数不太大,及时复位。具体电路如下图所示图3复位电路在计算机中有一个起到协调作用的“口号”,这个就是时钟信号。为了能保证计算机的正常工作,内部各个功能电路必须在该时钟信号的同步下按时序工作。考虑性能问题,本设计采用内部时钟电路。利用AT89S51内部一个高增益的反向放大器,把一个晶体振荡器和两个电容器组成自激振荡电路,接于XTAL1和XTAL2之间,电路如图所示。图4时钟电路图中晶体振荡器是石英晶体或陶瓷结构,振荡频率一般选在12MHZ12MHZ之间,C1,C2在30PF左右;33单片机与DAC0832的接口技术在计算机应用领域中,特别是在实验室控制和智能仪表等系统中,常常需要把一些连续变化的物理量变成数字量,以便送入计算机进行加工、处理;也需要将计算机输出的数字量转化为连续变化的物理量,用以驱动相应执行结构,实现对被控对象的控制,下面涉及到的是数字量转化为模拟量这一转化过程。331DAC0832简介DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器。它由倒T型R2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。如下图5所示。运算放大器输出的模拟量V0为由上式可见,输出的模拟量与输入的数字量()成正比,这就实现了从数字量到模拟量的转换。图5DAC0832电路图一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。输入可有28256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。图6DAC0832引脚图上图是DAC0832的引脚图。D/A转换器的功能在于把对其输入的数字信号转换成与此数值成正比的模拟电压或电流。DAC0832是以CMOS工艺制造的8位D/A转换芯片,价格低廉,接口简单,在单片机制系统中得到了广泛的应用。DAC0832主要由两个8位寄存器和一个8位D/A转换器组成。其运作原理可从它的20个引脚之功能中领略到。D0D78位数据输入引脚,D7为最高位。ILE输入数据锁存允许信号,输入,高电平有效。CS芯片选择信号,输入,低电平有效。WR1输入锁存器的写选通信号,输入,低电平有效。从上述三信号的逻辑关系中可以看出,当ILE为高电平,CS和WR1均为低电平时,输入锁存器的锁存允许信号IE1将为高电平。此时输入锁存器的内容根据输入数据变化,但当LE1由于三输入信号的变化而跳变成低电平时,则来自D0D7的输入数据被锁定在输入锁存器中。WR2寄存器的写选通信号,输入,低电平有效。XFER数据传送控制信号,输入,低电平有效。若WR2和XFER两信号均为低电平,则DAC寄存器的锁存信号LE2为高电平,此时输入锁存器的输入数据被传送至DAC寄存器中;但当LE2因上述两信号的变化而跳变成低电平时,第二级,即DAC寄存器中的数据被锁定。D/A转换器随时对DAC寄存器中的数据进行D/A转换。VREF基准电压(可为10V10V)输入引脚。基准电压决定D/A转换器输出电压的范围若VREF接10V,则输出电压范围为010V;若接5V,则输出电压为5V0V。RFB内部反馈电阻对外引脚,用以输入来自片外运算放大器的反馈信号。IOUT1和IOUT2电流输出引脚。DAC0832属电流输出型,且两输出电流之和为常数。欲得到与输入数字量成正比的电压输出,必须外接运算放大器,把此两引脚输出电信号转换成电压形式。对于这类D/A转换器,通常以电流建立时间来表示其转换速度。所谓电流建立时间,系指输入数字量由全0变成1时,输出电流自初始值达到满量程LSB/2所需要的时间。本芯片的电流建立时间为1S。VCC供电电源引脚,可接5V10V电压。DGND数字量地,即VCC、数据、地址及控制信号的0电平输入引脚。AGND模拟量地,即VREF及模拟电压的地线。从前面对DAC0832内部结构的讲述中得知,其前级输入锁存器和DAC寄存器可允许数据进入其中,亦可锁定数据,拒绝新数据进入。这拒绝于内部信号LE1和LE2各自受外部信号控制的情况。据此我们可归纳出三点单缓冲方式LE2和LE1受控于同一组外部信号,两级积存器同时锁存数据。双缓冲方式LE2和LE1分别受不同信号控制,两级寄存器先后接收数据。直通方式LE1和LE2均恒为1,外来数据直接通过前两级到达D/A转换器。332LM324功能在波形产生这部分,还用到的一个重要的电子元器件就是LM324。LM324的功能特点如下所述LM324系列器件为价格便宜的带有差动输入的四运算放大器。与单电源应用场合的标准运算放大器相比,它们有一些显著优点。该四放大器可以工作在低到30伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。LM324的特点1、短跑保护输出2、真差动输入级3、可单电源工作3V32V4、低偏置电流最大100NA5、每封装含四个运算放大器。6、具有内部补偿的功能。7、共模范围扩展到负电源8、行业标准的引脚排列9、输入端具有静电保护功能LM324引脚图如下图7所示图7LM324引脚图333DAC0832和MCS51的接口在本设计中。我们要用到两块DAC0832芯片,以完成方波、锯齿波、正弦波的输出。电路图如下所示图8DAC0832和MCS51的接口电路图D/A转换器的基本功能是将一个用二进制形式表示的数字量转换成相应的模拟量,为单片机在模拟环境中应用提供了一种数据转换接口。在选择D/A转换器时,通常要考虑到数字量的输入方式、是否有锁存器、数字量的位数、模拟量的输入形式、参考电源、转换速率等因素。根据数据在芯片内部传送过程的不同,DAC0832具有直通式、单缓冲和双缓冲三种工作方式直通工作方式是将ILE、CS、WR1、WR2、和XFER控制信号预先置为有效使两个寄存器都处于开放状态,无需控制信号。DAC0832的输出随时跟输入数字的变化而变化,处于直通工作方式,8位数字信号一旦输出,就直接进入DAC寄存器进行D/A转换。单缓冲工作方式是指两级缓冲器之一受CPU送来的控制信号控制,另外一个寄存器为直通状态。如将WR2和XFER控制信号直接接地,或者将两个寄存器的控制信号连接在一起,并作为一个寄存器使用。这种方式适用于只有一路模拟量输出或者记录模拟量不需要同步输出的系统。双缓冲工作方式是指片内的两个寄存器分别进行控制。使用时,首先通过ILE、CS、和WR1信号同时有效,把数据锁存到输入寄存器,然后通过WR2、和XFER信号有效,再把数据打入DAC寄存器,并进入D/A转化,这种方式适用于几路模拟量需要同步输出的系统。在电路中,DAC0832数模转换器将P1口输出的数字信号变成连续变化的电流信号,这个电流信号经过两个集成运算放大器组成的双极型电压输出电路变化成电压信号输出。P1口的八位二进制数输出信号再经过第二级DAC0832数模转换器以及集成运放输出,使输出电压信号U的变化范围满足要求。34按键及显示电路设计341按键的设计本设计总共有4个按键,一个用来显示输出什么样的波形,一个用来调节频率的增加和减少,一个用来调节幅值的增加和减少,一个确认键。如下图9所示图9单片机接按键示意图342显示电路的设计为了使具体输出波形的频率和幅值正确显示出来,方便用户使用,因此设计中还包括显示部分。在显示部分本设计采用三位一体共阳极数码管,并采用动态显示的方法来设计。欲显示十进制或十六进制数字及某些其他简单字符,可选用七段LED显示器。AG七段及十进制小数点DP均为一发光二极管。若系共阳结构,则它们的阳极为一公共点,接电源正极。八只发光二极管的阴极互相独立,哪一段阴极接地,哪一段即发光,阴极也接高电平者便成暗状。如果是共阴结构,那么阴极公共点接地,各阳极独立,接高电平者发光,阳极接地者呈暗状。根据以上讨论可知,欲在一个LED显示器上显示某特定字符,必须向某公共点及各段施加正确的电压。对公共点的施压操作称为位选;对各段的操作为段选。段选码亦称字形码。由于设计中要用到4个按键,还要6位LED显示,若采用静态显示则占用I/O太多,所以我们选择用动态显示方式。显示电路如下图10所示图10LED动态显示电路动态显示就是微型计算机定时地对显示器件扫描,在这种方法中,显示器件分时工作,每次只有一个器件显示,但是由于人的视觉有暂留现象,所以只要扫描频率足够快,仍然会感觉所有的器件都在显示,如许多单片机的开发系统以及仿真器上的六位显示器都是采用这类显示方法。此种显示的有点是使用硬件少,因而价格低,线路简单。35本章小结本章主要介绍了实现设计目的的硬件解决方案。文中对各部分电路进行了简单的介绍,同时介绍了主要应用的集成芯片的使用方法和基本资料。第4章软件部分的设计41软件总体流程软件是整个系统的灵魂。如果没有软件,整个系统就是一个空壳。本设计中软件分为初始化模块、显示模块、键盘扫描模块、键值处理模块和波形产生模块。整个软件的流程图如图11所示图11软件流程图本设计程序的工作流程是首先通过键盘输入,确认是有键按下的时候,单片机内部区分清楚是控制什么键,确定输入的波形,调节波形的频率和幅值,最终输出。42各部分软件设计421键盘显示模块设计1、键盘扫描程序的设计键盘扫描程序的作用是从键盘获取按键信息,根据按键信息来执行命令操作。这部分是用户对系统进行操作的唯一途径。这部分程序的正确编写是确保人机正常对话的前提保证。键盘扫描程序流程图如下图12所示图12键盘扫描程序流程图键盘全扫描的作用是判断是否有按键按下。其方法是依次扫描接按键的每个口,没有按键按下时,为高电平,当扫描到低电平时,则说明有按键按下。由于采用的按键是机械按键,会有一定的抖动,一般抖动持续510MS,影响判断。为了消除干扰,在判断有按键按下后要调用延时程序消除抖动,然后再判断是否有按键按下。最后用查表的方法就可以得到键值。2、键值处理的程序设计键值处理的作用是按照键值来选择命令操作,以达到操作的目的。键值处理是否合理,直接影响人机对话的顺利进行。因为设计中一共只有4个按键,所以首先要判断键值是否合法,若键值大于4则视为非法,返回主程序。判断键值合法后还要判断按键是功能键还是数字键,之后再选择相应的操作。数字键处理程序由于本设计中为了简化程序,要求必须首先选择波形,当波形未设置时,数字键是无效的,必须返回。所以本段程序要首先判断波形位是否已经设定。若数字键合法,就按照输入的先后顺序将键值送入规定的地址单元。当4位数据送满之后,系统虽然扫描键盘,但对数字键只做放弃处理。功能键处理程序功能键包括一个波形参数选择按键和一个确认键。波形键按下时,将向波形存储单元送入相应的数值。正弦波为1,三角波为2,方波为3。确认键的作用比较关键。一旦确认键按下,则系统不再进行键盘扫描,而是按照输入的数据进行信号是幅度和频率选择处理,然后进入相应的波形输出程序。由于设计的整个系统比较简单,用途也只是使用于一般场合,所以系统中没有采用中断的方法来改变系统的运行。当系统开始输出信号之后,相当于系统已经进入了一个不断输出信号的死循环程序。用户只能通过复位键才能停止系统并重新操作。这样大大简化了程序设计,但并不影响系统的性能。对于这种不太复杂的系统,采用这种简单的程序操作是十分有利的。频率的处理是系统信号可调性的一个关键。由于系统的时钟和采样密度的限制,本设计在频率点的选择上并没有均等地设定频率点。而是选择10HZ、20HZ100HZ、200HZ800HZ。根据这一特性,采用列表的方法将这些频率点依次列出,并且在最前面加上0频率的值。然后在查表处理的时候先判断频率百位是否为0,如果百位不为0,则将百位的数据加9,再进行查表。如果百位为0,则直接用其数据作为变址查表。具体程序如下WAITACALLDISPLAYJNBP01,L1JNBP02,L2JNBP03,L3JBP00,WAIT;没有按键按下时等待MAINLCALLDISPLAY;调显示,算是延时JNBP00,MAIN;等待按键弹起,;执行第一个按键的要求L1;执行第二个按键的要求L2;执行第三个按键的要求L3;执行第四个按键的要求对于这种频率间隔较大的列表采用了这种查询方法,如果对于密集的频率点就要采用比较复杂的查询方法。对于本设计而言,重在讨论实现参数可调的信号输出的方法,所以在细节方面略有欠缺。只要在此基础上调整一些细节程序便可以增多频率点。422波形产生模块的设计波形产生模块是设计是否实现的关键。本次设计要求输出三种波形,其精度如何,关键都在于波形产生模块设计的合理性。本设计中采用的是用单片机产生信号,而单片机只能产生数字信号,无论是信号频率还是信号幅度都是离散的点,所以采用按照控制要求查表输出的方法来输出信号。其中方波的产生方法比较简单只要定时地向外输出0FFH和00H即可。正弦波和三角波的产生原理比较相近,在此以正弦波产生方法为例加以介绍。正弦波的产生是通过对标准正弦波进行采样输出而得到的,采样间隔越小,正弦波的输出精度就越高,失真度越小。本设计中为了提高信号的精度,对信号的四分之一周期采样19个点。每隔一定的时间间隔送出一个幅度值,幅度值可以用查表的方法得到。信号的频率可以用控制每两个输出的时间间隔来完成。这部分控制是由定时计数器来实现的。向计数器装入计数初值,当计数器溢出时就表示时间到,查表输出下一个数。各个频率点的计数初值是人工计算列表,在用程序查表得到的。这一部分程序是在确认键处理中进行的。由于所计算的时间间隔是一个理论值,在实际中会因为系统的传输延时而使频率略微偏离所设计的频率点。同样的,点的输出是靠程序实现的,而程序指令的执行也是需要一定的机器周期的,而且不同的指令执行需要的机器周期是不同的,所以在频率控制这一方面很难达到十分精准,只能尽量降低误差。(1)方波产生程序SQUAREMOVEDPTR,7FFFHCLRALOOPMOVXDPTR,ALCALLDELAYCPLASJMPLOOP方波波形的产生主要是通过控制使单片机输出高低电平来实现的。幅值的调节可以通过控制给DAC0832送入的数值量来调节。(2)锯齿波产生程序SAWTOOTHMOVDPTR,7FFFHMOVA,00HLOOPMOVXDPTR,AINCALCALLDELAYAJMPLOOPDELAYMOVR3,XDEL1MOVR4,YDEL2MOVR5,ZDEL3DJNZR5,DEL3NOPDJNZR4,DEL2DJNZR3,DEL1RETEND锯齿波的产生主要通过使电压不断连续增加,到达一定幅值的时候再瞬间降低为0。(3)正弦波产生程序MOVDPTR,SINTAB正弦表写入内部RAM6DH7FHMOVR0,6DHLOOPCLRAMOVCA,ADPTRMOVR0,AINCDPTRINCR0CJNER0,80H,LOOPMOVDPTR,7FFFH设置D/A转换器的端口地址MOVR0,6DH设置正弦表指针LOOP1MOVA,R0查表MOVXDPTR,AD/A转换ACALLDELAY延时,等待转换结束DECR0正弦表位移量增量CJNER0,6DH,LOOP1第一象限输出完LOOP2MOVA,R0查表MOVXDPTR,AD/A转换ACALLDELAY延时,等待转换结束DECR0正弦表位移量减量CJNER0,6DH,LOOP2第二象限输出完LOOP3MOVA,R0查表CPLA表值取反MOVXDPTR,AD/A转换ACALLDELAY延时,等待转换结束INCR0正弦表位移量增量CJNER0,7FH,LOOP3第三象限输出完LOOP4MOVA,R0查表CPLA表值取反MOVXDPTR,AD/A转换ACALLDELAY延时,等待转换结束DECR0正弦表位移量减量CJNER0,6DH,LOOP4第四象限输出完SJMPLOOP1DELAYMOVR7,200延时50MSDEL1MOVR6,123NOPDEL2JNZR6,DEL2DJNZR7,DEL1RETSINTABDB80H,83H,86H,89H,8DH,90H,93H,96HDB99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEHDB0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5HDB0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8HDB0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9HDB0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5HDB0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDHDB0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDHDB0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6HDB0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAHDB0E9H,0E7H,0E5H,0E3H,0E1H,0DEH,0DDH,0DAHDB0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7HDB0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1HDB0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99HDB96H,93H,90H,8DH,89H,86H,83H,80HDB80H,7CH,79H,78H,72H,6FH,6CH,69HDB66H,63H,60H,5DH,5AH,57H,55H,51HDB4EH,4CH,48H,45H,43H,40H,3DH,3AHDB38H,35H,33H,30H,2EH,2BH,29H,27HDB25H,22H,20H,1EH,1CH,1AH,18H,16HDB15H,13H,11H,10H,0EH,0DH,0BH,0AHDB09H,08H,07H,06H,05H,04H,03H,02HDB02H,01H,00H,00H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,01H,02HDB02H,03H,04H,05H,06H,07H,08H,09HDB0AH,0BH,0DH,0EH,10H,11H,13H,15HDB16H,18H,1AH,1CH,1EH,20H,22H,25HDB27H,29H,2BH,2EH,30H,33H,35H,38HDB3AH,3DH,40H,43H,45H,48H,4CH,4EHDB51H,55H,57H,5AH,5DH,60H,63H,66HDB69H,6CH,6FH,72H,76H,79H,7CH,80HEND因为正弦波的波形没有规律的变化,所以,正弦波的产生主要是通过对正弦波四个象限的电压值取点采样,将数据输入表格,当要求输出正弦波的时候,查表输出。43本章小结本章主要介绍了系统的软件解决方案,详细给出了对课题的理解和解决思路。对整体软件进行了分模块阐述,对大部分内容附加了流程图加以详解。第5章系统的安装与调试51系统设计的安装与调试设计是最终要投入实际应用的,因此,整个设计的安装、调试便是设计的重要环节。系统的调试分为硬件焊接和软件调试。硬件焊接是整个调试的基础,而软件调试又是系统是否正常工作的核心内容。因此,这两部分调试要按照严格的顺序,并要有严格认真的态度来对待。52系统的各部分调试521系统硬件调试硬件的调试要从硬件电路焊接开始,硬件电路的焊接也是整个调试过程的基础。在硬件焊接之前,我们仔细检查了根据自己的电路图所需要的各个元件,核对其型号和数值,以免出现错焊的现象。每一个元器件,都用万用表测试过后再使用,以保证其工作在正常状态。在检查之后,尽量按照电路模块摆放各元件,使电路美观,并且为各部分留出充裕的空间,这样会为电路的调试和检查电路提供很大的方便。在这些准备工作做好后,开始焊接电路。焊接的时候是一部分一部分的焊上去,一个模块一个模块的焊,焊完之后要仔细检查电路的焊接情况,用万用表检查电路是否有短路现象,尤其是电源和地之间的短路现象,如果短路现象没有被发现的话,将导致整个系统的非正常工作,甚至是系统崩溃,还有可能烧坏电源出现危险。检查无误后,可以用仿真器来将相应部分的程序部分在电路上进行仿真,这样可以检查电路的工作情况,也是分级调试的重要方法。在本设计调试的初级阶段,首先要确定单片机的最小系统可以正常工作,这是随后进行一切调试过程的基础。随后编写一些简单的程序,验证键盘操作部分和显示部分可以正常工作。在调试过程中,当确认电路焊接好后,要将单片机插在插座上,通电,然后用示波器看其晶体振荡器两端是否有方波产生。如果出现方波,则表示晶体振荡器完好。之后还要测量单片机的30引脚,看它是否也会输出方波,并且其输出频率是晶体振荡器的1/6。这些工作都是保证单片机能够正常工作的前提。522系统软件调试系统的软件相当于系统的内脏和灵魂,软件的正确编写是系统能否按要求工作的前提。由于我对软件知识的缺乏,所以最初的软件调试出现了很多困难。在对程序指令及运行时序的了解之后,程序完成的比较顺利。在软件编写的开始,我先画了软件的流程图,然后按照程序流程图来编写相应的子程序,使程序易于理解和更正。程序的编写要层次分明,尽量减少复杂多变的跳转指令,因为伴随着跳转指令的增加,系统执行指令的时序常常出现错乱,并且经常出现逻辑错误。在发现这个问题之后,尽量运用一些可重复调用的子程序,尽量避免程序的错乱。在显示模块的调试中,首先测量数码管是否有坏段,在编写最简单的程序验证其是不是可以工作。并确认数码管不亮的地方不是由软件及其他电路引起的故障。观察显示是否正常单片机与D/A的转化、波形产生部分的程序调试比较复杂。这部分的仿真调试主要是查看波形产生程序的工作是否正常,还有监视数据输出端口,也就是P0口是数据是否变化。对两片D/A的选通信号也是重要的监视对象。53在调试过程中遇到的问题在调试显示部分电路的时候,刚开始,烧录好程序之后,给电路通电,发现数码管工作状态很不正常,有的亮有的不亮,而且很不稳定。仔细检查之后,有几处的焊接不很结实,出现了虚焊的现象,还有晶振也没有焊好,当修改好这部分之后,显示部分和按键部分都可以正常工作。通过对这两个故障的排查,总结出电路短路和虚焊是调试中的最大问题,所以在今后的调试中都要仔细排查这一问题。在波形产生模块的调试中,发现D/A始终没有数据。根据这个现象,仔细检查了软件的编写。问题出在没有向该口送数据,原来的程序指令是向D/A的地址里送数据,这种方法我也是第一次使用,结果不能实现。在此情况下我更改了指令,直接向P0口送数据,结果P0口开始按要求传送数据,故障解决。由此问题我学到了关于编程的解决问题,指令也许没有错,但是在特定的功能上有些指令是不能替代的,也必须多加调试才能解决。调试的过程中,当信号不能正常输出时,很难判断问题出在哪里。这个时候,将软件仿真暂停,然后可以用万用表测量由单片机输出给D/A转换器各位的电平,也可以测量D/A转换器的输出管脚,看输出的电平是否符合理论要求。用这种方法可以检测到具体是哪个电路出了问题,是检查电路的一个好方法。在实际接收波形信号时,发现频率总是和要求有一定差距。分析其原因是计数器的定时完成的频率控制只是一个近似值。尽管可以从理论上计算出两个频率点的时间间隔,但有时候这个时间间隔用计数器来定时的话,所要求计数并不是一个正数,所以无法达到准确。随着频率的增大,这种影响也就越突出。系统延时和程序执行周期对频率都有一定影响,这些问题的存在使频率点计算十分复杂,在今后的设计中都要着重注意,要把程序的执行周期对频率的影响认真考虑一下。54本章小结本章主要介绍了整个系统的实现过程。包括硬件电路的焊接、调试过程和发现问题、解决问题的过程。并提出了一些对课题的更深理解和对今后提出了一些注意事项。结论本次的毕业设计运用了AT89S51单片机和DAC0832数模转换器组成了低频信号发生器。AT89S51的功能强、体积小、价格低和高可靠性的特点,以及DAC0832灵活使用和高精度的特点,使得本次设计具有低成本、高可靠性、灵活方便的特点。本次设计成功的产生了正弦波、三角波和方波。在教学实验中可以得到广泛的应用。然而在实际中我们能够产生的波形远远不只这三种,只要增加相应的波形程序便可以产生所要的波形。也可以增加一些程序使得信号的相位可调,这也是本次设计的一大特点。由于实现方法比较简单,并且所用单片机I/O接口比较少,可以按用户需要增加一些其他功能。本次设计的信号频率都是在低频段,由于设计中只需考虑设计要求,频率范围做的不是很大。其主要限制因素是信号的采样点的多少和所用晶体振荡器的频率选择。当然,编程的简要程度也会影响系统的最大输出频率。在今后的设计中可以根据自己的需要选择合适的各因素组合,选择最适合自己的采样率,这样才可以达到满足失真度和频带宽度两者兼顾的目的。今后如果设计的话,应该在合理的采样率下工夫,并且尽量压缩编程命令语句,使得指令所耗费的时间减少。这样可以提高计数器计时的精度。在设计中我们也看到,由于采用计数器来控制频率,所产生的频率在大多数情况下不能完好的等于所要频率,只是一个近似值。而且频率越大、失真也就越大。而且程序的精简度对信号的频率控制影响也逐渐增大。这些问题都是可以随着设计经验的增加而逐渐得到较好的解决,但却是不可避免的。总结与体会这次的毕业设计,是大学以来我所接触的最为系统最为规范的设计,时间的跨度也比较大。从一开始的查找资料、确定最终设计方案,到最后的整体电路调试,每一个过程,每一个细节都是认真仔细的走过来的,最终我的设计结果虽然没有完全的满足是设计要求,但是,也成功实现了部分功能。在本设计中,硬件部分遇到的最大的困难就是电路杂乱,最终做成的成品电路很不美观,但是实用价值没有因此而降低,在软件程序的编写方面,波形产生部分的数值要经过详细的计算才,这样会提高输出波形的精度。本次设计的过程中我碰到很多的困难,但是在指导老师详细的指导下,那些拦路虎被我一个个的解决,对于我来说,是一个很好的提升机会。在此过程中,我学到了很多东西,对我自己解决问题分析问题的能力也是一个新的挑战。致谢本次设计的成功完成,首先要感谢电子教研室的全体老师,没有他们的帮助和指导,设计是难以完成的。感谢XXX老师老师对我本次设计的细心指导和督促,对我的设计给予了很大的帮助。在实验中给予了我很多方法和思路,对我有很大的启发。感谢胡老师对本次设计的支持和帮助,使得本次设计顺利完成。同样感谢我身边的同学们,在与他们的讨论中,找到了许多问题的解决方法也少走了很多弯路。再次感谢所有对本次设计有过帮助的单位和个人,真心地祝福你们参考文献1徐科军主编传感器与检测技术北京电子工业出版社,200492李光飞,楼然苗等编著单片机课程实例指导北京北京航空航天大学出版社,200493胡健主编单片机原理及接口技术实践教程北京机械工业出版社,200484马忠梅,籍顺心等单片机的C语言应用程序设计北京北京航空航天大学出版社,199915徐爱钧,彭秀华单片机高级语言C51应用程序设计北京电子工业出版社,199866张迎新单片微型计算机原理、应用以及接口技术(第2版)北京国防工业出版社20047苏平单片几原理与接口技术北京电子工业出版社20038张李勇,陈朗,张飞舟基于8051单片机的双通道波形发生器的设计与实现J计算机工程与应用,2004089高明卿,柴钰,宋先文,刘开求一种单片机可控多功能波形发生器的设计J西安科技学院学报,20040210陈传伟,汲晓鸥单片机智能化波形发生器J仪表技术与传感器,20011011赵建领51系列单片机开发宝典北京电子工业出版

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论