新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > MSP430G2553測試程序(狀態(tài)機(jī)檢測按鍵)

MSP430G2553測試程序(狀態(tài)機(jī)檢測按鍵)

作者: 時間:2016-11-28 來源:網(wǎng)絡(luò) 收藏
//原始狀態(tài)P1.6亮,P1.0暗,利用狀態(tài)機(jī)進(jìn)行按鍵檢測,按下并釋放的瞬間P1.0翻轉(zhuǎn),P1.6翻轉(zhuǎn)
//
// MSP430G2xx3
// -----------------
// /|| XIN|-
// | | |
// --|RST XOUT|-
// P1.3|KEY P1.6|-->LED
// | P1.0|-->LED
// 作者h(yuǎn)ttp://jiwm.blog.163.com
// Built with IAR Embedded Workbench Version: 5.40
/
// Timer A0 interrupt service routine
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A (void)
{ TACCTL0&=~ CCIE; //關(guān)中斷
static unsigned char KEY_State=0; //按鍵的狀態(tài)變量
switch(KEY_State) //處理按鍵狀態(tài)
{case NOKEY: //未按鍵時進(jìn)行按鍵處理
if ((P1IN&BIT3)==0)
{KEY_State=PUSH_KEY; //按下按鍵后,進(jìn)入短按狀態(tài)
}
break;
case PUSH_KEY: //短按狀態(tài)時進(jìn)行按鍵處理
if((P1IN&BIT3)!=0) //釋放按鍵,認(rèn)為是一次短按,加以處理
{KEY=1; //按鍵賦值
KEY_State=NOKEY; //回到未按狀態(tài)
}
break;
}
TACCTL0|= CCIE; //開中斷
}


評論


技術(shù)專區(qū)

關(guān)閉