首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

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

2013-01-25 
电脑死机后伟福打开后全是乱码。#include main.h/****************************************************

电脑死机后伟福打开后全是乱码。

#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();


   7          extern  bit w_onebyte(unsigned char address,unsigned char ddata);
   8          void resolutioninput(void);
   9          void send(unsigned char sbuf);
  10          void domode3(uint08 i);
  11          bit domodeE0(void);
  12          void  domoderonghe(void);
  13          void  senvgadvi(void);
  14          //bit flag=0;
  15
  16
  17          sbit cardreset= P1^4;
  18          sbit cardclear= P1^0  ;
  19
  20          void sleep()
  21          {uint08 i,j;
  22   1      for (i=0;i<200;i++){
  23   2      for(j=0;j<200;j++); }
  24   1
  25   1      }
  26          void main(void)
  27          {       int usNum;
  28   1               P4SW =0x70;
  29   1               cardreset=1;
  30   1                cardclear=1;
  31   1                 domodeno();
  32   1
  33   1            serialinit();
  34   1
  35   1
  36   1            Init();
  37   1             serial_port_initial();
  38   1            setcom(0x20);
  39   1
  40   1
  41   1            /* Rmt_SentCode(RIGHT);
  42   1              sleep();
  43   1              sleep();
  44   1      sleep();
  45   1      sleep();
  46   1      sleep();
  47   1              Rmt_SentCode(RIGHT);


  48   1              sleep();
  49   1              sleep();
  50   1      sleep();
  51   1      sleep();
  52   1      sleep();
  53   1              Rmt_SentCode(RIGHT);
  54   1              sleep();
  55   1              sleep();
C51 COMPILER V6.23a  MAIN                                                                  08/30/2012 12:55:36 PAGE 2

  56   1      sleep();
  57   1      sleep();
  58   1      sleep();
  59   1              Rmt_SentCode(ENTER);  */
  60   1
  61   1               while(1)
  62   1             {
  63   2             // senddata();
  64   2            }
  65   1
  66   1
  67   1
  68   1      }
*** WARNING C280 IN LINE 27 OF F:\DVI\MAIN\BOARD\MAIN.C: 'usNum': unreferenced local variable
  69
  70          /****************外部中断0************************
  71          void exter0() interrupt 0
  72          {
  73             EX0=0;                                     //要不要关
  74             num_exter0++;
  75             fre_hbyonev=num_exter2;
  76                  num_exter2=0;
  77             EX0=1;
  78          }
  79
  80          /****************外部中断1************************      //行频判断,计数次数为行频2倍


  81          void exter1() interrupt 2
  82          {
  83             EX1=0;
  84             num_exter1++;
  85             num_exter2++;
  86             EX1=1;
  87          }
  88          /****************定时器0************************
  89          void timer0() interrupt 1
  90          {
  91              TH0  = 0x4c;        //定时一次溢出为50ms
  92              TL0  = 0x00;
  93
  94              t0++;
  95              if(t0==20)          //0.5s
  96              {
  97                  t0=0;
  98                  en_read=1;
  99                  fre_hsync=num_exter1;
 100                  num_exter1=0;
 101                  fre_vsync=num_exter0;
 102                  num_exter0=0;
 103              }
 104          }
 105           */
 106
 107          /*********************************************************************/
 108          /*                                                                   */
 109          /*                            *设置参数*                             */
 110          /*                                                                   */


 111          /*********************************************************************/
 112          void Init(void)
 113          {   uint16 usNum = 0;
 114   1        Init8113();
 115   1            cardreset=0;
 116   1
C51 COMPILER V6.23a  MAIN                                                                  08/30/2012 12:55:36 PAGE 3

 117   1           DF_SerMem_Read(&serial.sbuf, A_BASE_DATAFLASH , 512);
 118   1           DF_SerMem_Read(&serial.sbuf[512], A_BASE_DATAFLASH+DATAFLASH_LEN, 512);
 119   1          if(serial.mode.flag!=0x01)
 120   1        {serial.cmdinfo.len=0x10;
 121   2        serial.sbuf[0]=0x01;
 122   2
 123   2         DF_Sector_Erase(A_BASE_DATAFLASH);
 124   2         DF_Sector_Erase(A_BASE_DATAFLASH+DATAFLASH_LEN);
 125   2         DF_SerMem_Write(&serial.sbuf, A_BASE_DATAFLASH , 512);
 126   2         DF_SerMem_Write(&serial.sbuf[512], A_BASE_DATAFLASH+DATAFLASH_LEN, 512);
 127   2          sleep();
 128   2          cardreset=1;
 129   2
 130   2         }else
 131   1         {
 132   2            //for(usNum=0;usNum<100;usNum++)
 133   2           //  sleep();
 134   2         //  domodeno();
 135   2          //  sleep();
 136   2            cardreset=1;
 137   2           // for(usNum=0;usNum<500;usNum++)
 138   2         //    sleep();
 139   2        //  domode2();
 140   2           for(usNum=0;usNum<500;usNum++)
 141   2             sleep();


 142   2
 143   2
 144   2            domode1();
 145   2
 146   2          }
 147   1      }
 148
 149
 150          /*********************************************************************/
 151          /*                                                                   */
 152          /*                          *串口初始化*                             */
 153          /*                                                                   */
 154          /*****************************************************************/
 155          void serial_port_initial() //串口初始化
 156          {
 157   1      SCON = 0x50;
 158   1      TMOD=0x21;
 159   1      TH1= RELOAD_COUNT ;
 160   1      TL1= RELOAD_COUNT ;
 161   1      TR1=1;
 162   1              ES   =1; //允许串口中断
 163   1              EA   =1; //开总中断
 164   1          //TH0  = 0x4c;        //定时一次溢出为50ms
 165   1          //TL0  = 0x00;    //时间=(1/11.0592X1000000)X12     //65536-46080
 166   1            //ET0  = 1;      // 开定时器中断0
 167   1          //TR0  = 1;      //开定时器0
 168   1          //EX0  = 1;
 169   1          //EX1  = 1;
 170   1         // IT0  = 1;        //下降沿触发


 171   1          //IT1  = 1;         //下降沿触发
 172   1          //PS=1;
 173   1
 174   1      }
 175          /*********************************************************************/
 176          /*                                                                   */
 177          /*                          *串口数据验证函数*                           */
 178          /*                                                                   */
C51 COMPILER V6.23a  MAIN                                                                  08/30/2012 12:55:36 PAGE 4

 179          /*********************************************************************/
 180          uint08   cmdcheck(void)
 181          {uint16 i;
 182   1       uint08 sum=0;
 183   1      for(i=0;i<serial.cmdinfo.len;i++)
 184   1        sum=sum+serial.sbuf[5+i];
 185   1
 186   1        return sum;
 187   1      }
 188          void send(unsigned char sbuf)
 189           {
 190   1         TI=0;
 191   1         SBUF=sbuf;
 192   1         while(TI==0);
 193   1         TI=0;
 194   1       }
 195          /********************************************* _nop_();
            _nop_();


            _nop_();

        }
        pusCode++;
        usCode = *pusCode;
        while (0 != usCode)
        {
            P_REM = 1;
            usCode--;
            NOP12();

            NOP12();
            NOP12();
            NOP12();
            NOP12();
            NOP12();
            NOP12();
            NOP12();
            NOP12();
            NOP12();
            NOP12();
            NOP12();
            NOP12();
             //加
            _nop_();
            _nop_();
            _nop_();
            _nop_();
            _nop_();
            _nop_();
           // _nop_();

       }
        usLen--;
    }
}   */

中间好多源代码都不见了。中间修候改改好多次了。没有程序怎么办。我能不能告他们。具体过程。vw编译好程序。用stc下载。VW没有关闭。串口线用usb车串口HL340.下载中出现蓝屏。程序源文件就成这副德行了.
[解决办法]
啊?

我们写源代码都有源代码托管的,以前用vss,后来一直用svn,所以我们从来不担心源代码丢失

热点排行