您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于51单片机的波形发生器毕业论文设计-最终版
页1基于单片机原理的波形发生器摘要:本系统采用单片机C8051为控制核心,输出数字量,然后由DAC0832把数字量转换成模拟量;但是输出的是电流,需要用运放(OP07),把电流转换成电压量。显示利用的是LCD1602的液晶,显示其波形,幅值。按键应用的是独立按键,用来波形的切换,幅值,频率的调解。其运算核心,我们通过MATLAB对正弦波,三角板,正弦波进行采样,得到一组组数据,然后同过数组存储;利用中断对数组进行扫描。其频率的调解就是调节其中断间隔的时间,幅值就是调节其数字的大小(同时乘以某个小于1的数)。为了波形的合成,我们采用的点的个数都是20个。关键词:AT-89C51DAC0832独立按键OP07页2TheDesignofWaveformGeneratorBasedon51Abstract:Thissystemadoptssingle-chipC8051asthecontrolcore,digitaloutput,andthenbyDAC0832convertdigitaltoanalog;Buttheoutputiscurrent,theneedtouseoperationalamplifier(OP07),theamountofcurrentintoavoltage.DisplayusingtheLCD1602LCD,displaythewaveformamplitude.Keyapplicationsisindependent,switchtowaveform,amplitude,frequencyofmediation.Itscoreoperation,weuseMATLABtosinewave,triangle,thesinewavesamples,groupsofdata,andthenwithanarrayofstorage;Usingtheinterruptforscanningarray.Thefrequencyofmediationistoadjustoneintervaltime,amplitudeisadjustingthesizeofitsdigital(multipliedbyacertainnumberoflessthan1)atthesametime.Forthewaveformsynthesis,weadoptthenumberofpointsis20.Keywords:AT-89C51DAC0832SeparatebuttonOP07页3一、题目要求及分析设计任务:设计制作一个波形发生器,该波形发生器能产生正弦波、方波、三角波和由用户编辑的特定形状波形。示意图如下:图1设计要求图设计要求:1.具有产生正弦波、方波、三角波三种周期性波形的功能;2.用键盘输入编辑生成上述三种波形(同周期)的线性组合波形,以及由基波及其谐波(5次以下)线性组合的波形。3.具有波形存储功能。4.输出波形的频率范围为100Hz~20kHz(非正弦波频率按10次谐波计算);重复频率可调,频率步进间隔≤100Hz。5.输出波形幅度范围O~5V(峰—峰值),可按步进0.1V(峰—峰值)调整。6.具有显示输出波形的类型、重复频率(周期)和幅度的功能。7.增加红外配置功能(串口配置程序或其他方式)页4二、总体系统方案设计题目要求实现的任务是设计并制作一个函数信号发生器,能够产生正弦波、方波、三角波,要求不用DDS和专用的波形产生芯片,频率范围在1Hz~1MHZ可调,在频率范围为1HZ~10KHz时,步进不大于10Hz在频率范围为10KHz~1MHz时,步进不大于100Hz,并且电压范围在0~5V可调,步进为0.1V,能够实时的显示波形的类型及其频率和幅值。现在对以下方案进论证和验证。2.1总体设计思路根据题目的要求,经过仔细的考虑各种要素,制定了整体方案:以AT89C51单片机为控制核心,P0口接DAC0832信号输入并进行数模转换,P1口接矩阵键盘,P2口接液晶显示器LCD1602,由程序控制P0口产生波形(分别是正弦波、方波、三角波),再由按键及按键次数控制产生波形的种类及频率和幅值在一定范围内可调,并且能够按任意键实现波形频率和幅值的设定(不通过步进按键设定来控制)。由运放OP07实现DAC0832输出电流到电压的转换,即实现数字信号到模拟信号的转换。在LCD上实时的显示波形的频率和幅值,波形在示波器上产生。其波形的存储方式,我们通过按键确定,一旦按键按下后,就把当时的波形对应的参数存储起来,例如幅度值,频率值等参数。波形的合成:为了波形的合成,我们在采样的时候,对正弦波,三角波,方波都只取乐20个点;因为点越少,其频率达到的值就会越大;合成时就是对幅值点进行一个叠加后赋给DAC0832输出一组波形。红外,通过外部中断高低电平的延时的时间来进行解码。页52.2总体框图本系统总体框图如图2所示:图2系统总体框图2.3信号发生部分方案一:采用模拟分立元件或单片压控函数发生器,可以产生正弦波、方波、三角波,通过调整外部元件可以改变输出频率,但采用模拟元器件由于元件分散性太大,因而产生频率稳定性较差,精度低,地抗干扰能力低,成本高,而且灵活心性较差,不能实现任意波形以及波形运算输出等智能化的功能。方案二:采用锁相式频率合成方案,锁相式频率合成一个高稳定度和精确度的大量离散技术,他在一定程度上解决了既要频率稳定精确又要频率在较大的范围内可调的矛盾,但是频率受VCO可便频率范围的影响,高低频率比不可能做的很高,而且只能产生正弦波或方波,不能满足任意波形的要求。方案三:采用单片机和数模转换DAC0832实现波形的产生。波形的产生是通过AT89C51执行方波波形程序,向D/A转换器的输入端按一定的规律发生数据,从而在DA转换电路输出端得到相应的电压波形。在AT89C51的P1口接矩阵按键,通过软件编程来选择波形、幅值、频率,每种波形对应一个按键,此方案原理简单,实现起来比较容易。经比较,方案三能够更好的实现题目的要求,三种波形的产生可有程序控制,并通过按键选择波形的输出,在示波器上显示波形。波形的周期与频率步进也可以用程页6序控制,具有线路简单、结构紧凑等优点。在本设计的基础上,加上LCD显示器,则可以通过按键设定波形频率,并在LCD显示频率、幅值电压。输出的波形稳定,精度高,滤波好,抗干扰效果好,连接简单,性价比高。综上所述,我们选择第三种方案。2.4显示部分方案一:数码管显示,由于本题要求实时的显示输出信号的幅度、频率,而数字不能显示字符。方案二:LED点阵显示,LED点阵显示虽然能够显示数字和字符,但是显示的效果不好,而且不易编程。方案三:LCD液晶显示,LCD液晶显示不但能显示字符和数字,而且效果较好,且容易实现。2.5按键部分方案一:采用独立按键,他的按键的数目比少,但是它的结构简单,方便操作,执行效率高等优势。方案二:采用矩阵键盘,它以较少得IO口实现了按键的功能,随之其操作比较复杂。经对比,由于我们需求的按键比较少,但是对执行的效率比较高,所以采用独立按键。页7三、硬件电路本系统由单片机、波形转换(D/A)电路、显示接口电路、键盘电路、电源电路、串口电路等六部分组成。电路图如图3.1所示:图3硬件电路原理图3.1功能与基本原理功能:形成扫描码、键值识别、案件处理、参数设置、字符设置等形成液晶显示波形的类型及频率和幅值;通过定时器0产生定时中断,形成波形的数字编码,并输出到D/A接口电路和显示驱动电路。AT89C51外接12M晶振作为时钟频率,并采用电源复位设计。复位电路采用上电复位,其工作原理是,当通电时,电容两端相当于短路,于是TST引脚为高电平,然页8后对电容充电。RST端电压慢慢下降,降到一定程度,即为低电平,单片机开始工作。产生方波程序思路:对于小于100Hz的频率,根据定时器溢出时间1us,将频率值换算为定时器溢出次数,当达到规定的次数时,将输出管脚的状态取反达到方波的产生;对于大于100HZ的频率,直接根据频率值设置其定时溢出的时间,当溢出时间达到时,将输出管脚取反达到方波的产生。产生三角波程序思路:要产生峰值电压为5V的三角波,一个周期需要定时510次,由此便可以计算出每次定时溢出的时间,再将每次定时的电压加权便可以达到三角波的波形;产生正弦波程序思路:给正弦波的一个周期设定table表,由20个数据,相当于每个周期定时255次,则每次定时溢出的时间便可计算出,每个点的电压加权便可得到正弦波的电压,即,形成正弦波。3.2资源分配软、硬件设计是比不可少的,为了满足功能和指标的要求,资源分配为:单片机用12MHz晶振,P0口与DAC0832相连;P1口接矩阵按键,实现频率、幅值以及波形的选择;P2口接LCD1602液晶显示器,实时显示波形的频率、幅值、类型。3.2.1显示接口电路功能:驱动LCD液晶显示、扫描按钮。由LCD1602液晶显示器和矩阵按键组成。当某一按键按下时,扫描程序扫描到之后,通过P2口将数字信号发送到LCD1602,LCD1602液晶专门用于显示字母、数字、符号等点阵式LCD,其外接电压时5V。扫描利用软件程序实现,当某一按键按下时,扫描立即检测到,随即调用子程序,执行相应的功能。其与单片机连接如图4所示:页9图4显示部分电路图3.3波形转换(D/A)电路功能:将波形样值得编码转换成模拟值,完成波形的输出。由一片DAC0832和LF356运放组成。DAC0832是一个具有两个输入数据寄存器的8位DAC。目前生产的DAC芯片分为两类,一类芯片内部设置有数据寄存器,不需要外加电路就可以直接与微型计算机接口。另一类芯片内没有数据寄存器,输出信号随数据输入线的状态的变化而变化,因此不能直接与微型计算机接口,必须通过并行口与微型计算机接口。DAC0832是具有20条引线的双列直插式CMOS器件,它内部具有两级数据寄存器,完成8位电流D/A转换,股不需要外加电路。DAC0832是电流输出型,示波器上显示波形,通常需要电压信号,电流信号到电压信号的转换可以用运算放大器LF356实现。单片机想DAC0832发送数字编码,产生不同的输出。先利用采样定理对各种波形进行抽样,然后把各种采样值进行编码,收到的数字量存入各个波形表,执行程序时通过查表的方法依次取出,经过D/A转换后输出就可以得到波形。假如N个点构成波形的一个周期,则DAC0832输出N个样点值后,样值点形成运动轨迹,即,一个周期。重复输出N个点后,成为第二个周期。利用单片机的晶振控制输出周期的速度,也就是控制输出的波形的频率。这样就控制了输出波形的及其幅值和频率,例如:正弦波,页10取20个样值点。具体连接的电路图如图5所示:图5D/A转换的电路连接图3.4红外电路图6红外电路红外的工作原理:51单片机对遥控的解码和我们前面所讲的串口并口通信不同,他不是单纯的用高电平代表1,低电平代表0。这一点大家要从思想上面转变过来。他是发送一连串的数据帧,这个数据帧就是一连串的二进制代码,单片机通过区分高电平的持续时间来区别红外编码的。我们就以HC6800单片机上的红外接头为例来说明,页11当高电平的脉冲宽度为1.12ms的时候单片机认为它为0,当高电平的脉冲宽度为2.25的时候单片机认为它为1。单片机是通过判断脉冲的宽度来得到信息位为0还是为1的。当我们按下遥控器的按键时,遥控器将发出如图2的一串二进制代码,我们称它为一帧数据。根据各部分的功能。可将它们分为5部分,分别为引导码、地址码、地址码、数据码、数据反码。遥控器发射代码时.均是低位在前。高位在后。由图2分析可以得到.引导码高电平为4.5ms,低电平为4.5ms。当接收到此码时.表示一帧数据的开始。单片机可以准备接收下面的数据。地址码由8位二进制组成,共256种.图中地址码重发了一次。主要是加强遥控器的可靠性.如果两次地址码不相同.则说明本帧数据有错.应丢弃。不同的设备可以拥有不同的地址码.因此。同种编码的遥控器只要设置地址码不同,也不会相互干扰。。在同一个遥控器中.所有按键发出的地
本文标题:基于51单片机的波形发生器毕业论文设计-最终版
链接地址:https://www.777doc.com/doc-4875544 .html