msp430实用程序汇总(2)

2019-08-02 00:18

/****************主函数****************/

void main(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的中断服务函数 参 数:无 返回值 :无

********************************************/ #pragma vector = TIMERA0_VECTOR __interrupt void Timer_A (void)

{

P2OUT ^= 0xff; //P2口输出取反 } /*********************************************** 程序功能:实现流水灯以三种流动方式和四种流动速度 的不同组合而进行点亮\流动\------------------------------------------------

测试说明:观察流水灯流动顺序和速度的变化

************************************************/ #include #include \

uint i = 0,j = 0,dir = 0;

uint flag = 0,speed = 0; //flag--灯光流动方式,speed--灯光流动速度

/****************主函数****************/ void main(void) {

WDTCTL = WDTPW + WDTHOLD; //关闭看门狗

6

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的中断服务函数,在这里通过标志 控制流水灯的流动方向和流动速度 参 数:无 返回值 :无

********************************************/ #pragma vector = TIMERA0_VECTOR __interrupt void Timer_A (void)

{

if(flag == 0) {

P2OUT = ~(0x80>>(i++)); //灯的点亮顺序D8 -> D1 }

else if(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;

7

dir = ~dir; }

j++;

if(j == 40) { i = 0; j = 0; flag++;

if(flag == 4) flag = 0; switch(speed) {

case 0:

TACTL &=~ (ID0 + ID1); TACTL |= ID_3; break;

case 1:

TACTL &=~ (ID0 + ID1); TACTL |= ID_2; break; case 2:

TACTL &=~ (ID0 + ID1); TACTL |= ID_1; break; case 3:

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 \void main(void)

8

{

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; // CCR1 reset/set

CCR1 = 3072; // CCR1 PWM duty cycle CCTL2 = OUTMOD_7; // CCR2 reset/set CCR2 = 1024; // CCR2 PWM duty cycle TACTL = TASSEL_1 + ID_3 + MC_1; // ACLK/8, up mode

_BIS_SR(LPM3_bits); // Enter LPM3 } //****************************************************************************** // MSP-FET430P140 Demo - Basic Clock, Output Buffered SMCLK, ACLK and MCLK //

// Description: Output buffered MCLK, SMCLK and ACLK.

// ACLK = LFXT1 = 32768, MCLK = DCO Max, SMCLK = XT2

// //* XTAL's REQUIRED - NOT INSTALLED ON FET *//

// //* Min Vcc required varies with MCLK frequency - refer to datasheet *// //

// MSP430F149 // ----------------- // /|\\| XIN|- // | | | 32k

// --|RST XOUT|- // | | // | XT2IN|-

// | | XTAL (455k - 8Mhz) // |RST XT2OUT|- // | |

// | P5.4|-->MCLK = DCO Max // | P5.5|-->SMCLK = XT2 // | P5.6|-->ACLK = 32kHz //

// M. Buccini

// Texas Instruments Inc. // Feb 2005

// Built with IAR Embedded Workbench Version: 3.21A

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

9

#include #include \

void main(void) {

BoardConfig(0xb8);

WDTCTL = WDTPW +WDTHOLD; // Stop Watchdog Timer DCOCTL = DCO0 + DCO1 + DCO2; // Max DCO

BCSCTL1 = RSEL0 + RSEL1 + RSEL2; // XT2on, max RSEL BCSCTL2 |= SELS; // SMCLK = XT2 P5DIR |= 0x70; // P5.6,5,4 outputs P5SEL |= 0x70; // P5.6,5,5 options

while(1) { } } //****************************************************************************** // MSP-FET430P140 Demo - Basic Clock, LPM3 Using WDT ISR, 32kHz ACLK //

// Description: This program operates MSP430 normally in LPM3, pulsing P3.4 // at 4 second intervals. WDT ISR used to wake-up system. All I/O configured // as low outputs to eliminate floating inputs. Current consumption does // increase when LED is powered on P3.4. Demo for measuring LPM3 current. // ACLK= LFXT1/4= 32768/4, MCLK= SMCLK= default DCO // //* External watch crystal on XIN XOUT is required for ACLK *// // //

// MSP430F149 // ---------------

// /|\\| XIN|-

// | | | 32kHz // --|RST XOUT|- // | | // | P3.5|-->LED //

// Dasheng

// LiTian Electronic Inc. // Feb 2008

// Built with IAR Embedded Workbench Version: 3.42A

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

#include #include \

10


msp430实用程序汇总(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:海尔战略目标的实现与其人力资源管理间的关系

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: