MSP430按键采用中断也要消抖动(程序)

机械按键都有抖动,所以,为了消除按键的抖动,避免各种干扰引起的抖动产生误操作,所以,消抖就变得尤为重要。

#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;
      }
永不止步步 发表于11-10 09:24 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:308217个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号