按你的程序,应该是遇到P1中断后判断P1.2如果为高电平就设置flag为1,返回主程序后,如果flag为1就会把P5.0上的LED(接法应为VCC-LED-限流电阻-P5.0,低电平点亮)点亮。你说的LED只闪烁一下,是指上电时吗?如果已经进入中断了的话,又没有flag的清零,理应只要触发一次,LED就永远亮着了,不会灭掉,不会闪一下。另外,MSP430的P1和P2有GPIO中断功能,但它是个多源中断,也就是说在对应端口中断使能的情况下P1里无论8个脚中的哪个引脚达到触发条件的时候,都会引起中断,你现在程序里就是在中断服务程序中才去产判断是哪个引脚引起的中断的,所以如果没有P1IE|=BIT2;这个设置的话即使不是P1.2触发的,也可能会进中断服务程序,但不会达到设置flag为1的条件。当然你程序里由于这句存在,并不会出现P1.2以外的引脚引起P1中断的可能,P1IES&=~BIT2;设置的是0,也就是上升沿触发,只要P1.2由低电平变成高电平,就应该会永久的点亮LED了,硬件没有故障的话不会出现闪一下的现象。建议用万用表测P5.0上的电压,看看,新上电后是否为高,P1.2上升沿触发后是否P5.0变低,如果是这样,可能是LED坏了,特别是白蓝管芯在击穿后部分管子会出现难点亮,只闪一下,变暗或连续闪烁等再现。