P20~P23为LED,P11为按键。按下为低电平。
使用中断函数按下一次按键则LED状态反转一次。
#include "io430.h"
#include "in430.h"
void select_xt2(void){
unsigned char i;
/*------选择系统主时钟为8MHz-------*/
BCSCTL1 &= ~XT2OFF;
do{
IFG1 &= ~OFIFG; //清除晶振失败标志
for (i = 0xFF; i > 0; i--); //等待8MHz晶体起振
}while ((IFG1 & OFIFG));
BCSCTL2 |= SELM_2 + SELS ; //MCLK和SMCLK选择高频晶振
}
void main()
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
P1DIR = 0XFD; //P1 in or out
P1IE = 0X02; //开启P1中断
P1IES = 0X02; //中断触发方式
P1IFG = 0X00; //中断标志清零
P2DIR = 0XFF;
P2OUT = 0XFF;
_EINT();
}
#pragma vector = PORT1_VECTOR
__interrupt void PORT1_ISR(void)
{
__delay_cycles(50000);
if((P1IN&0X02) == 0)
P2OUT = ~P2OUT;
__delay_cycles(50000);