首页资源分类嵌入式处理器MSP430 > 用按键中断控制LED,可按照此案例自行更改

用按键中断控制LED,可按照此案例自行更改

已有 445110个资源

下载专区

上传者其他资源

    文档信息举报收藏

    标    签:keyled中断

    分    享:

    文档简介

    用按键中断控制LED,可按照此案例自行更改

    文档预览

    #include void Clkinit(); void io_init(); void delay(); void main() { WDTCTL = WDTPW + WDTHOLD; //关闭看门狗 Clkinit(); io_init(); while(1) { } } void io_init() { P1DIR=0x00; P1OUT |= BIT0+BIT1+BIT2+BIT3; //将电阻设置为上拉 P1IES |= BIT0+BIT1+BIT2+BIT3; // P1.2....设为下降沿中断 P1IE |= BIT0+BIT1+BIT2+BIT3; // 允许P1.2..中断 P1IFG=0x00; //中断标志位清零 P2SEL=0x00; P2DIR=0xFF; P2OUT=0xFF; } void Clkinit() { char i; BCSCTL1 &= ~XT2OFF; //打开XT2振荡器 IFG1&=~OFIFG; //清除振荡错误标志 while((IFG1&OFIFG)!=0) { for(i=0;i<0xff;i++); IFG1&=~OFIFG; //清除振荡错误标志 } BCSCTL2 |= SELM_2+SELS+DIVS_3; //MCLK为8MHz,SMCLK为1MHz _EINT(); } void delay(int a) { while(a--); } #pragma vector=PORT1_VECTOR __interrupt void Port1() { if((P1IFG&BIT0) == BIT0) { //处理P1IN.0中断 P1IFG &= ~BIT0; //清除中断标志 P2OUT&=~BIT6+BIT7; delay(3000); P2OUT=0xFF;} else if((P1IFG&BIT1) ==BIT1) { //处理P1IN.1中断 P1IFG &= ~BIT1; //清除中断标志 P2OUT&=~BIT4+BIT5; delay(3000); P2OUT=0xFF; } else if((P1IFG&BIT2) ==BIT2) { //处理P1IN.3中断 P1IFG &= ~BIT2; //清除中断标志 P2OUT&=~BIT2+BIT3; delay(3000); P2OUT=0xFF;} else if((P1IFG&BIT3) ==BIT3) { //处理P1IN.4中断 P1IFG &= ~BIT3; //清除中断标志 P2OUT&=~BIT0+BIT1; delay(3000); P2OUT=0xFF;} }

    Top_arrow
    回到顶部
    EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。