基于单片机的低频信号发生器设计摘要本文设计低频信号发生器,以AT89C52单片机为核心,通过键盘输入控制信号类型和频率的选择,采用DA转换芯片输出相应的波形,同时以示波器进行实时显示信号相关信息,采用汇编语言进行编程,可实现方波,三角波。锯齿波,正弦波四中波形的产生,且波形的频率可调。经测试该设计方案线路优化,结构紧凑,性能优越,满足设计要求。关键词:单片机,DA转换,信号发生器ABSTRACTLowfrequencysignalgeneratordesign,thispaperUSESAT89C52single-chipmicrocomputerasthecore,throughthekeyboardinputcontrolsignaltypeandfrequencyofchoice,withDAconversionchipoutputcorrespondingwaveform,atthesametime,theLEDdisplayinformationreal-timedisplaysignal,usingassemblylanguageprogramming,whichcanrealizesquarewave,trianglewave.Productionofsawtooth,sinewave4waveform,andthefrequencyofthewaveformisadjustable.Bytestingthedesignschemeofcircuitoptimization,compactstructure,superiorperformance,meetthedesignrequirements.KeyWords:Singlechipmicrocomputer,DAconversion,signalgenerator目录摘要..............................................................................................................................................1ABSTRACT.................................................错误!未定义书签。1设计要求及方案选择.....................错误!未定义书签。1.1设计要求.....................................................31.2方案选择.....................................................32理论分析与设计.............................................................................................................42.1按键电路的分析与设计.........................................42.2D/A转换模块的分析与设计.....................................53电路设计.............................................................................................................................63.1硬件电路的设计...............................................63.2软件的设计..................................................114系统测试..............................................................................................................................174.1调试所用的基本仪器清单......................................174.2调试结果....................................................174.3测试结果分析................................................175总结.........................................................................................................................................17参考文献...................................................................................................................................181设计要求及方案选择1.1设计要求(一)任务利用单片机与D/A转换器件DAC0832设计一个低频信号发生器,能产生正弦波、方波、锯齿波、三角波等波形。(二)要求1.基本要求(1)输出波形可用按键选择。(2)设计电路(3)在KEIL中编辑、编译、调试程序,并在protuse中仿真。2.扩展部分(选作)(1)输出正弦波幅度:Vppm≥20V.(2)输出负载能力:≥250Ma。3.写出设计报告(报告有规定格式要求)1.2方案选择依据应用场合.需要实现的波形种类,波形发生器的具体指标要求会有所不同。依据不间的设计要求选取不同的设计方案。通常,波形发生器需要实现的波形有正弦波、方波、三角波和锯齿波。有些场合可能还需要任意波形的产生。各种波形共有的指标有:波形的频率、幅度要求,频率稳定度,准确度等。对于不同波形,具体的指标要求也会有所差异。其具体的实现方法具体有以下几种:方案一:采用函数信号发生器ICL8038集成模拟芯片,它足一种可以同时产生方波、三角波、正弦波的专用集成屯路。但是这种模块产生的波形都不是纯净的波形,会寄生一些高次谐波分量,采用其他的措施虽可滤除-些,但不能完全滤除掉。方案二:釆用単片函数发生器(如8038).8038可以同时产生方波,三角波和正弦波等,而且方法简单易行,用D/A转换器的输出来调制电H压也可以实现数控调整频率,但是产生的信号频率的稳定性差。方案二:可以由晶体管、运放IC等通用器件制作,更多的则采用专门的函数倍号发生器1C产生。早期的函数倍号发生器IC,如L8038、BA205、XR2207/2209等,它们的功能较少,精度不高,频率上限只有300kHz,无法产生史高频率的信号,调节方式也不够灵活,频率和占空比不能独立调节,二者互相影响。方案四:釆用锁相式频率合成器,利用锁相环,将压控振荡器的输出频率锁定在所需要的频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,而且电路复杂不容易实现。方案五:釆用单片机编程的方法来实现。该方法可以通过编程来控制波箱的频率和幅度,而且在硬件电路不变的情况下可以通过改变程序来实现频率的改变。该种方案要对AT89C52中片机的各个I/O口允分利用。这样总体来说,能对中片机各个接口都利用上,而不多用其它芯片,从而减小了系统的成本。比较几种方案,方案一波形不理想,方案二所产生的频率信号不够稳定,方案二不能更好的体现所学知识而且效果不佳,方案四电路复杂不容易实现,方案五在低频范围内稳定性好、操作方便、功耗小、耗电少,而且方案更加满足设计的要求,在完成设计的同时能够更好的发挥间学们的各种各样的想法。综合考虑,方案五各项性能和指标都优于其他几种方案,能使输出频率有较好的稳定性,充分体现了模块化设计的要求,所以本设计采用方案五。2理论分析与设计2.1按键电路的分析与设计键盘电路是整个电路的控制部分。通过K1控制产生方波,K2控制产生三角波,K3控制产生正弦波,K4控制产生锯齿波。调幅与调频本应采用另连个键控制,但在分析DAC0832的输出,U=(Vref/2n)*D,由此公式可知,输出波形的幅度与Vref的大小有关,所以我们通过控制Vref的大小来改变波形的幅度,以简化我们的程序。频率我们采用P2口控制,通过控制P2口的大小来改变程序中循环次数,来达到控制延时的目的,继而控制了频率。键盘接口如下图图2.1键盘接口电路2.2D/A转换模块的电路分析与设计数模转换电路采用的是DAC0832芯片。它是一种使用较多的8位D/A转换器,其转换时间lus,工作电压为+5V到+15V,基准电压-10V到+10V。由于其内部有两个8位寄存器和一个8位D/A转换器,故可进行两级缓冲操作,使操作有很大的灵活性,本设计采用单缓冲方式。DAC0832与AT89C52的连接。单机P0口与数模转换器的数据口连接,为保证单片机P0口的驱动能力,在P0口加上上拉电阻。数模转换电路的连接如下图:图2.2数模转换电路的连接图3电路设计3.1硬件电路的设计3.1.1硬件电路连接图图3.1硬件电路连接图3.1.2芯片说明(1)AT89C52单片机图3.2为AT89C52单片机引脚图图3.2单片机引脚图AT89C51管脚说明:VCC:供电电压GND:接地P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的笫八位。在FIASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。PI口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,PI口作为第八位地址接收。P2口:P2口为个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。RST:复位输入。当振荡器复位器件时,耍保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节,在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0,此时,ALE只有在执行MOVX,MOVC指令足ALE才起作用。此外,该引脚被略微拉髙。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA;VPP:当VEA持低电平时,则在:此期间外部程储器(000