单片机程序执行中断后卡死,是哪里有问题啊?

为什么执行中断不能返回啊,是一个计算器的程序,显示数字

/* 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;
}   

能进断点程序吗?如果可以进断点程序,那么就是前面的断点里面延时的问题。
如果不能进入断点,那么就是断点的入口配置问题。