msp430g2553学习笔记 联系客服

发布时间 : 星期三 文章msp430g2553学习笔记更新完毕开始阅读dc861e7d647d27284b735165

{

step();

}

}

// _BIS_SR(LPM4_bits + GIE); // Enter LPM4 w/interrupt 进入低功耗模式4 }

// Port 2 interrupt service routine

#pragma vector=PORT2_VECTOR

__interrupt void Port_1(void) {

_DINT(); //关中断

P2DIR &= ~(BIT0+BIT1+BIT2+BIT5); //在中断设为输入,用于消抖 因为IO脚默认为输入,所以这句话不要也行,但是

//最好加上使程序清晰

delay_ms(5); //延迟5ms,消抖 延迟5ms 10ms都行

if((P2IN&BIT0)==0) //如果为低,即按键真的按下了 因为是下降沿触发中断,所以要检测是否为低 {

key=13;

wr_string(5,3,s_sin);

}

else if((P2IN&BIT1)==0) //如果P13为低,即按键真的按下了 因为是下降沿触发中断,所以要检测是否为低 {

key=14;

wr_string(5,3,s_square); }

else if((P2IN&BIT2)==0) //如果P13为低,即按键真的按下了 因为是下降沿触发中断,所以要检测是否为低 {

key=15;

wr_string(5,3,s_triangular); }

else if((P2IN&BIT5)==0) //如果P13为低,即按键真的按下了 因为是下降沿触发中断,所以要检测是否为低 {

key=16;

wr_string(5,3,s_saw); }

wr_int(2,3,key); //显示按键按下次数

P2IFG &= ~(BIT0+BIT1+BIT2+BIT5); // P1.3 IFG cleared 软件清除中断标志位

_EINT(); //开中断