基于MSP430的信号发生器设计课程设计任务说明96208780.doc

上传人:本田雅阁 文档编号:2182841 上传时间:2019-02-26 格式:DOC 页数:30 大小:1.02MB
返回 下载 相关 举报
基于MSP430的信号发生器设计课程设计任务说明96208780.doc_第1页
第1页 / 共30页
基于MSP430的信号发生器设计课程设计任务说明96208780.doc_第2页
第2页 / 共30页
基于MSP430的信号发生器设计课程设计任务说明96208780.doc_第3页
第3页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于MSP430的信号发生器设计课程设计任务说明96208780.doc》由会员分享,可在线阅读,更多相关《基于MSP430的信号发生器设计课程设计任务说明96208780.doc(30页珍藏版)》请在三一文库上搜索。

1、武汉理工大学微机原理与接口技术课程设计任务说明书基于MSP430的信号发生器设计目录目录1课程设计任务书2摘要31.概述41.1作品基本情况介绍41.2系统硬件和软件框图42硬件系统设计52.1MSP430系列LaunchPad开发板介绍52.2 方案论证与选择52.3系统原理图设计52.4系统PCB图设计83 程序设计93.1 程序主流程93.2 程序设计93.2.1初始化程序93.2.2主程序103.2.3 按键中断103.2.4波形输出函数154 程序调试与运行结果17结束语18参考文献19附录120完整程序20附录2:29.本科生课程设计成绩评定表29课程设计任务书学生姓名: 专业班级

2、: 自动化 指导教师: 工作单位: 题 目: 基于MSP430的信号发生器设计 初始条件:1.运用所学的单片机和C语言等知识;2.用到元件:MSP430 LaunchPad,IAR软件,LED灯。要求完成的主要任务: 基于MSP430单片机设计一款信号发生器,作品采用MSP430Launch Pad结合DAC和运算放大器,实现可产生正弦波、三角波、锯齿波的信号发生器。 能产生正弦波,三角波,锯齿波; 能通过按键切换波形; 幅值连续可调,频率按键可调,输出使能控制,LED指示; 搭建硬件电路,编制完整的程序并调试; 撰写设计说明书及调试心得。时间安排:1. 1月10日-1月12日 查阅资料及确定

3、方案总体设计2. 1月13日-1月15日 编程3. 1月16日 开始调试程序4. 1月17日 撰写课程设计报告5. 1月18日 正式开始答辩指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日 摘要 信号发生器是电子实验室的基本设备之一,目前各类学校广泛使用的是标准产品,虽然功能齐全、性能指标较高,但是价格较贵,且许多功能用不上。本设计介绍一款基于MSP430G2452单片机的信号发生器。该信号发生器虽然功能及性能指标赶不上标准信号发生器,但能满足一般的实验要求,且结构简单,成本较低。本次需要完成的任务是以MSP430 LaunchPad的单片机为控制核心、LED作为指示、DAC模

4、块作为转换与按键电路作为输入构成的一种电子产品。MSP430 LaunchPad单片机为控制核心,能实时的进行控制;按键输入调整输出状态,LED灯显示输出波形状态,DAC0832将单片机输出的数字信号转化为模拟量,经运放放大后输出。在本次程序设计中充分利用了单片机内部资源,涉及到了LED驱动、中断系统、函数调用等。关键字:MSP430 LaunchPad ,按键输入,DAC0832,OPA071 概述 1.1作品基本情况介绍本作品基于TI的LaunchPad,选用TI的MSP430G2452这款单片机设计了一款信号发生器。作品采用查表原理来实现信号的产生,外围使用一些基本的DAC和放大电路,实

5、现了可产生正弦波、三角波、锯齿波的信号发生器。信号发生器的主要技术参数如下:1.频率范围:1HZ-1KHZ2.频率步进间隔:1HZ3.输出幅值:8V4.其他:幅度连续可调、频率按键可调、输出使能控制、LED指示 1.2 系统硬件和软件框图 1)系统硬件框图 图1 系统硬件框图 2)系统软件框图:Main函数波形输出函数按键中断函数图2 系统软件框图2 硬件系统设计2.1 MSP430G2系列LaunchPad开发板介绍TI的MSP430G2系列Launchpad开发板是一款适用于TI 最新MSP430G2xx 系列产品的完整开发解决方案。其基于USB 的集成型仿真器可提供为全系列MSP430G

6、2xx 器件开发应用所必需的所有软、硬件。LaunchPad 具有集成的DIP插座,可支持多达20 个引脚,从而使MSP430 Value Line器件能够简便地插入LaunchPad电路板中。此外,其还可提供板上Flash 仿真工具,以直接连接至PC 轻松进行编程、调试和评估。此外,它还提供了从MSP430G2xx 器件到主机PC 或相连目标板的9600 波特率的UART 串行连接。MSP430G2系列Launchpad开发板的特性:USB 调试与编程接口无需驱动即可安装使用,且具备高达9600 波特的UART 串行通信速度。支持所有采用PDIP14 或PDIP20 封装的MSP430G2x

7、x 和MSP430F20xx 器件。 两个通用数字I/O 引脚分别连接至绿光和红光的LED 灯可提供视觉反馈。 两个按钮可实现用户反馈和芯片复位。器件引脚可通过插座引出,既可以方便的用于调试,也可用来添加定制的扩展板。 2.2 方案论证与选择方案一:控制部分由MSP430G2452实现,波形产生采用单片压控函数发生器(MAX038等),可同时产生频率可控可变的正弦波、三角波、方波。优缺点:简单易行,采用专用芯片,系统体积大大减小;但频率步进的步长很难控制,并且整个设计中MSP430G2452仅完成简单的控制功能,资源没有充分利用。方案二:由MSP430G2452实现对专门的DDS芯片(如AD9

8、850)的控制,产生各种波形。优缺点:此方案产生波形的频率稳定度高,易于程控。但DDS芯片价格高,系统成本高。方案三:由MSP430G2452结合DAC0832实现各种波形的产生。优缺点:此方案可以充分利用MSP430G2452上的资源,降低系统成本,但是产生波形频率较低。综上,方案三充分利用MSP430G2452的资源,外围电路简单、系统成本较低,可以满足信号发生器的要求,所以最终采用方案三。2.3 硬件电路系统设计 系统主控部分采用IT的MSP430G2452 LaunchPad开发板;外围电路主要包括DAC模块、电源及按键模块。1) DAC模块:DAC模块主要由DAC0832和OPA22

9、7PA运算放大器组成。DAC0832 是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。其主要参数如下:* 分辨率为8位;*电流稳定时间1us;* 可单缓冲、双缓冲或直接数字输入;* 只需在满量程下调整其线性度;* 单一电源供电(+5V+15V);* 低功耗,20mW其引脚功能如下:* D0D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);* ILE:数据锁存允许控制信号输入线,高电平有效;* CS:片选信号输入线(选通数据锁存器),低电平有效;* WR1:数据锁存器写

10、选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;* XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;* WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。* IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;* IOUT2:电流输出端2,其值

11、与IOUT1值之和为一常数;* Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;* Vcc:电源输入端,Vcc的范围为+5V+15V;* VREF:基准电压输入线,VREF的范围为-10V+10V;* AGND:模拟信号地;* DGND:数字信号地。图3 DAC0832引脚图电路原理图如下图所示: 图4.DAC模块原理图 2)电源及按键模块:系统共使用了四种电源:12V、-12V、5V、-5V。其中12V和-12V由电源模块产生,5V和-5V由L7805和L7905产生。四个按键功能分别为:信号输出使能、频率+、频率-、信号切换。电源及按键模块电路原理图如下图所示: 图5.

12、电源及按键模块原理图2.4 系统PCB图设计 1)DAC及放大模块PCB图如下图所示: 图6. DAC模块PCB图2)电源及按键模块PCB图如下图所示:图7. 电源及按键模块PCB图3 程序设计3.1 程序主流程如图8所示为程序主流程图:图8系统主流程框图3.2 程序设计 系统程序主要分为以下几个模块:初始化程序、主程序、输出程序和中断函数。3.2.1初始化程序初始化程序主要完成的引脚的配置 void Port_init() /P2.0,P2.5点灯 P2DIR|=(BIT0+BIT5); P2OUT|=BIT0;/初始为Sine,点亮相应指示灯 P2OUT&=(BIT5); /四个按键P2.

13、1使能,P2.2波形选择,P2.3频率加,P2.4频率减 P2IES|=0x1E; P2IE|=0x1E; P2IFG|=0x1E; P1DIR=0xff; P1OUT=0xaa; 3.2.2主程序主程序要负责总体程序管理功能,全局变量赋值。int main( void ) WDTCTL = WDTPW + WDTHOLD;/关看门狗 WaveSelect=5; f_out=50; M=0; Key=0; K=countf_out; Port_init(); /IO口初始化 _BIS_SR(GIE); /开系统中断 while(1) if(Key=1) output(); ;3.2.3 按键中

14、断程序主要完成按键的读取,以及相应的输出量赋值。 图9 按键中断流程图#pragma vector = PORT2_VECTOR_interrupt void P2_ISR_KEYS(void)unsigned int i,Keytime1=0,Keytime2=0;unsigned char PushKey; PushKey=P2IFG&(BIT1+BIT2+BIT3+BIT4); for(i=0;i60000) Keytime2+; Keytime1=0; if(Keytime210) if(f_out=100)f_out+=5; else f_out=1; Keytime2=0; if(

15、f_out60000) Keytime2+; Keytime1=0; if(Keytime210) if(f_out) f_out-=5; Keytime2=0; if(f_out) f_out-=1; P2IFG=0; return;3.2.4输出程序根据各参数量,输出相应数字信号 图10 输出函数流程图void output(void) unsigned long j; K=countf_out; if(WaveSelect=5)/正弦波 P1OUT=sinM; for(j=0;j100000;j+=K); M+; if(M=255)M=0; if(WaveSelect=10)/锯齿波 i

16、f(M=255) P1OUT=valueM; for(j=0;j255) P1OUT=value510-M; for(j=0;j100000;j+=K); M+; if(M=510)M=0; if(WaveSelect=15)/三角波 P1OUT=valueM; for(j=0;j100000;j+=K); M+; if(M=255)M=0; 4程序调试与运行结果烧录程序后,将LaunchPad重新上电,用示波器观测输出波形,开始时有一个固定电平输出,只有当按下输出允许键后才有输出波形,开始默认输出正弦波,按下波形选择键后表示波形的LED灯会亮,且输出为一固定电平,只有当再次按下输出允许键后才

17、会再次有波形输出;按下频率加减键后,输出波形的频率会做出相应变化,但是由于波形效果不太理想,所以无法测出其频率。实测波形如下: 正弦波 锯齿波、 三角波 结束语当我选这个题目的时候,我是想结合电赛的题目,做一下信号类题目的训练,于是就确定了简易波形发生器这个题目。开始时我查阅了很多资料,找了好几套方案,实际也做了三套方案,结果使用MAX038以及采用单片机模拟DDS的方案都没有成功,所以最后才确定使用DAC0832,结果实验结果还可以,但是由于时间问题,在波形的频率调节和设定这一块并没有得到完善,波形还好,但是频率调节效果不明显,这也是由于波形的输出和频率调节都是采用数组的方式来实现的,但是由

18、于数组并没有经过精确测量,所以还是有一定的偏差,相信在后面的时间里我会逐渐把系统完善,做到真正准确的频率可调。通过这次课设,感受颇多,不仅停留在成功完成自我满足上,而且还有调试过程中经验的收获,这些对于我来说,都是格外宝贵的。一次经历,一次收获,很多时候,只有经历了,才明白其中滋味,才会找到适合自己的。对于我来说,这也可以看做一次学习,如何面对困难,面对未知,我想这次课设给了我一些,尽管不是全部,但我从中瞧见了自己进步,瞧见了自己学习热情,我想这才是最宝贵,最值得珍惜的。参考文献1 沈建华 杨艳琴主编.MSP430系列16位超低功耗单片机原理与实验.北京航空航天大学出版社,2008年7月2 郭

19、天祥主编. 51单片机C语言教程. 电子工业出版社,2009年3 洪利 章扬 李世宝主编,MSP430单片机原理与应用实例,北京航空航天大学出版社,2010年7月 4 谭浩强主编.C程序设计(第四版)。清华大学出版社,2010年7月 5 http:/. 2003附录1完整程序*设计者:周晓奇-设计时间:2014年1月12日*/#include const unsigned char sin256=0x80,0x83,0x86,0x89,0x8c,0x8f,0x91,0x94,0x95,0x98,0x9e,0xa1,0xa4,0xa7,0xaa,0xad,0xb0,0xb3,0xb6,0xb9,

20、0xbb,0xbe,0xc1,0xc3,0xc6,0xc9,0xcb,0xce,0xd0,0xd2,0xd5,0xd7,0xd9,0xdb,0xde,0xe0,0xe2,0xe4,0xe6,0xe7,0xe9,0xeb,0xec,0xee,0xf0,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfb,0xfc,0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xfe,0xff,0xfe,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,0xfc,0xfb,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,

21、0xf5,0xf4,0xf2,0xf2,0xf0,0xee,0xec,0xeb,0xea,0xe7,0xe6,0xe4,0xe2,0xe0,0xde,0xdb,0xd9,0xd7,0xd5,0xd2,0xdb,0xce,0xcb,0xc9,0xc6,0xc3,0xc1,0xbe,0xbb,0xb9,0xb6,0xb3,0xb0,0xad,0xaa,0xa7,0xa4,0xa1,0x9e,0x9b,0x98,0x95,0x92,0x8f,0x8c,0x89,0x86,0x83,0x80,0x7c,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x64,0x61,0x5e,

22、0x5b,0x58,0x55,0x52,0x4f,0x4c,0x49,0x46,0x44,0x41,0x3e,0x3c,0x39,0x36,0x34,0x31,0x2f,0x2d,0x2a,0x28,0x26,0x24,0x21,0x1f,0x1d,0x1b,0x19,0x18,0x16,0x14,0x13,0x11,0x0f,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x04,0x03,0x02,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,

23、0x03,0x04,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x0f,0x11,0x13,0x14,0x16,0x18,0x19,0x1b,0x1d,0x1f,0x21,0x24,0x26,0x28,0x2a,0x2d,0x2e,0x31,0x34,0x36,0x39,0x3c,0x3e,0x41,0x44,0x46,0x49,0x4c,0x4f,0x52,0x55,0x58,0x5b,0x5e,0x61,0x64,0x67,0x6a,0x6d,0x70,0x73,0x76,0x79,0x80;const unsigned int c

24、ount101=0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256,260,264,268,272,276,280,284,288,292,296,300,304,308,312,316,

25、320,324,328,332,336,340,344,348,352,356,360,364,368,372,376,380,384,388,392,396,400;const unsigned char value256=0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0X0D,0X0E,0X0F,0x10,0X11,0X12,0X13,0x14,0X15,0X16,0X17,0x18,0x19,0x1A,0X1B,0X1C,0X1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x

26、25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x

27、61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x

28、9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0x

29、D9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,;void Port_init();void output();unsigned int WaveSelect,f_out,M,K;unsigned char Key;int main( void ) WDTCTL

30、 = WDTPW + WDTHOLD;/关看门狗 WaveSelect=5; f_out=50; M=0; Key=0; K=countf_out; Port_init(); /IO口初始化 _BIS_SR(GIE); /开系统中断 while(1) if(Key=1) output(); void Port_init() /P2.0,P2.5点灯 P2DIR|=(BIT0+BIT5); P2OUT|=BIT0;/初始为Sine,点亮相应指示灯 P2OUT&=(BIT5); /四个按键P2.1使能,P2.2波形选择,P2.3频率加,P2.4频率减 P2IES|=0x1E; P2IE|=0x1E

31、; P2IFG|=0x1E; P1DIR=0xff; P1OUT=0xaa; #pragma vector = PORT2_VECTOR_interrupt void P2_ISR_KEYS(void)unsigned int i,Keytime1=0,Keytime2=0;unsigned char PushKey; PushKey=P2IFG&(BIT1+BIT2+BIT3+BIT4); for(i=0;i60000) Keytime2+; Keytime1=0; if(Keytime210) if(f_out=100)f_out+=5; else f_out=1; Keytime2=0;

32、 if(f_out60000) Keytime2+; Keytime1=0; if(Keytime210) if(f_out) f_out-=5; Keytime2=0; if(f_out) f_out-=1; P2IFG=0; return;void output(void) unsigned long j; K=countf_out; if(WaveSelect=5)/正弦波 P1OUT=sinM; for(j=0;j100000;j+=K); M+; if(M=255)M=0; if(WaveSelect=10)/锯齿波 if(M=255) P1OUT=valueM; for(j=0;j255) P1OUT=value510-M; for(j=0;j100000;j+=K); M+; if(M=510)M=0; if(WaveSelect=15)/三角波 P1OUT=valueM; for(j=0;j100000;j+=K); M+; if(M=255)M=0;附录2:.本科生课程设计成绩评定表本科生课程设计成绩评定表姓 名性 别男专业、班级课程设计题目:基于MSP430的信号发生器设计 课程设计答辩或质疑记录:成绩评定依据:设计方案与内容(30分)制作与调试(20分)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1