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

📄 crc.lst

📁 最先进的信号机程序,经过很多重要场合测试通过
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.02  CRC                                                                    08/02/2006 14:44:15 PAGE 1   


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

stmt level    source

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

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

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

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

⌨️ 快捷键说明

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