⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crc.lst

📁 ASC 信号机控制程序,国内最先进的信号机控制程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.02  CRC                                                                    09/28/2006 21:46:50 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE CRC
OBJECT MODULE PLACED IN F:\LAIWORK\GB_ASC\CRC.OBJ
COMPILER INVOKED BY: c:\COMP51V6\C51.EXE F:\LAIWORK\GB_ASC\CRC.C DB SB OE LARGE

stmt level    source

   1          #include <reg51.h>
   2          #include <absacc.h>
   3          sbit   WatchDog = P1^3;       //看门狗
   4          //#define Begin
   5          extern unsigned int comm_state;
   6          unsigned char xdata  RX_BUF[512];
   7          unsigned int xdata  head=0;
   8          unsigned int xdata  tail=0;
   9          unsigned char transparence=0;
  10          unsigned char testbit=0;
  11          unsigned char REVSTATUS=0;
  12          unsigned char xdata checkdata[512];
  13          unsigned short checktemp=0;
  14          unsigned int transparence_valid=0;
  15          unsigned int data_num=4;
  16          unsigned int check_write=0;
  17          unsigned int check_temp=0;
  18          unsigned char beginbit=0;
  19          unsigned char valid_data=0;
  20          unsigned char valid_data_num=0;
  21          unsigned char receive_flag;
  22          unsigned char xdata second_flag;
  23          
  24          extern unsigned char xdata h_address;
  25          extern unsigned char xdata l_address;
  26          
  27          sbit   watch_dog=P1^3;
  28          void  com_receive_deal();
  29          void check_transparence()
  30          {
  31   1         switch(transparence){
  32   2            case 0:if(testbit==1){
  33   3                        transparence =1;
  34   3                        transparence_valid=0;
  35   3                                  }else {
  36   3                                  transparence =0;
  37   3                                  transparence_valid=0;
  38   3                                        }
  39   2                   break;
  40   2            case 1:if(testbit==1){
  41   3                        transparence =2;
  42   3                        transparence_valid=0;
  43   3                                  }else {
  44   3                                  transparence =0;
  45   3                                  transparence_valid=0;
  46   3                                        }
  47   2                   break;
  48   2            case 2:if(testbit==1){
  49   3                        transparence =3;
  50   3                        transparence_valid=0;
  51   3                                  }else {
  52   3                                  transparence =0;
  53   3                                  transparence_valid=0;
  54   3                                        }
  55   2                   break;
C51 COMPILER V6.02  CRC                                                                    09/28/2006 21:46:50 PAGE 2   

  56   2            case 3:if(testbit==1){
  57   3                        transparence =4;
  58   3                        transparence_valid=0;
  59   3                                  }else {
  60   3                                  transparence =0;
  61   3                                  transparence_valid=0;
  62   3                                        }
  63   2                   break;
  64   2            case 4:if(testbit==1){
  65   3                        transparence =5;
  66   3                        transparence_valid=0;
  67   3                                  }else {
  68   3                                  transparence =0;
  69   3                                  transparence_valid=0;
  70   3                                        }
  71   2                   break;
  72   2            case 5:if(testbit==0){
  73   3                        transparence =0;
  74   3                        transparence_valid=1;
  75   3                                  }else {
  76   3                                  transparence =6;
  77   3                                  transparence_valid=1;
  78   3                                        }
  79   2                   break;
  80   2            case 6:if(testbit==0){
  81   3                        transparence =0;
  82   3                        transparence_valid=1;
  83   3                        REVSTATUS=0;
  84   3                                  }else {
  85   3                                  REVSTATUS=0X55;
  86   3                                  transparence_valid=0;
  87   3                                        }
  88   2                   break;
  89   2            default:break;
  90   2                 }
  91   1      }
  92          
  93          check_frame()
  94          {
  95   1           switch(beginbit){
  96   2             case 0:if(testbit==0){
  97   3                         beginbit=1;
  98   3                         REVSTATUS=0;
  99   3                                   }else{
 100   3                               beginbit=0;
 101   3                                         }
 102   2                    break;
 103   2             case 1:if(testbit==1){
 104   3                         beginbit=2;
 105   3                         REVSTATUS=0;
 106   3                                   }else{
 107   3                               beginbit=1;
 108   3                               REVSTATUS=0;
 109   3                                         }
 110   2                    break;
 111   2             case 2:if(testbit==1){
 112   3                         beginbit=3;
 113   3                         REVSTATUS=0;
 114   3                                   }else{
 115   3                               beginbit=1;
 116   3                               REVSTATUS=0;
 117   3                                         }
C51 COMPILER V6.02  CRC                                                                    09/28/2006 21:46:50 PAGE 3   

 118   2                    break;
 119   2             case 3:if(testbit==1){
 120   3                         beginbit=4;
 121   3                         REVSTATUS=0;
 122   3                                   }else{
 123   3                               beginbit=1;
 124   3                               REVSTATUS=0;
 125   3                                         }
 126   2                    break;
 127   2             case 4:if(testbit==1){
 128   3                         beginbit=5;
 129   3                         REVSTATUS=0;
 130   3                                   }else{
 131   3                               beginbit=1;
 132   3                               REVSTATUS=0;
 133   3                                         }
 134   2                    break;
 135   2             case 5:if(testbit==1){
 136   3                         beginbit=6;
 137   3                         REVSTATUS=0;
 138   3                                   }else{
 139   3                               beginbit=1;
 140   3                               REVSTATUS=0;
 141   3                                         }
 142   2                    break;
 143   2             case 6:if(testbit==1){
 144   3                         beginbit=7;
 145   3                         REVSTATUS=0;
 146   3                                   }else{
 147   3                               beginbit=1;
 148   3                               REVSTATUS=0;
 149   3                                         }
 150   2                    break;
 151   2             case 7:if(testbit==0){
 152   3                         beginbit=0;
 153   3                         REVSTATUS=1;
 154   3                                   }else{
 155   3                               beginbit=0;
 156   3                               REVSTATUS=0;
 157   3                                         }
 158   2                    break;
 159   2             default:beginbit=0;
 160   2                     REVSTATUS=0;
 161   2                     break;
 162   2                           }
 163   1      }
 164          unsigned short cal_crc(unsigned char *ptr,unsigned int len)
 165          {
 166   1       unsigned char i;
 167   1       unsigned short  crc=0;
 168   1      
 169   1       while(len--!=0){
 170   2      	for(i=0x80;i!=0;i/=2){
 171   3      		if((crc&0x8000)!=0){
 172   4      			crc*=2;
 173   4      			crc^=0x1021;
 174   4      			               }
 175   3      		else
 176   3      		  crc*=2;
 177   3      	    if((*ptr&i)!=0)
 178   3      	      crc^=0x1021;
 179   3      		                }
C51 COMPILER V6.02  CRC                                                                    09/28/2006 21:46:50 PAGE 4   

 180   2      		ptr++;
 181   2      	            }
 182   1        	return(crc);
 183   1      }
 184          void crc_main()
 185          {
 186   1        unsigned char i;
 187   1        unsigned char *p;
 188   1       WatchDog =!WatchDog;
 189   1       check_write=0;
 190   1       check_temp=0;
 191   1         /////////////////////////////////////////////////////////////////
 192   1        IP=0X10;
 193   1         while(head!=tail){
 194   2             WatchDog =!WatchDog;
 195   2             for(i=0;i<8;i++){
 196   3                testbit=(RX_BUF[tail]>>(7-i))%2;
 197   3                switch (REVSTATUS){
 198   4                  case 0:check_frame();
 199   4                         break;
 200   4                  case 1:check_transparence();
 201   4                         if(transparence_valid==0){
 202   5                               valid_data=valid_data+(testbit<<(7-valid_data_num));
 203   5                               if(++valid_data_num==8){
 204   6                                    if(valid_data==h_address/*aa*/){
 205   7                                         // transparence=0;
 206   7                                          REVSTATUS=2;
 207   7                                          valid_data=0;
 208   7                                          valid_data_num=0;
 209   7                                          checkdata[0]=h_address/*aa*/;
 210   7                                                         }else{
 211   7                                                        transparence=0;
 212   7                                                        REVSTATUS=0;
 213   7                                                        valid_data=0;
 214   7                                                        valid_data_num=0;
 215   7                                                               }
 216   6                                                       }
 217   5                                                   }else{
 218   5                                                       if(transparence_valid==1&&REVSTATUS==0){
 219   6                                                         transparence_valid=0;
 220   6                                                         transparence=0;
 221   6                                                         valid_data=0;
 222   6                                                         valid_data_num=0;                                      
             -                                                }
 223   5                                                             }
 224   4      
 225   4                         break;
 226   4                  case 2: if(transparence_valid==0){
 227   5                               valid_data=valid_data+(testbit<<(7-valid_data_num));
 228   5                               if(++valid_data_num==8){
 229   6                                    if(valid_data==l_address/*dd*/){
 230   7                                         // transparence=0;
 231   7                                          REVSTATUS=3;
 232   7                                          valid_data=0;
 233   7                                          valid_data_num=0;
 234   7                                          checkdata[1]=l_address/*dd*/;
 235   7                                                         }else{
 236   7                                                        transparence=0;
 237   7                                                        REVSTATUS=0;
 238   7                                                        valid_data=0;
 239   7                                                        valid_data_num=0;
 240   7                                                               }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -