msp实用程序总结.docx
《msp实用程序总结.docx》由会员分享,可在线阅读,更多相关《msp实用程序总结.docx(182页珍藏版)》请在冰豆网上搜索。
msp实用程序总结
一、基础实验【10个】
1、入门试验:
LED闪烁(1个)
2、时钟实验:
设置MCLK、ACLK、SMCLK(1个)
3、低功耗实验:
设置低功耗模式(1个)
4、IO端口试验:
IO端口寄存器设置(1个)
5、定时器:
看门狗定时器、TimerA寄存器设置(2个)
6、比较器:
比较器A寄存器(1个)
7、Flash:
flash读写(1个)
8、异步通信:
异步通信寄存器设置(1个)
9、ADC:
ADC12寄存器设置(1个)
二、开发板模块简单程序【56个】
1、LED流水灯实验(红、黄、绿)
(1)LED1:
检测开发板
(2)LED2:
普通IO控制闪烁
(3)LED3:
PWM信号控制闪烁
2、蜂鸣器实验
(1)蜂鸣器1:
单频音(步进变音调)
(2)蜂鸣器2:
奏乐(祝你平安)
3、数码管实验
(1)数码管1(显示123456)
(2)数码管2(动态显示0~F)
(3)数码管3(流动光圈)
(4)数码管4(来回光标)
4、4×1独立按键实验
(1)4×1键盘1:
扫描数码管显示
(2)4×1键盘2:
中断数码管显示
(3)4×1键盘3:
控制LED
(4)4×1键盘4:
控制蜂鸣器
5、4×4矩阵键盘实验
(1)4×4键盘1:
行列扫描数码管显示
(2)4×4键盘2:
行列扫描1602液晶显示
(3)4×4键盘3:
控制LED蜂鸣器
6、1602液晶实验
(1)1602液晶1:
动态字符显示
(2)1602液晶2:
静态字符显示
(3)1602液晶3:
内部时钟显示
7、3.3V-5V电平转换实验
(1)电平转换1:
输出5V方波
(2)电平转换2:
输出不同占空比的方波
(3)电平转换3:
MCLK,SMCLK,ACLK
8、RS232接口实验
(1)RS232接口1:
MCU发送数据PC机显示
(2)RS232接口2:
按键控制MCU发送数据PC机显示
(3)RS232接口3:
PC机发送数据MCU液晶显示
(4)RS232接口4:
MCU回发接收到的PC机数据
(5)RS232接口5:
RS232控制蜂鸣器
9、RS485接口实验
(1)RS485接口1:
发送程序
(2)RS485接口2:
接收程序
10、USB接口实验
(1)USB接口1:
简单连接测试
(2)USB接口2:
USB接收数据
(3)USB接口3:
USB发送数据
11、PS2接口实验
(1)PS2接口1:
PS2控制1602显示
(2)PS2接口2:
PS2控制数码管显示
(3)PS2接口3:
PS2控制LED和蜂鸣器
12、12-Bit高精度温度传感器实验
(1)温度传感器1:
DS18B20在数码管显示
(2)温度传感器2:
DS18B20在液晶显示
13、RTC实时时钟实验
(1)实时时钟1:
DS1302测试
(2)实时时钟2:
DS1302电子钟
14、2kBitEEPROM实验
(1)EEPROM1:
AT24C02测试
(2)EEPROM2:
读出数据通过串口在PC机显示
15、12-Bit模数转换器(ADC)接口实验
(1)模数转换器1:
ADC在数码管显示
(2)模数转换器2:
ADC在1602液晶在显示
(3)模数转换器3:
ADC通过串口在PC机显示
16、8-Bit数模转换器(DAC)实验
(1)数模转换器1:
DAC控制LED
(2)数模转换器2:
DAC输出电压,ADC采样转换并在液晶上显示
17、12864液晶实验(与12864液晶配套)
(1)12864液晶并口1:
字符显示
(2)12864液晶并口2:
汉字显示
(3)12864液晶并口3:
图形显示
(4)12864液晶并口4:
综合演示
(5)12864液晶串口5:
字符显示
(6)12864液晶串口6:
汉字显示
(7)12864液晶串口7:
图形显示
(8)12864液晶串口8:
综合演示
18、射频模块CC1000实验
(1)射频模块1:
发送数据
(2)射频模块2:
接收数据
19、ucos移植
注:
17、18程序随模块赠送
三、开发板综合程序【30】
1、键盘综合实验
(1)4×4键盘+蜂鸣器+LED+数码管显示
(2)4×4键盘+蜂鸣器+LED+1602液晶显示
(3)4×4键盘+蜂鸣器+LED+PC机显示
(4)PS2键盘+UART+PC机显示
(5)PS2键盘+USB+PC机显示
2、接口综合实验
(1)USBUART
(2)UARTUSB
(3)RS232RS485
(4)RS485RS232
3、温度时间综合实验
(1)DS18B20+DS1302+数码管
(2)DS18B20+DS1302+USB
(3)DS18B20+DS1302+UART
(4)DS18B20+DS1302+1602
4、ADDA综合实验
(1)ADC+1602
(2)ADC+UART
(3)ADC+USB
(4)DAC+LED+KEY
(5)DAC+UART
(6)DAC+USB
(7)ADC+UART+DS1302
(8)ADC+DAC+1602+KEY
(9)ADC+DAC+UART+KEY
5、其他综合实验
(1)AT24C02高级应用(搜索,擦除,读出全部)
(2)DS1302高级应用(内部RAM存取数据)
6、12864液晶综合实验
(1)汉字库
(2)图形库
7、3.2寸TFT触摸屏实验
(1)静态图片
(2)动画
/***************************************************
程序功能:
BoardConfig.h头文件
---------------------------------------------------
***************************************************/
typedefunsignedcharuchar;
typedefunsignedintuint;
//控制位的宏定义
#defineCtrl_OutP3DIR|=BIT3+BIT6+BIT7;
#defineCtrl_0P3OUT&=~(BIT3+BIT6+BIT7)
#defineSRCLK_1P3OUT|=BIT7
#defineSRCLK_0P3OUT&=~BIT7
#defineSER_1P3OUT|=BIT6
#defineSER_0P3OUT&=~BIT6
#defineRCLK_1P3OUT|=BIT3
#defineRCLK_0P3OUT&=~BIT3
//板上资源配置函数
voidBoardConfig(ucharcmd)
{
uchari;
Ctrl_Out;
Ctrl_0;
for(i=0;i<8;i++)
{
SRCLK_0;
if(cmd&0x80)SER_1;
elseSER_0;
SRCLK_1;
cmd<<=1;
}
RCLK_1;
_NOP();
RCLK_0;
}
/***************************************************
程序功能:
控制8个LED闪烁,用于测试下载功能是否正常
---------------------------------------------------
测试说明:
观察LED闪烁
***************************************************/
#include
#include"BoardConfig.h"
/****************主函数****************/
voidmain(void)
{
WDTCTL=WDTPW+WDTHOLD;//关闭看门狗
BoardConfig(0xf0);//关闭数码管和电平转换,打开流水灯
CCTL0=CCIE;//使能CCR0中断
CCR0=2047;//设定周期0.5S
TACTL=TASSEL_1+ID_3+MC_1;//定时器A的时钟源选择ACLK,增计数模式
P2DIR=0xff;//设置P2口方向为输出
P2OUT=0xff;
_EINT();//使能全局中断
LPM3;//CPU进入LPM3模式
}
/*******************************************
函数名称:
Timer_A
功能:
定时器A的中断服务函数
参数:
无
返回值:
无
********************************************/
#pragmavector=TIMERA0_VECTOR
__interruptvoidTimer_A(void)
{
P2OUT^=0xff;//P2口输出取反
}
/***********************************************
程序功能:
实现流水灯以三种流动方式和四种流动速度
的不同组合而进行点亮"流动"
------------------------------------------------
测试说明:
观察流水灯流动顺序和速度的变化
************************************************/
#include
#include"BoardConfig.h"
uinti=0,j=0,dir=0;
uintflag=0,speed=0;//flag--灯光流动方式,speed--灯光流动速度
/****************主函数****************/
voidmain(void)
{
WDTCTL=WDTPW+WDTHOLD;//关闭看门狗
BoardConfig(0xf0);
CCTL0=CCIE;//使能CCR0中断
CCR0=50000;
TACTL=TASSEL_2+ID_3+MC_1;//定时器A的时钟源选择SMCLK,增计数模式
P2DIR=0xff;//设置P2口方向为输出
P2OUT=0xff;
_EINT();//使能全局中断
LPM0;//CPU进入LPM0模式
}
/*******************************************
函数名称:
Timer_A
功能:
定时器A的中断服务函数,在这里通过标志
控制流水灯的流动方向和流动速度
参数:
无
返回值:
无
********************************************/
#pragmavector=TIMERA0_VECTOR
__interruptvoidTimer_A(void)
{
if(flag==0)
{
P2OUT=~(0x80>>(i++));//灯的点亮顺序D8->D1
}
elseif(flag==1)
{
P2OUT=~(0x01<<(i++));//灯的点亮顺序D1->D8
}
else
{
if(dir)//灯的点亮顺序D8->D1,D1->D8,循环绕圈
{
P2OUT=~(0x80>>(i++));
}
else
{
P2OUT=~(0x01<<(i++));
}
}
if(i==8)
{
i=0;
dir=~dir;
}
j++;
if(j==40)
{
i=0;
j=0;
flag++;
if(flag==4)flag=0;
switch(speed)
{
case0:
TACTL&=~(ID0+ID1);
TACTL|=ID_3;
break;
case1:
TACTL&=~(ID0+ID1);
TACTL|=ID_2;
break;
case2:
TACTL&=~(ID0+ID1);
TACTL|=ID_1;
break;
case3:
TACTL&=~(ID0+ID1);
TACTL|=ID_0;
break;
default:
break;
}
if(flag!
=3)speed++;
if(speed==4)speed=0;
}
}
/*******************************************************
程序功能:
用从P2.3和P2.4输出的PWM波形驱动LED闪烁
P2.3口输出方波的占空比为75%
P2.4口输出方波的占空比为25%
-------------------------------------------------------
测试说明:
观察LED的亮灭的时间长短
*******************************************************/
#include
#include"BoardConfig.h"
voidmain(void)
{
WDTCTL=WDTPW+WDTHOLD;//关狗
BoardConfig(0xb0);//关闭数码管和电平转换,打开流水灯
P2DIR=0xff;//P2端口设置为输出
P2OUT=0xff;//关闭其他LED
P2SEL|=BIT3+BIT4;//P2.3和P2.4连接内部模块
CCR0=4096-1;//PWM周期为1S
CCTL1=OUTMOD_7;//CCR1reset/set
CCR1=3072;//CCR1PWMdutycycle
CCTL2=OUTMOD_7;//CCR2reset/set
CCR2=1024;//CCR2PWMdutycycle
TACTL=TASSEL_1+ID_3+MC_1;//ACLK/8,upmode
_BIS_SR(LPM3_bits);//EnterLPM3
}
//******************************************************************************
//MSP-FET430P140Demo-BasicClock,OutputBufferedSMCLK,ACLKandMCLK
//
//Description:
OutputbufferedMCLK,SMCLKandACLK.
//ACLK=LFXT1=32768,MCLK=DCOMax,SMCLK=XT2
////*XTAL'sREQUIRED-NOTINSTALLEDONFET*//
////*MinVccrequiredvarieswithMCLKfrequency-refertodatasheet*//
//
//MSP430F149
//-----------------
///|\|XIN|-
//|||32k
//--|RSTXOUT|-
//||
//|XT2IN|-
//||XTAL(455k-8Mhz)
//|RSTXT2OUT|-
//||
//|P5.4|-->MCLK=DCOMax
//|P5.5|-->SMCLK=XT2
//|P5.6|-->ACLK=32kHz
//
//M.Buccini
//TexasInstrumentsInc.
//Feb2005
//BuiltwithIAREmbeddedWorkbenchVersion:
3.21A
//******************************************************************************
#include
#include"BoardConfig.h"
voidmain(void)
{
BoardConfig(0xb8);
WDTCTL=WDTPW+WDTHOLD;//StopWatchdogTimer
DCOCTL=DCO0+DCO1+DCO2;//MaxDCO
BCSCTL1=RSEL0+RSEL1+RSEL2;//XT2on,maxRSEL
BCSCTL2|=SELS;//SMCLK=XT2
P5DIR|=0x70;//P5.6,5,4outputs
P5SEL|=0x70;//P5.6,5,5options
while
(1)
{
}
}
//******************************************************************************
//MSP-FET430P140Demo-BasicClock,LPM3UsingWDTISR,32kHzACLK
//
//Description:
ThisprogramoperatesMSP430normallyinLPM3,pulsingP3.4
//at4secondintervals.WDTISRusedtowake-upsystem.AllI/Oconfigured
//aslowoutputstoeliminatefloatinginputs.Currentconsumptiondoes
//increasewhenLEDispoweredonP3.4.DemoformeasuringLPM3current.
//ACLK=LFXT1/4=32768/4,MCLK=SMCLK=defaultDCO
////*ExternalwatchcrystalonXINXOUTisrequiredforACLK*//
//
//
//MSP430F149
//---------------
///|\|XIN|-
//|||32kHz
//--|RSTXOUT|-
//||
//|P3.5|-->LED
//
//Dasheng
//LiTianElectronicInc.
//Feb2008
//BuiltwithIAREmbeddedWorkbenchVersion:
3.42A
//******************************************************************************
#include
#include"BoardConfig.h"
voidmain(void)
{
BoardConfig(0xb8);
BCSCTL1|=DIVA_2;//ACLK/4
WDTCTL=WDT_ADLY_1000;//WDT1s/4intervaltimer
IE1|=WDTIE;//EnableWDTinterrupt
P1DIR=0xFF;//AllP1.xoutputs
P1OUT=0;//AllP1.xreset
P2DIR=0xFF;//AllP2.xoutputs
P2OUT=0;//AllP2.xreset
P3DIR=0xFF;//AllP3.xoutputs
P3OUT=0x30;//AllP3.xreset
P4DIR=0xFF;//AllP4.xoutputs
P4OUT=0;//AllP4.xreset
P5DIR=0xFF;//AllP5.xoutputs
P5OUT=0;//AllP5.xreset
P6DIR=0xFF;//AllP6.xoutputs
P6OUT=0x80;//AllP6.xreset
while
(1)
{
uinti;
_BIS_SR(LPM3_bits+GIE);//EnterLPM3
P3OUT&=~BIT5;//SetP3.5LEDon
for(i=18000;i>0;i--);//Delay
P3OUT|=BIT5;//ClearP3.5LEDoff
}
}
#pragmavector=WDT_VECTOR
__interruptvoidwatchdog_timer(void)
{
_BIC_SR_IRQ(LPM3_bits);//ClearLPM3bitsfrom0(SR)
}
//*******************************************************************************
//MSP-FET430P140Demo-SoftwareToggleP3.4
//
//Description:
ToggleP3.4byxor'ingP3.4insideofasoftwareloop.
//ACLK=n/a,MCLK=SMCLK=defaultDCO~800k
//
//MSP430F149
//-----------------
///|\|XIN|-
//|||
//--|RSTXOUT|-
//||
//|P3.4|-->LED
//
//Dasheng
//LiTianElectronicInc.
//Feb2008
//BuiltwithIAREmbeddedWorkbenchVersion:
3.42A
//*********************************************************************