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

📄 crc.lst

📁 最先进的信号机程序,经过很多重要场合测试通过
💻 LST
📖 第 1 页 / 共 2 页
字号:
 234   7                                                        valid_data_num=0;
 235   7                                                               }
 236   6                                                      }
 237   5                                                    }else{
 238   5                                                       if(transparence_valid==1&&REVSTATUS==0){
 239   6                                                                      transparence_valid=0;
 240   6                                                                      transparence=0;
C51 COMPILER V6.02  CRC                                                                    08/02/2006 14:44:15 PAGE 5   

 241   6                                                                      valid_data=0;
 242   6                                                                      valid_data_num=0;                         
             -                                                                 }
 243   5                                                                                               }
 244   4      
 245   4                         break;
 246   4                 case 3:check_transparence();
 247   4                         if(transparence_valid==0){
 248   5                             valid_data=valid_data+(testbit<<(7-valid_data_num));
 249   5                             if(++valid_data_num==8){
 250   6                                  if(valid_data==0xcc/*cc*/){
 251   7                                          //transparence=0;
 252   7                                          REVSTATUS=4;
 253   7                                          valid_data=0;
 254   7                                          valid_data_num=0;
 255   7                                          checkdata[2]=0xcc/*cc*/;
 256   7                                                       }else{
 257   7                                              transparence=0;
 258   7                                              REVSTATUS=0;
 259   7                                              valid_data=0;
 260   7                                              valid_data_num=0;
 261   7                                                             }
 262   6                                                     }
 263   5                                                   }else{
 264   5                                              if(transparence_valid==1&&REVSTATUS==0){
 265   6                                                                         transparence_valid=0;
 266   6                                                                         transparence=0;
 267   6                                                                         valid_data=0;
 268   6                                                                         valid_data_num=0;
 269   6                                                                                      }
 270   5                                                         }
 271   4                         break;
 272   4                  case 4:check_transparence();
 273   4                         if(transparence_valid==0){
 274   5                             valid_data=valid_data+(testbit<<(7-valid_data_num));
 275   5                             if(++valid_data_num==8){
 276   6                                  if(valid_data==0xc1){
 277   7                                          //transparence=0;
 278   7                                          REVSTATUS=5;
 279   7                                          valid_data=0;
 280   7                                          valid_data_num=0;
 281   7                                          checkdata[3]=0xc1;
 282   7                                                       }else{
 283   7                                              transparence=0;
 284   7                                              REVSTATUS=0;
 285   7                                              valid_data=4;
 286   7                                              valid_data_num=0;
 287   7                                                             }
 288   6                                                     }
 289   5                                                   }else{
 290   5                                              if(transparence_valid==1&&REVSTATUS==0){
 291   6                                                                         transparence_valid=0;
 292   6                                                                         transparence=0;
 293   6                                                                         valid_data=0;
 294   6                                                                         valid_data_num=0;
 295   6                                                                                      }
 296   5                                                         }
 297   4                         break;
 298   4                  case 5:check_transparence();
 299   4                         if(transparence_valid==0){
 300   5                             valid_data=valid_data+(testbit<<(7-valid_data_num));
 301   5                             if(++valid_data_num==8){
C51 COMPILER V6.02  CRC                                                                    08/02/2006 14:44:15 PAGE 6   

 302   6                                         checkdata[data_num]=valid_data;
 303   6                                         data_num++;
 304   6                                         REVSTATUS=6;
 305   6                                       //  transparence=0;
 306   6                                         valid_data=0;
 307   6                                         valid_data_num=0;
 308   6                                                    }
 309   5                                                   }else{
 310   5                                              if(transparence_valid==1&&REVSTATUS==0){
 311   6                                                                         transparence_valid=0;
 312   6                                                                         transparence=0;
 313   6                                                                         valid_data=0;
 314   6                                                                         valid_data_num=0;
 315   6                                                                                      }
 316   5                                                         }
 317   4                         break;
 318   4                  case 6:check_transparence();
 319   4                         if(transparence_valid==0){
 320   5                             valid_data=valid_data+(testbit<<(7-valid_data_num));
 321   5                             if(++valid_data_num==8){
 322   6                                         checkdata[data_num]=valid_data;
 323   6                                         data_num++;
 324   6                                         REVSTATUS=6;
 325   6                                         //transparence=0;
 326   6                                         valid_data=0;
 327   6                                         valid_data_num=0;
 328   6                                                    }
 329   5                                                   }else if(transparence_valid==1 && transparence==0 && REVSTATU
             -S!=0){
 330   5      					          transparence_valid=0;
 331   5                                                             break;
 332   5      				   	       }else{{
 333   6                                              if(transparence_valid==1&&REVSTATUS==0){
 334   7                                                              transparence_valid=0;
 335   7                                                              transparence=0;
 336   7                                                              valid_data=0;
 337   7                                                              p=&checkdata[0];
 338   7                                                              check_write=cal_crc(p,(data_num-2));
 339   7                                                              check_temp=(checkdata[data_num-2]<<8)+checkdata[da
             -ta_num-1];
 340   7                                                              data_num=4;
 341   7                               if(check_write==check_temp){ //CRC校验相等
 342   8                                            //  EA=0;
 343   8                                              receive_flag=checkdata[4];
 344   8                                              com_receive_deal(); //head=0;
 345   8                                               valid_data_num=0;
 346   8                                         //     EA=1;
 347   8                                                           }
 348   7      
 349   7               }
 350   6                          }
 351   5      
 352   5                         break; }
 353   4                         break;
 354   4                  default:break;
 355   4                                  }
 356   3                              }
 357   2                  if(++tail>300)tail=0;
 358   2                  //if(head==0)tail=0;
 359   2                           }
 360   1      }
 361          void comm() interrupt 4 using 2
C51 COMPILER V6.02  CRC                                                                    08/02/2006 14:44:15 PAGE 7   

 362          {
 363   1        if(RI==1){
 364   2           RX_BUF[head]=SBUF;
 365   2           if(++head>300)head=0;
 366   2                RI=0;
 367   2                  }
 368   1      
 369   1       }
C51 COMPILER V6.02  CRC                                                                    08/02/2006 14:44:15 PAGE 8   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
com_receive_deal . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
transparence_valid . . . . . . . . . .  PUBLIC   XDATA  U_INT    0000H  2
testbit. . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0002H  1
T0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
AC . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D6H  1
T1 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
transparence . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0003H  1
valid_data . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0004H  1
check_write. . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    0005H  2
head . . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    0007H  2
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
check_temp . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    0009H  2
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
INT0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
CY . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D7H  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
INT1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
checkdata. . . . . . . . . . . . . . .  PUBLIC   XDATA  ARRAY    000BH  512
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
WR . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
_cal_crc . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  ptr. . . . . . . . . . . . . . . . .  AUTO     XDATA  PTR      0000H  3
  len. . . . . . . . . . . . . . . . .  AUTO     XDATA  U_INT    0003H  2
  i. . . . . . . . . . . . . . . . . .  AUTO     XDATA  U_CHAR   0005H  1
  crc. . . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0004H  2
tail . . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    020BH  2
comm . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
SBUF . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0099H  1
h_address. . . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
watch_dog. . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0093H  1
l_address. . . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
checktemp. . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    020DH  2
IE0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0089H  1
IE1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008BH  1
crc_main . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  AUTO     XDATA  U_CHAR   0000H  1
  p. . . . . . . . . . . . . . . . . .  * REG *  DATA   PTR      0001H  3
valid_data_num . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   020FH  1
beginbit . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0210H  1
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
TF0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008DH  1
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
RB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009AH  1
EX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A8H  1
IT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0088H  1
data_num . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    0211H  2
TB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009BH  1
EX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AAH  1
IT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008AH  1
P. . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D0H  1
SM0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009FH  1
C51 COMPILER V6.02  CRC                                                                    08/02/2006 14:44:15 PAGE 9   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


SM1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009EH  1
SM2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009DH  1
PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
REVSTATUS. . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0213H  1
PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
RS0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D3H  1
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
RS1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D4H  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
PX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B8H  1
PX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BAH  1
receive_flag . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0214H  1
REN. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009CH  1
RX_BUF . . . . . . . . . . . . . . . .  PUBLIC   XDATA  ARRAY    0215H  512
RXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
check_frame. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
check_transparence . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
TXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1948    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   1045       7
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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