下头函数,只要被调用就会导致单片机死机,请大家帮忙分析

下面函数,只要被调用就会导致单片机死机,请大家帮忙分析
都是简单的运算。
char Time_down_cmd = 0; //启动倒计时命令,1启动,0 关闭
long disp_time ;
void Disp_TimeDown(void)
{

    char dispbuf1[3],dispbuf2[3] ;
    int dat1=0,dat2;
    int flag = 0;
    int i ;

   
    if(AutoRunType == AUTO_MODE_RUN)
      {
                PutStr(2,0, "运行--");
                disp_time = DownTime_run;        
      }
            else if(AutoRunType == AUTO_MODE_STOP)
      {
                PutStr(2,0, "停止--");
                disp_time = DownTime_stop;
      }


        if((disp_time>=0) && (disp_time<6000) )//最大支持99分59秒 
     {

            if(disp_time >= 60)
      {
                dat1 = disp_time/60;
                dat2 = disp_time%60;
      }
            else if((disp_time >= 0))
      {
                dat1 = 0;
                dat2 = disp_time;
         } 

     
            if((dat1 >=0) && (dat2 >= 0)) 
         { 
                if(dat1 < 10)
          {
      
           
                    my_itoa(dat1,dispbuf1+1);
                    dispbuf1[0] = '0';
                 flag = 1;
          }
                else if(dat1 < 60)
          {
                    my_itoa(dat1,dispbuf1);
                 flag = 1;
          }
             if(flag)
          {
                    dispbuf1[2] = '\0';
                     PutStr(2,3,dispbuf1);
          }

                flag = 0;
                if(dat2 < 10)
          {
       
           
                    my_itoa(dat2,dispbuf2+1);
                //  dispbuf2[0] = '0'; 
                 flag = 1;
          }
                else if(dat2 < 60)
          {
                 flag = 1;
                    my_itoa(dat2,dispbuf2);