使用msp430f5529a,,seed公司开发的开发板。如果你的也是直接下载程序即可。只贴程序。
#include <msp430.h>
int sum=0,num=0;
void main(void)
{
WDTCTL = WDTPW+WDTHOLD; // Stop WDT
P1DIR=0XFF;
P1OUT=0X00;
P2OUT|=BIT2;
P2REN|=BIT2;
P2IES|=BIT2;
P2IE|=BIT2;
P2IFG=0X00;
P8DIR|=BIT1;
__enable_interrupt();//开总中断
while(1){
num=sum%5;
switch(num){
case 0:P1OUT=BIT1;break;
case 1:P1OUT=BIT2;break;
case 2:P1OUT=BIT3;break;
case 3:P1OUT=BIT4;break;
case 4:P1OUT=BIT5;break;
}
}
}
#pragma vector=PORT2_VECTOR
__interrupt void PORT2_ISR(void){
volatile unsigned long int i;//volatile关键字是必须使用的,如果不加会被编译器优化而不能执行
if((P2IN&0xff)!=0xff){
for(i=10000;i>0;i--);//如果i太大会显得不灵敏,自己可以调节一下
if((P2IN&0xff)!=0xff){//if再次判断
if(P2IFG&BIT2){//如果是按键按下则sum++,并软件清楚中断标志
sum++;
P2IFG=0X00;
}
}
while(!(P2IN&BIT2));//等待被按下的过程
for(i=12000;i>0;i--);//松开按键去抖动
}
}