msp430实用程序汇总.docx

上传人:b****6 文档编号:8000332 上传时间:2023-01-27 格式:DOCX 页数:161 大小:55.84KB
下载 相关 举报
msp430实用程序汇总.docx_第1页
第1页 / 共161页
msp430实用程序汇总.docx_第2页
第2页 / 共161页
msp430实用程序汇总.docx_第3页
第3页 / 共161页
msp430实用程序汇总.docx_第4页
第4页 / 共161页
msp430实用程序汇总.docx_第5页
第5页 / 共161页
点击查看更多>>
下载资源
资源描述

msp430实用程序汇总.docx

《msp430实用程序汇总.docx》由会员分享,可在线阅读,更多相关《msp430实用程序汇总.docx(161页珍藏版)》请在冰豆网上搜索。

msp430实用程序汇总.docx

msp430实用程序汇总

一、基础实验【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)USB􀃆UART

(2)UART􀃆USB

(3)RS232􀃆RS485

(4)RS485􀃆RS232

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

//********************************

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1