您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > C/C++资料 > 基于STC89C52的简易波形发生器
摘要本系统是基于STC89C52单片机利用DDS的合成原理的低频信号发生器。采用STC89C52单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、运放电路(LM358)、按键等构成整个系统。通过按键控制可产生方波、三角波、正弦波、锯齿波并可以微调频率大小。通过上位机可以通过PC可以选择波形和波形的频率。其设计简单、性能优好,频率的精度由DA和系统时钟大小决定,所以很易的实现精度调整,系统的性价比高,可用于多种需要低频信号的场所,具有一定的实用性。关键词:STC89C52;DAC0832;LM358;DDS目录摘要....................................................................错误!未定义书签。关键词................................................................错误!未定义书签。1.设计任务与要求..........................................................................12.方案设计与论证............................................................................12.1系统信号发生的方案设计..........................................................12.2系统控制芯片的方案设计..........................................................13硬件系统模块及理论分析.............................................................23.1总体设计框架..............................................................................23.2最小系统模块电路......................................................................23.3DAC0832模块电路.....................................................................33.4按键电路......................................................................................34.系统软件设计..............................................................................44.1主流程图.....................................................................................54.2软件模拟仿真..............................................................................64.3方波仿真图..................................................................................64.4按键检测原理..............................................................................7总结....................................................................................................7参考文献............................................................................................8附件....................................................................................................9I源程序............................................................................................9II总电路图..................................................................................17III总图PCB....................................................................................18IV元器件清单.................................................................................181.设计任务与要求①利用单片机组成一个多波信号发生器。②能输出的波形为三角波、锯齿波、方波、正弦波。③输出波形频率f=1~100Hz、。④输出波形频率通过PC机设置。2.方案设计与论证2.1系统信号发生的方案设计方案一、通过专用DDS芯片如AD9850作为信号发生器件,用专用芯片的特点是,产生的信号频率范围宽,可以产生很高的频率,频率的精度高。但是价格比较贵。方案二、通过产生PWM产生方波,通过低通滤波器变为正弦波,在加上其他外围电路可产生三角波、锯齿波、方波、正弦波。可实现题目要求,这种设计价格便,但是外围比较复杂,频率不好控制。方案三、通过单片机外围加上DA芯片代替专用的DDS芯片,同样应用DDS信号合成原理产生任意想要的信号,这样构造的系统简单,用廉价的DAC0832就可产生满足题目要求的低频信号。结论:通过上述三个方案可以知道,用专用DDS芯片合成性能比较高,价格贵,用于本设计就大材小用,用PWM价格便宜,但是性能不好,所以属于中间的DA芯片是理想的选择。2.2系统控制芯片的方案设计方案一、选用STM32作为控制芯片,STM32内部资源丰富,时钟速度快,是一块性价比极高的芯片,用本系统会使得系统速度提升。尽管性价比高,还是比传统51单片机要贵点,控制指令多,相对于51单片机来说程序要比较复杂。方案二、选用STC公司的51单片机,STC89C52是对传统51做了增强,但是与传统51是兼容的,所以指令简单易于操作,12MHZ的系统完全满足题目涉及要求。结论:通过上述可以知道,STM32’性价比高,性能强大,但是用本系统是大材小用,而STC89C52则完全能满足题目要求而且价格比STM32要便宜,所以本设计选用STC89C52作为控制芯片。-2-3硬件系统模块及理论分析3.1总体设计框架STC89C52DAC0832按键PC图3.1总体系统框架是由按键、最小系统模块、DAC0832、转串口模块组成,这样就可以实现多函数输出和PC机通信。按键是为了实现波形的切换和频率的大小调节,最小系统是系统的主控制模块,是沟通按键、DAC0832模块、PC机的主控模块,是系统必不可少的模块。转串口模块式为了实现单片机与PC的通信,PC可以通过上位机控制波形的选择和频率大小设置。3.2最小系统模块电路EA/VPP31X119X218RESET9RD/P3717WR/P3616P32/INT012P33/INT113P34/T014P35/T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/PRDG30P31/TXD11P30/RXD10VCC40GND20AT89S53U1AT89S52GNDX1X2+5+5RESET+5RESETP10P11P12P13P14P15P16P17P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27P30P31P32P33P34P35P36ALEPSENY2晶振X1X2C730PC830PRXDTXDCS4K7R3Res210uFC1CapPol1123456789R11R*8图3.2-3-图3.2是STC89C52的最小系统图,组成部分有时钟电路和复位电路。实现的功能是控制DAC0832的模拟输出量的大小和输出的频率,以产生方波、三角波、正弦波、锯齿波,并通过与转串口电路的结合以实现与PC机之间的通信。3.3DAC0832模块电路CS1WR12GND3DI34DI25DI16DI07Vref8Rfb9GND10Iout111Iout212DI713DI614DI515DI416XFER17WR218ILE19VCC20J1DAC0832+5P20P21P22P23P24P25P26P27OUTV1KR8Res20.1uFC9CapCS-565748*BLM358+12-12图3.3上图中DAC0832电路的接法是直通型接法,这种接法的最大特点就是只需要对DAC0832的数据口赋值就可以实现电压的输出,所以操作起来非常方便,而DAC0832输出的并不是电压,而是电流所以要在输出端加上一个运放实现电流到电压的转换。选用LM358的原因是它输出端的电压可以达到负电压,这样就可以实现单电源供电了。3.4按键电路P00P011243S1SWDIP-21243S2SWDIP-2图3.4-4-按键是通过单片机的P0口进行监控,当单片机检查到有按键按下时,单片机就会根据按键对DA输出进行相应的改变,这样就可以实现按键对输出波形的切换和频率的调节。3.5转串口电路CKO1ACT2TXD3RXD4V35UD+6UD-7GND8XI9XO10CTS11DSR12RI13DCD14DTR15RTS16NC17R23218VCC19NOS201CH340VCC1DATA-2DATA+3GND456USB1USBPORTVCC0.01uFC2CapV3V3UD+UD+UD-UD-Y1晶振22C4Cap22C3CapXIXIXOTXDRXD4K7R1Res24K7R2Res2VCCVCCXO10uFC5CapPol10.1uFC6CapVCC图3.5转串口用的芯片是CH340,CH340产家提供有两种接法,一种是可以把PC机串口的电平转变为USB电平,另外一种可以直接把单片机的电平转换为USB电平,本设计选用的是第二种接法,因为这样接就可以省去了MAX232把单片机电平转换外PC机电平,这样设计电路变得更加可靠稳定了,同时也可以节省成本,同样本电路也是需要时钟电路让CH340能正常工作。4.系统软件设计系统软件由主程序和产生波形的子程序组成,软件设计主要是产生各种波形的子程序的编程,通过编程可得到各种波形。周期的改变可采用插入延时子程序的方法来实现。主程序和几种常用波形子程序的流程图如图所示。-5-4.1主流程图开始结束初始化是否有按键或上位机设置调整波形或频率波形是否转换完NYYN图4.1由图4.1可以简单的知道,程序的大概思路是,判断按键与上位机是否发送数据来觉得DA的输出量,初始化的时候程序是写输出频率为200HZ的方波信号。-6-4.2软件模拟仿真图4.2锯齿波仿真锯齿波产生是通过P2口将00H送入寄存器A中,DAC0832输出A中的内容,读取P2口的状态,取反后作为延时常数,当A中的内容不为0FFH时,
本文标题:基于STC89C52的简易波形发生器
链接地址:https://www.777doc.com/doc-7027618 .html