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

📄 crc.lst

📁 一个循环冗余校验的程序
💻 LST
字号:
C51 COMPILER V7.06   CRC                                                                   03/29/2008 23:46:17 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE CRC
OBJECT MODULE PLACED IN .\output\CRC.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CRC\CRC.c BROWSE DEBUG OBJECTEXTEND PRINT(.\Listing\CRC.lst) OBJECT(.\outpu
                    -t\CRC.obj)

stmt level    source

   1          
   2          
   3           
   4          //unsigned char code crcbuff [] = { 0x00,0x00,0x00,0x00,0x06,0x0d,0xd2,0xe3}; 
   5          
   6          //unsigned char code crcbuff [] = {0x7F,0xFE,0xFF,0x09,0xC4,0xD2,0x01,0x00,0x00,0x00};
   7          unsigned char code crcbuff [] = {0x00,0x01,0x00,0xFA,0x8C,0x6D,0xFF,0xFF,0xFE,0xFF};
   8          unsigned int crc;                  // CRC 码 
   9          
  10           
  11          unsigned int crc16l(unsigned char *ptr,unsigned char len)        // ptr 为数据指针,len 为数据长度 
  12          { 
  13   1        unsigned char i; 
  14   1        while(len--) 
  15   1        { 
  16   2            for(i=0x80; i!=0; i>>=1) 
  17   2          { 
  18   3              if((crc&0x8000)!=0) {crc<<=1; crc^=0x1081;}    //   1-1   
  19   3                else crc<<=1;                               // 1-2 
  20   3            if((*ptr&i)!=0) crc^=0x1081;                      //    1-3   
  21   3          } 
  22   2          ptr++; 
  23   2        } 
  24   1        return(crc); 
  25   1      } 
  26          
  27          
  28          
  29          
  30          /*
  31          //全字节查表法
  32          
  33          code uint crc_ta[256]={                // X16+X12+X5+1  余式表 
  34              0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 
  35              0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 
  36              0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, 
  37              0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de, 
  38              0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485, 
  39              0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d, 
  40              0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4, 
  41              0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 
  42              0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823, 
  43              0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b, 
  44              0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12, 
  45              0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a, 
  46              0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41, 
  47              0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 
  48              0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70, 
  49              0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78, 
  50              0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f, 
  51              0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067, 
  52              0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e, 
  53              0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256, 
  54              0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d, 
C51 COMPILER V7.06   CRC                                                                   03/29/2008 23:46:17 PAGE 2   

  55              0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, 
  56              0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c, 
  57              0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634, 
  58              0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab, 
  59              0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3, 
  60              0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a, 
  61              0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92, 
  62              0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 
  63              0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1, 
  64              0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8, 
  65              0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0 
  66          }; 
  67           
  68          
  69          
  70          uint table_crc(uchar *ptr,uchar len)      //  字节查表法求 CRC 
  71          { 
  72            uchar da; 
  73              while(len--!=0) 
  74            { 
  75                da=(uchar) (crc/256);        // 以 8 位二进制数暂存 CRC 的高 8 位   
  76                crc<<=8;                 //  左移 8 位 
  77                crc^=crc_ta[da^*ptr];        //  高字节和当前数据 XOR 再查表 
  78                ptr++; 
  79            } 
  80              return(crc); 
  81          } 
  82          
  83          */
  84          
  85          
  86          
  87          /*
  88          //半字节查表法
  89          
  90          code uint crc_ba[16]={ 
  91               0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 
  92            0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 
  93          }; 
  94           
  95          uint ban_crc(uchar *ptr,uchar len) 
  96          { 
  97            uchar da; 
  98            while(len--!=0) 
  99            { 
 100              da = ((uchar)(crc/256))/16; 
 101              crc <<= 4; 
 102              crc ^=crc_ba[da^(*ptr/16)]; 
 103              da = ((uchar)(crc/256)/16); 
 104              crc <<= 4; 
 105              crc ^=crc_ba[da^(*ptr&0x0f)]; 
 106              ptr++; 
 107            } 
 108            return(crc); 
 109          } 
 110           
 111          */
 112          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     78    ----
C51 COMPILER V7.06   CRC                                                                   03/29/2008 23:46:17 PAGE 3   

   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2    ----
   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 + -