您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 基于MSP430G2553的简易信号发生器(DOC)
基于MSP430G2553的简易信号发生器浙江工业大学摘要:本作品基于TI的LaunchPad设计了一款简易信号发生器,选用TI的MSP430G2553单片机。通过单片机加外围LCD12864、DAC0832及TL082放大电路,实现了可产生正弦波、锯齿波、三角波、方波的简易信号发生器,且频率可调。关键词:MSP430G2553DAC0832正弦波锯齿波三角波一、作品基本功能介绍1技术参数请见表1.1所示。波形种类正弦波锯齿波三角波方波频率范围(Hz)100~1200频率步进(Hz)100最大幅值VP-P(V)0~4.7输出阻抗(Ω)50其他功能频率按键可调、输出使能控制放大、LCD人机指示表1.1技术参数2在信号产生和处理方面。通过MSP430G2553内部的TA定时器,外加DAC0832产生四种波形,在DA输出后,通过一个由运算放大器TL082和精密可调电位器组成的运算放大电路,以实现信号的增益控制。最后在50负载电阻上输出电压。系统总体框图如图1.1所示。LCD12864MSP430G2553按键DAC0832放大模块50ΩVout图1.1系统总体框图3人机交互方面。本作品使用三个独立按键来控制菜单选项,其功能如表1.2所示。正弦波锯齿波三角波方波增频减频短按P2.2长按P2.1长按P2.0长按P2.2短按P2.1短按P2.0长按时间大于1s短按时间大于10ms表1.2按键功能说明二、系统硬件和软件说明1硬件构成本作品使用LCD12864作为人机交互模块,由于MSP430G2553的I/O口很少,所以通过对LCD的进行串行数据输入,以节约I/O口。其连接如图1.2所示。LCD12864GNDVCCVORSR/WEDB0DB1DB2DB3DB4DB5DB6DB7PSBNCRSTVOUTBLABLKP2.5P2.4P2.3VCC+5V图1.2LCD12864硬件连接由于是通过MSP430G2553输出数字量的信号来产生波形,因此需要用到DA将数字量转换为模拟量。考虑到单片机的I/O口数量,选用8位的DA来进行数模转换。硬件如图1.3所示,DAC0832采用直通工作方式,节省I/O口控制引脚。+5V+5VIOUTP1.0-P1.3P1.4-P1.7图1.3DAC0832直通方式硬件连接由DAC输出模拟量后,由于波形的幅值太小,因此还需要进行幅值的放大。其中R3是精密可调电位器,方便用户对信号的幅度进行调节。50Ω的电阻可以保证整个信号发生器的输出阻抗为50Ω。信号幅度调节和输出部分电路如图1.4所示。50R18P7SMAGND10K1122R10+5V-5V814321U3ALM358AD2kR21104C8104C13GNDGND2kR14TL082R1R2R3R4C1C2图1.4幅值放大的硬件电路2软件系统整个系统的软件主要有主函数、定时器TA中断函数、按键中断函数三个大的模块组成。系统软件框图如图1.5所示。定时器TA中断函数主函数按键中断函数图1.5系统软件框图各函数的作用和相互关系:在主函数中首先对系统的时钟、I/O口、定时器TA进行了初始化。初始化完毕,开启总中断。接着进入while(1)循环等待定时器中断子程序的执行。按键中断函数主要对三个菜单按键(P2.2、P2.1、P2.0)的动作进行处理。这三个菜单按键可以实现波形的切换,频率的加减,信号的使能输出。在按键中断函数中修改的信号频率大小和波形的种类这两个参数会被主函数和定时器TA中断函数调用。定时器频率计算原理。TA定时器设置为连续增计数模式,时钟频率fs采用SMCLK同步。若要产生XHz的正弦波、锯齿波、三角波和方波则有:TA0CCR0=Xs200f在上式中,寄存器TA0CCR0是用以定时器TA的初始值。本作品采用的是200个采样点。三、方案论证方案一:由MSP430G2553结合低通滤波器电路来模拟实现DDS芯片的功能,进而产生各种波形。优缺点:利用此方案可以充分利用MSP430G2553上资源,使系统成本大大降低。但是此方案只能产生低频率的波形,不适合此次参赛题目要求。方案二:控制部分由MSP430G2553实现,波形产生部分使用FPGA或CPLD芯片采用波形查找表结合高速的DAC产生。优缺点:此方案自由度大,符合现在的发展趋势。但是,FPGA或CPLD芯片价格相对比较高,加上高速的DAC芯片,使设计成本大大提高。而且整个设计中MSP430G2553仅仅完成简单的控制功能,资源得不到充分的利用。方案三:由MSP430G2553实现对专门的DDS芯片(如AD9850、AD9833)的控制,来产生各种波形。优缺点:利用此方案产生波形的频率稳定度高,易于程控。但是,专门的DDS芯片价格高,系统成本高。方案四:控制部分由MSP430G2553实现,波形通过代码控制生成数字量信号,再用D/A转换器输出正弦波、锯齿波、三角波及方波,也可以实现频率的数控调整。优缺点:方法简单易行,采用单片专用芯片,系统体积大大减小。可产生较高的频率,容易调节频率。但是,未能很好的利用MSP430G2553的内部资源。综上,方案四的系统成本低,性价比较高。方案的可行性也较高,外围电路简单,能产生较高的频率且可以满足此次参赛要求。所以本作品最终采用方案四。四、程序流程图1主程序流程图开机后,主程序首先关闭看门狗,接着对相应的I/O口、系统时钟、定时器TA进行初始化,完成后开总中断。然后,执行main函数。主程序流程图如图1.6所示。开始系统初始化Main()函数图1.6主程序流程图2定时器中断服务子程序流程图定时器TA的中断服务程序中主要处理判断信号标志位key的值,然后输出相应值的波形。定时器中断服务程序流程图如图1.7所示。3按键中断服务程序流程图按键中断服务程序中主要处理波形的选择、频率的加减、信号输出使能等功能。按键中断服务程序流程图见图1.8所示。定时器TA中断正弦波标志位Key==222?返回YNNY正弦波信号输出锯齿波信号输出三角波信号输出YY判断信号标志位key锯齿波标志位Key==221?三角波标志位Key==220?方波标志位Key==223?方波信号输出N图1.7定时器中断服务子程序流程图按键中断P2.2按下?返回有按键?NY中断标志位清零开中断N关中断延时10msYP2.1按下?P2.0按下?YKey=222Key=221Key=220延时1s延时1sP2.1按下?P2.0按下?YY频率增100HZ频率减100HZ对应key值的波形NN输出信号延时1sP2.2按下?Key=223NY图1.8按键中断服务子程序流程图五、结论本文设计的信号发生器基本达到了比赛的要求,能够实现正确波形,能步进100Hz调节输出波形的频率,输出频率也比较稳定。但是由于DA存在点问题(已被我焊坏),输出的波形放大能力不高。还有待改进。表1.3是主要的波形测试结果。TA0CCR0值793396264198158132理论波形频率100Hz200Hz300Hz400Hz500Hz600Hz实测波形频率99.982Hz200.013Hz300.121Hz399.802Hz500.363Hz599.002HzTA0CCR0值1139988797266理论波形频率700Hz800Hz900Hz1000Hz1100Hz1200Hz实测波形频率699.235Hz797.881Hz896.212Hz997.876Hz1096.342Hz1209.548Hz表1.3波形测试结果附上系统完整的电路原理图如图1.9所示。P2.2P2.1P2.0MSP430G2553VCCP1.0P1.1P1.2P1.3P1.4P1.5P2.0P2.1P2.2P1.7GNDXINXOUTTESTRSTP1.6P2.5P2.4P2.3GNDGNDVCCLCD12864GNDVCCVORSR/WEDB0DB1DB2DB3DB4DB5DB6DB7PSBNCRSTVOUTBLABLKVCCGNDR1450ΩR1810K12+5V-5V81321U3A2kR21104C8104GNDGND2kTL082R1R2R3R4C1C2104C3VOUTIIN图1.9系统完整电路原理图视频地址链接:优酷网络。因才上传到网络服务器暂时无法获取地址链接,下图为证。已经上传《浙江工业大学第一届TI杯MSP430大赛B组作品视频展示—杨洪》的视频。参考文献[1]贾立新、王涌.电子系统设计与实践.北京.清华大学出版社.2011[2]张毅刚彭喜元.单片机原理及接口技术.人民邮电出版社.2011附录:源程序代码//MSP430G2553串口连接12864显示,只用连接三个引脚,大大节省资源P2.4---r/wP2.3---SCLKP2.5---CS主频在1Mhz下#includemsp430g2553.h#includein430.h#defineuintunsignedint#defineucharunsignedchar#defineulongunsignedlongunsignedcharaa[16]={P2.2正弦波长按};unsignedcharbb[16]={P2.1锯齿波长按};unsignedcharcc[10]={P2.0三角波};unsignedchardd[16]={P2.1加频P2.0减频};unsignedcharnumt1[13]={193,196,164,198,158,132,113,99,88,79,72,66,61};unsignedcharnumt2[13]={200,200,100,0,0,0,0,0,0,0,0,0,0};unsignedcharnumt3[13]={200,0,0,0,0,0,0,0,0,0,0,0,0};unsignedcharnumt4[13]={200,0,0,0,0,0,0,0,0,0,0,0,0};unsignedcharname[13][6]={100Hz,200Hz,300Hz,400Hz,500Hz,600Hz,700Hz,800Hz,900Hz,1000Hz,1100Hz,1200Hz,1300Hz};#defineSIDBIT4#defineSCLKBIT3#defineCSBIT5#defineLCDPORTP2OUT#defineSID_1LCDPORT|=SID#defineSID_0LCDPORT&=~SID#defineSCLK_1LCDPORT|=SCLK#defineSCLK_0LCDPORT&=~SCLK#defineCS_1LCDPORT|=CS#defineCS_0LCDPORT&=~CSuintkey=0;//按下的按键编号uinti=0;uintk=0;uintj=0;uinttt=0;uintTccr0=158;uintkeynum=4;uinttcout=0;uinttcoutm=0;uintttcout=0;//uinttake=13;//延时程序#defineCPU_F((double)16000000)#definedelay_us(x)__delay_cycles((long)(CPU_F*(double)x/1000000.0))#definedelay_ms(x)__delay_cycles((long)(CPU_F*(double)x/1000.0))staticunsignedchartemp=0xaa;//定时器ucharsindata[200]={127,131,135,139,143,147,151,155,159,162,166,170,174,177,181,185,188,192,195,198,202,205,208,211,214,217,220,222,225,227,230,232,234,236,238,240,242,244,245,246,248,249,250,251,252,252,253,253,254,254,254,254,254,253,253,252,252,251,25
本文标题:基于MSP430G2553的简易信号发生器(DOC)
链接地址:https://www.777doc.com/doc-7050968 .html