/***************************************************
程式功能:控制8個LED閃爍,用于測試下載下傳功能是否正常
---------------------------------------------------
測試說明:觀察LED閃爍
孫浩,2010.7.20
***************************************************/
#include <msp430x14x.h>
/****************主函數****************/
void main(void)
{
/*下面六行程式關閉所有的IO口*/
P1DIR = 0XFF;P1OUT = 0XFF;
P2DIR = 0XFF;P2OUT = 0XFF;
P3DIR = 0XFF;P3OUT = 0XFF;
P4DIR = 0XFF;P4OUT = 0XFF;
P5DIR = 0XFF;P5OUT = 0XFF;
P6DIR = 0XFF;P6OUT = 0XFF;
WDTCTL = WDTPW + WDTHOLD; //與AVR不同,預設看門狗是打開的,是以要先關閉看門狗
P6DIR |= BIT2;P6OUT |= BIT2; //關閉電平轉換,這個是對應開發闆上的電平轉換晶片,與實際功能無關
CCTL0 = CCIE; //使能CCR0中斷
CCR0 = 2047; //設定周期0.5S 計算:32768/8/2=2048;使用的是手表晶振
TACTL = TASSEL_1 + ID_3 + MC_1; //定時器A的時鐘源選擇ACLK,增計數模式
//在msp430x14x.h已經對相應的寄存器和标志位都做了定義,隻需要進行選擇即可具體檢視頭檔案。
//TASSEL_1表示時鐘源選擇ACLK,ID_3表示八分頻,MC_1表示增計數模式
P2DIR = 0xff; //設定P2口方向為輸出
P2OUT = 0xff;
_EINT(); //使能全局中斷
LPM3; //設定工作模式,使CPU進入LPM3模式,此模式下CPU MCLK SMCLK被禁止 ACLK活動
}
/*******************************************
函數名稱:Timer_A
功 能:定時器A的中斷服務函數
參 數:無
傳回值 :無
********************************************/
#pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A (void)
P2OUT ^= 0xff; //P2口輸出取反
本文轉自emouse部落格園部落格,原文連結:http://www.cnblogs.com/emouse/archive/2010/07/20/2198225.html,如需轉載請自行聯系原作者