用外部中断,按一次键,两个LED灯点亮,再按一次,两个LED灯熄灭,循环。用Keil(C语言)编译

2024年11月15日 21:00
有1个网友回答
网友(1):

#include "msp430x54x.h"
//************************************************************
void main()
{
WDTCTL = WDTPW + WDTHOLD; //关看门狗
P2DIR &= ~( BIT6 + BIT7); //P2.6 P2.7 设置为输入
P1DIR |= BIT0; //P1.0 设置为输出
P7DIR |= BIT7; //P7.7 设置为输出
P2REN |= BIT6 + BIT7; //上拉下拉电阻使能
P2OUT |= BIT6 + BIT7; //P2.6 P2.7 为上拉
P2IES |= BIT6 + BIT7; //P2.6 P2.7下降触发
P2IE |= BIT6 + BIT7; //P2.6 P2.7中断使能
P2IFG =0; //中断标志清除,防止配置过程中出现中断标志为1
_EINT(); //开总中断
LPM4; //进低功耗4
}

/*******************端口中断程序********************/

#pragma vector = PORT2_VECTOR
__interrupt void port2(void)
{
switch(P2IV)
{
case 0x0e: P1OUT ^= BIT0;break; //LED1 亮灭
case 0x10: P7OUT ^= BIT7;break; //LED2 亮灭
default :break;
}
}