基于MSP430的信号发生器设计课程设计任务说明书.docx
- 文档编号:3557786
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:31
- 大小:752.84KB
基于MSP430的信号发生器设计课程设计任务说明书.docx
《基于MSP430的信号发生器设计课程设计任务说明书.docx》由会员分享,可在线阅读,更多相关《基于MSP430的信号发生器设计课程设计任务说明书.docx(31页珍藏版)》请在冰豆网上搜索。
基于MSP430的信号发生器设计课程设计任务说明书
基于MSP430的信号发生器设计
课程设计任务书
学生姓名:
专业班级:
自动化
指导教师:
工作单位:
题目:
基于MSP430的信号发生器设计
初始条件:
1.运用所学的单片机和C语言等知识;
2.用到元件:
MSP430LaunchPad,IAR软件,LED灯。
要求完成的主要任务:
基于MSP430单片机设计一款信号发生器,作品采用MSP430LaunchPad结合DAC和运算放大器,实现可产生正弦波、三角波、锯齿波的信号发生器。
①能产生正弦波,三角波,锯齿波;
②能通过按键切换波形;
③幅值连续可调,频率按键可调,输出使能控制,LED指示;
④搭建硬件电路,编制完整的程序并调试;
⑤撰写设计说明书及调试心得。
时间安排:
1.1月10日----1月12日查阅资料及确定方案总体设计
2.1月13日----1月15日编程
3.1月16日开始调试程序
4.1月17日撰写课程设计报告
5.1月18日正式开始答辩
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
摘要
信号发生器是电子实验室的基本设备之一,目前各类学校广泛使用的是标准产品,虽然功能齐全、性能指标较高,但是价格较贵,且许多功能用不上。
本设计介绍一款基于MSP430G2452单片机的信号发生器。
该信号发生器虽然功能及性能指标赶不上标准信号发生器,但能满足一般的实验要求,且结构简单,成本较低。
本次需要完成的任务是以MSP430LaunchPad的单片机为控制核心、LED作为指示、DAC模块作为转换与按键电路作为输入构成的一种电子产品。
MSP430LaunchPad单片机为控制核心,能实时的进行控制;按键输入调整输出状态,LED灯显示输出波形状态,DAC0832将单片机输出的数字信号转化为模拟量,经运放放大后输出。
在本次程序设计中充分利用了单片机内部资源,涉及到了LED驱动、中断系统、函数调用等。
关键字:
MSP430LaunchPad,按键输入,DAC0832,OPA07
1概述
1.1作品基本情况介绍
本作品基于TI的LaunchPad,选用TI的MSP430G2452这款单片机设计了一款信号发生器。
作品采用查表原理来实现信号的产生,外围使用一些基本的DAC和放大电路,实现了可产生正弦波、三角波、锯齿波的信号发生器。
信号发生器的主要技术参数如下:
1.频率范围:
1HZ--1KHZ
2.频率步进间隔:
1HZ
3.输出幅值:
8V
4.其他:
幅度连续可调、频率按键可调、输出使能控制、LED指示
1.2系统硬件和软件框图
1)系统硬件框图
图1系统硬件框图
2)系统软件框图:
图2系统软件框图
2硬件系统设计
2.1MSP430G2系列LaunchPad开发板介绍
TI的MSP430G2系列Launchpad开发板是一款适用于TI最新MSP430G2xx系列产品的完整开发解决方案。
其基于USB的集成型仿真器可提供为全系列MSP430G2xx器件开发应用所必需的所有软、硬件。
LaunchPad具有集成的DIP插座,可支持多达20个引脚,从而使MSP430ValueLine器件能够简便地插入LaunchPad电路板中。
此外,其还可提供板上Flash仿真工具,以直接连接至PC轻松进行编程、调试和评估。
此外,它还提供了从MSP430G2xx器件到主机PC或相连目标板的9600波特率的UART串行连接。
MSP430G2系列Launchpad开发板的特性:
USB调试与编程接口无需驱动即可安装使用,且具备高达9600波特的UART串行通信速度。
支持所有采用PDIP14或PDIP20封装的MSP430G2xx和MSP430F20xx器件。
两个通用数字I/O引脚分别连接至绿光和红光的LED灯可提供视觉反馈。
两个按钮可实现用户反馈和芯片复位。
器件引脚可通过插座引出,既可以方便的用于调试,也可用来添加定制的扩展板。
2.2方案论证与选择
方案一:
控制部分由MSP430G2452实现,波形产生采用单片压控函数发生器(MAX038等),可同时产生频率可控可变的正弦波、三角波、方波。
优缺点:
简单易行,采用专用芯片,系统体积大大减小;但频率步进的步长很难控制,并且整个设计中MSP430G2452仅完成简单的控制功能,资源没有充分利用。
方案二:
由MSP430G2452实现对专门的DDS芯片(如AD9850)的控制,产生各种波形。
优缺点:
此方案产生波形的频率稳定度高,易于程控。
但DDS芯片价格高,系统成本高。
方案三:
由MSP430G2452结合DAC0832实现各种波形的产生。
优缺点:
此方案可以充分利用MSP430G2452上的资源,降低系统成本,但是产生波形频率较低。
综上,方案三充分利用MSP430G2452的资源,外围电路简单、系统成本较低,可以满足信号发生器的要求,所以最终采用方案三。
2.3硬件电路系统设计
系统主控部分采用IT的MSP430G2452LaunchPad开发板;外围电路主要包括DAC模块、电源及按键模块。
1)DAC模块:
DAC模块主要由DAC0832和OPA227PA运算放大器组成。
DAC0832是8分辨率的D/A转换集成芯片。
与微处理器完全兼容。
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
其主要参数如下:
*分辨率为8位;
* 电流稳定时间1us;
*可单缓冲、双缓冲或直接数字输入;
*只需在满量程下调整其线性度;
*单一电源供电(+5V~+15V);
*低功耗,20mW
其引脚功能如下:
*D0~D7:
8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);
*ILE:
数据锁存允许控制信号输入线,高电平有效;
*CS:
片选信号输入线(选通数据锁存器),低电平有效;
*WR1:
数据锁存器写选通输入线,负脉冲(脉宽应大于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,其值与IOUT1值之和为一常数;
*Rfb:
反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;
*Vcc:
电源输入端,Vcc的范围为+5V~+15V;
*VREF:
基准电压输入线,VREF的范围为-10V~+10V;
*AGND:
模拟信号地;
*DGND:
数字信号地。
图3DAC0832引脚图
电路原理图如下图所示:
图4.DAC模块原理图
2)电源及按键模块:
系统共使用了四种电源:
12V、-12V、5V、-5V。
其中12V和-12V由电源模块产生,5V和-5V由L7805和L7905产生。
四个按键功能分别为:
信号输出使能、频率+、频率-、信号切换。
电源及按键模块电路原理图如下图所示:
图5.电源及按键模块原理图
2.4系统PCB图设计
1)DAC及放大模块PCB图如下图所示:
图6.DAC模块PCB图
2)电源及按键模块PCB图如下图所示:
图7.电源及按键模块PCB图
3程序设计
3.1程序主流程
如图8所示为程序主流程图:
图8系统主流程框图
3.2程序设计
系统程序主要分为以下几个模块:
初始化程序、主程序、输出程序和中断函数。
3.2.1初始化程序
初始化程序主要完成的引脚的配置
voidPort_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;
P2IFG|=0x1E;
P1DIR=0xff;
P1OUT=0xaa;
}
3.2.2主程序
主程序要负责总体程序管理功能,全局变量赋值。
intmain(void)
{
WDTCTL=WDTPW+WDTHOLD;//关看门狗
WaveSelect=5;
f_out=50;
M=0;
Key=0;
K=count[f_out];
Port_init();//IO口初始化
_BIS_SR(GIE);//开系统中断
while
(1)
{
if(Key==1)output();
}
};
3.2.3按键中断程序
主要完成按键的读取,以及相应的输出量赋值。
图9按键中断流程图
#pragmavector=PORT2_VECTOR
__interruptvoidP2_ISR_KEYS(void)
{
unsignedinti,Keytime1=0,Keytime2=0;
unsignedcharPushKey;
PushKey=P2IFG&(BIT1+BIT2+BIT3+BIT4);
for(i=0;i<1000;i++);//除干扰
if((P2IN&PushKey)==PushKey)
{
P2IFG=0;
return;
}
if(PushKey&BIT1)//P2.1输出使能
{
Key=1;//允许输出信号
}
if(PushKey&BIT2)//P2.2波形选择
{
Key=0;
WaveSelect+=5;
switch(WaveSelect)
{
case5:
P2OUT|=BIT0;P2OUT&=~(BIT5);break;
case10:
P2OUT|=BIT5;P2OUT&=~(BIT0);break;
case15:
P2OUT|=BIT0+BIT5;break;
default:
WaveSelect=5;P2OUT|=BIT0;P2OUT&=~(BIT5);break;
}
}
if(PushKey&BIT3)//P2.3频率加
{
while((P2IN&BIT3)==0)//判断按键是否是长按
{
Keytime1++;
if(Keytime1>60000)
{
Keytime2++;
Keytime1=0;
if(Keytime2>10)
{
if(f_out<=100)f_out+=5;
elsef_out=1;
Keytime2=0;
}
}
}
if(f_out<=100)f_out+=1;
elsef_out=1;
}
if(PushKey&BIT4)//频率减
{
while((P2IN&BIT4)==0)//判断按键是否是长按
{
Keytime1++;
if(Keytime1>60000)
{
Keytime2++;
Keytime1=0;
if(Keytime2>10)
{
if(f_out)f_out-=5;
Keytime2=0;
}
}
}
if(f_out)f_out-=1;
}
P2IFG=0;
return;
}
3.2.4输出程序
根据各参数量,输出相应数字信号
图10输出函数流程图
voidoutput(void)
{
unsignedlongj;
K=count[f_out];
if(WaveSelect==5)//正弦波
{
P1OUT=sin[M];
for(j=0;j<100000;j+=K);
M++;
if(M==255)M=0;
}
if(WaveSelect==10)//锯齿波
{
if(M<=255)
{
P1OUT=value[M];
for(j=0;j<100000;j+=K);
M++;
}
if(M>255)
{
P1OUT=value[510-M];
for(j=0;j<100000;j+=K);
M++;
if(M==510)M=0;
}
}
if(WaveSelect==15)//三角波
{
P1OUT=value[M];
for(j=0;j<100000;j+=K);
M++;
if(M==255)M=0;
}
}
4程序调试与运行结果
烧录程序后,将LaunchPad重新上电,用示波器观测输出波形,开始时有一个固定电平输出,只有当按下输出允许键后才有输出波形,开始默认输出正弦波,按下波形选择键后表示波形的LED灯会亮,且输出为一固定电平,只有当再次按下输出允许键后才会再次有波形输出;按下频率加减键后,输出波形的频率会做出相应变化,但是由于波形效果不太理想,所以无法测出其频率。
实测波形如下:
正弦波
锯齿波
、
三角波
结束语
当我选这个题目的时候,我是想结合电赛的题目,做一下信号类题目的训练,于是就确定了简易波形发生器这个题目。
开始时我查阅了很多资料,找了好几套方案,实际也做了三套方案,结果使用MAX038以及采用单片机模拟DDS的方案都没有成功,所以最后才确定使用DAC0832,结果实验结果还可以,但是由于时间问题,在波形的频率调节和设定这一块并没有得到完善,波形还好,但是频率调节效果不明显,这也是由于波形的输出和频率调节都是采用数组的方式来实现的,但是由于数组并没有经过精确测量,所以还是有一定的偏差,相信在后面的时间里我会逐渐把系统完善,做到真正准确的频率可调。
通过这次课设,感受颇多,不仅停留在成功完成自我满足上,而且还有调试过程中经验的收获,这些对于我来说,都是格外宝贵的。
一次经历,一次收获,很多时候,只有经历了,才明白其中滋味,才会找到适合自己的。
对于我来说,这也可以看做一次学习,如何面对困难,面对未知,我想这次课设给了我一些,尽管不是全部,但我从中瞧见了自己进步,瞧见了自己学习热情,我想这才是最宝贵,最值得珍惜的。
参考文献
[1]沈建华杨艳琴主编.《MSP430系列16位超低功耗单片机原理与实验》.北京航空航天大学出版社,2008年7月
[2]郭天祥主编.《51单片机C语言教程》.电子工业出版社,2009年
[3]洪利章扬李世宝主编,《MSP430单片机原理与应用实例》,北京航空航天大学出版社,2010年7月
[4]谭浩强主编.C程序设计(第四版)。
清华大学出版社,2010年7月
[5].2003
附录1
完整程序
***********************************************************************
设计者:
周晓奇
-----------------------------------------------
设计时间:
2014年1月12日
***********************************************/
#include
constunsignedcharsin[256]={
0x80,0x83,0x86,0x89,0x8c,0x8f,0x91,0x94,0x95,0x98,
0x9e,0xa1,0xa4,0xa7,0xaa,0xad,0xb0,0xb3,0xb6,0xb9,
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,
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,
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,
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
};
constunsignedintcount[101]={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,320,
324,328,332,336,340,344,348,352,356,360,
364,368,372,376,380,384,388,392,396,400
};
constunsignedcharvalue[256]={
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,0x25,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,0x61,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,0x9D,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,0xD9,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,0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MSP430 信号发生器 设计 课程设计 任务 说明书
![提示](https://static.bdocx.com/images/bang_tan.gif)