为什么执行中断不能返回啊,是一个计算器的程序,显示数字
/* Main.c file generated by New Project wizard
*
* Created: 周二 4月 5 2022
* Processor: MSP430F249
* Compiler: GCC for MSP430
*/
#include <MSP430.h>
#define CPU_F ((double)8000000) //外部高频晶振8MHZ
//#define CPU_F ((double)32768) //外部低频晶振32.768KHZ
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
#pragma vector = PORT1_VECTOR
__interrupt void Port_1(void)
{
delay_ms(20); //延时100ms
unsigned char t1;
unsigned char t2;
unsigned char t;
t1=P1IN & 0x0F;
P1DIR = 0X0F;
P1OUT = 0;
t2 =(P1IN & 0XF0);
t = t1|t2;
switch(t){
case 0b01111101:P4OUT=0;break;
case 0b10111110:P4OUT=1;break;
case 0b10111101:P4OUT=2;break;
case 0b10111011:P4OUT=3;break;
case 0b11011110:P4OUT=4;break;
case 0b11011101:P4OUT=5;break;
case 0b11011011:P4OUT=6;break;
case 0b11101110:P4OUT=7;break;
case 0b11101101:P4OUT=8;break;
case 0b11101011:P4OUT=9;break;
default: P4OUT=0X0F;
}
}
int main (void)
{
WDTCTL = WDTPW | WDTHOLD ;
while(1){
P4DIR =0X0F;
P4OUT=0XFF;
P1DIR= 0XF0;
P1OUT =0X0F;
P1IE =0X0F;
P1IES =0X0F;
P1IFG =0X00;
_BIS_SR (LPM3_bits +GIE);
_EINT(); //使能中断
delay_ms(100); //延时100ms
}
return 0;
}