MSP430F5529 上手小例程1


MSP430F5529 上手小例程1

* 將F553 設置按鍵脈衝
  • 按下P1.1,P1.4產生一個脈衝,時間爲5s
  • 按下p2.1,P1.4產生一個脈衝,時間爲1.2s

#include <msp430.h> 
#include <msp430f5529.h>

/**
* main.c
* 將F553 設置按鍵脈衝
* 按下P1.1,P1.4產生一個脈衝,時間約爲5s
* 按下p2.1,P1.4產生一個脈衝,時間約爲1.2s
*/
int main(void)
{
   WDTCTL = WDTPW | WDTHOLD;   // stop watchdog timer

//設置輸入輸出
   P2DIR &= ~BIT1;
   P1DIR &= ~BIT1;
   P1DIR |= BIT4;
   P4DIR |= BIT7;

//按鍵無預先設置的值,故先將懸空設爲1,防止之前爲0。P1.1,P2.1按鍵
   P1OUT |= BIT1;
   P2OUT |= BIT1;

//設爲輸入時必須加上此寄存器配置(上下拉電阻)
   P1REN |= BIT1;
   P2REN |= BIT1;

//中斷允許,下降沿中斷

   P1IE |= BIT1;
   P2IE |= BIT1;
   P1IES |= BIT1;
   P2IES |= BIT1;
   P1IFG &= ~BIT1;
   P2IFG &= ~BIT1;

   _EINT();

   return 0;
}

#pragma vector = PORT1_VECTOR
__interrupt void PORT1(void)
{
   if(!(P1IN & BIT1))      //按下按鍵P1.1,
   {
       P1OUT |= BIT4;      //P1OUT寄存器的第5位置一,P1.4電壓擡高
       __delay_cycles(5000000);
       P1OUT &= ~BIT4;
   }
   P1IFG &= ~BIT1;
}

#pragma vector = PORT2_VECTOR
__interrupt void PORT2(void)
{
   if(!(P2IN & BIT1))
   {
       P4OUT |= BIT7;
       __delay_cycles(120000);
       P4OUT &= ~BIT7;
   }
   P1IFG &= ~BIT1;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章