專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

MSP430按鍵采用中斷也要消抖動(程序)

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年08月31日   【字體:

 機械按鍵都有抖動,所以,為了消除按鍵的抖動,避免各種干擾引起的抖動產(chǎn)生誤操作,所以,消抖就變得尤為重要。

#include "MSP430G2553.h"
int ms,k,i;
char key=0;
void delay(int ms)
{
         while(ms--)
           {
              for(i=0;i<120;i++);
           } 
}
int main( void )
{
      // Stop watchdog timer to prevent time out reset
      WDTCTL = WDTPW + WDTHOLD;
      P1DIR |=BIT6+BIT0;                  
      P1DIR &=~BIT3;                   
      P1IE  |=BIT3;                  
      P1IES |=BIT3;                 
      P1IFG &=~BIT3;        
      _EINT();                                 
      while(1)
       {
          for(k=0;k<22;k++)
            {
               P1OUT=jj[k];
               delay(100);
             }
       }
}
 #pragma   vector=PORT1_VECTOR
 __interrupt void zhansan(void) 
      { 
            key=P1IN & P1IFG;
            delay(2);        
            if(key==(P1IN & BIT3))      //以上三句為消抖
                {       
                    for(k=0;k<5;k++)
                      {
                          P1OUT |=BIT6+BIT0;
                          delay(1000);
                          P1OUT &=~(BIT6+BIT0);
                          delay(1000);
                       }
                }
            P1IFG &=~BIT3;
      }
 
關(guān)閉窗口