基于MSP430的信号发生器设计课程设计任务说明书 精品.docx
- 文档编号:11704808
- 上传时间:2023-03-30
- 格式:DOCX
- 页数:26
- 大小:748.47KB
基于MSP430的信号发生器设计课程设计任务说明书 精品.docx
《基于MSP430的信号发生器设计课程设计任务说明书 精品.docx》由会员分享,可在线阅读,更多相关《基于MSP430的信号发生器设计课程设计任务说明书 精品.docx(26页珍藏版)》请在冰豆网上搜索。
基于MSP430的信号发生器设计课程设计任务说明书精品
目录
目录1
课程设计任务书2
摘要3
1.概述4
1.1作品基本情况介绍4
1.2系统硬件和软件框图4
2硬件系统设计5
2.1MSP430系列LaunchPad开发板介绍5
2.2方案论证与选择5
2.3系统原理图设计5
2.4系统PCB图设计8
3程序设计9
3.1程序主流程9
3.2程序设计9
3.2.1初始化程序9
3.2.2主程序10
3.2.3按键中断10
3.2.4波形输出函数15
4程序调试与运行结果17
结束语18
参考文献19
附录120
完整程序20
附录2:
29
.本科生课程设计成绩评定表29
课程设计任务书
学生姓名:
专业班级:
自动化
指导教师:
工作单位:
题目:
基于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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于MSP430的信号发生器设计课程设计任务说明书 精品 基于 MSP430 信号发生器 设计 课程设计 任务 说明书
![提示](https://static.bdocx.com/images/bang_tan.gif)