电脑死机后伟福打开后全是乱码。该如何处理

电脑死机后伟福打开后全是乱码。
#include <main.h>
/*********************************************************************/
/*                                                                   */
/*                          *串口信号切换函数*                       */
/*                                                                   */
/*********************************************************************/
 void source_switch(uint08 sbuf)
 { uint08 temp[23];
  uint16 usTimes;
        uint16 usNum = 0;
         temp[0]= sbuf;
while (1)//(ucNum < 14)
{
usTimes = 50000;
while ((0 == RI)&&(0 != usTimes))
{
usTimes--;
}
if (0 == usTimes) break;
RI = 0;
usNum++;
temp[usNum] = SBUF;
if(usNum>=23){break; }
}
   ES=0;
   if(temp[2]>17){send(10); ES=1;return;}
   if(0xff != temp[1]){send(11); ES=1;return;}
 if((0x0d!=temp[temp[2]+4])) {send(11); ES=1;return;}
 //if(0x0!=(serial.cmdinfo.len-16)%36) {    ES=1;return;}
// if(serial.sbuf[serial.cmdinfo.len+5]!=0x00){ ES=1; return;}
 switch(temp[3])
 {    caseC51 COMPILER V6.23a  MAIN                                                                  08/30/2012 12:55:36 PAGE 1


C51 COMPILER V6.23a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN F:\DVI\MAIN\BOARD\MAIN.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE F:\DVI\MAIN\BOARD\MAIN.C DB SB OE

stmt level    source

   1          #include <main.h>
   2          sbit flag03=P2^7;
   3          extern    void initronghe() ;
   4          extern void sendbyte(uint08 buf);
   5          extern  void setcom(uint08 buf) ;
   6          extern  void senddata();