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

📄 crc2.lst

📁 代码以两种方法实现crc16校验
💻 LST
字号:
C51 COMPILER V7.50   CRC2                                                                  08/27/2008 18:02:52 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE CRC2
OBJECT MODULE PLACED IN crc2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE crc2.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg51.h>
   2          #include<intrins.h>
   3          
   4          #define uchar unsigned char
   5          #define uint  unsigned int
   6          
   7          uint code crctable[]={
   8              0x0000,0xc0c1,0xc181,0x0140,0xc301,0x03c0,0x0280,0xc241,
   9              0xc601,0x06c0,0x0780,0xc741,0x0500,0xc5c1,0xc481,0x0440,
  10              0xcc01,0x0cc0,0x0d80,0xcd41,0x0f00,0xcfc1,0xce81,0x0e40,
  11              0x0a00,0xcac1,0xcb81,0x0b40,0xc901,0x09c0,0x0880,0xc841,
  12              0xd801,0x18c0,0x1980,0xd941,0x1b00,0xdbc1,0xda81,0x1a40,
  13              0x1e00,0xdec1,0xdf81,0x1f40,0xdd01,0x1dc0,0x1c80,0xdc41,
  14              0x1400,0xd4c1,0xd581,0x1540,0xd701,0x17c0,0x1680,0xd641,
  15              0xd201,0x12c0,0x1380,0xd341,0x1100,0xd1c1,0xd081,0x1040,
  16              0xf001,0x30c0,0x3180,0xf141,0x3300,0xf3c1,0xf281,0x3240,
  17              0x3600,0xf6c1,0xf781,0x3740,0xf501,0x35c0,0x3480,0xf441,
  18              0x3c00,0xfcc1,0xfd81,0x3d40,0xff01,0x3fc0,0x3e80,0xfe41,
  19              0xfa01,0x3ac0,0x3b80,0xfb41,0x3900,0xf9c1,0xf881,0x3840,
  20              0x2800,0xe8c1,0xe981,0x2940,0xeb01,0x2bc0,0x2a80,0xea41,
  21              0xee01,0x2ec0,0x2f80,0xef41,0x2d00,0xedc1,0xec81,0x2c40,
  22              0xe401,0x24c0,0x2580,0xe541,0x2700,0xe7c1,0xe681,0x2640,
  23              0x2200,0xe2c1,0xe381,0x2340,0xe101,0x21c0,0x2080,0xe041,
  24              0xa001,0x60c0,0x6180,0xa141,0x6300,0xa3c1,0xa281,0x6240,
  25              0x6600,0xa6c1,0xa781,0x6740,0xa501,0x65c0,0x6480,0xa441,
  26              0x6c00,0xacc1,0xad81,0x6d40,0xaf01,0x6fc0,0x6e80,0xae41,
  27              0xaa01,0x6ac0,0x6b80,0xab41,0x6900,0xa9c1,0xa881,0x6840,
  28              0x7800,0xb8c1,0xb981,0x7940,0xbb01,0x7bc0,0x7a80,0xba41,
  29              0xbe01,0x7ec0,0x7f80,0xbf41,0x7d00,0xbdc1,0xbc81,0x7c40,
  30              0xb401,0x74c0,0x7580,0xb541,0x7700,0xb7c1,0xb681,0x7640,
  31              0x7200,0xb2c1,0xb381,0x7340,0xb101,0x71c0,0x7080,0xb041,
  32              0x5000,0x90c1,0x9181,0x5140,0x9301,0x53c0,0x5280,0x9241,
  33              0x9601,0x56c0,0x5780,0x9741,0x5500,0x95c1,0x9481,0x5440,
  34              0x9c01,0x5cc0,0x5d80,0x9d41,0x5f00,0x9fc1,0x9e81,0x5e40,
  35              0x5a00,0x9ac1,0x9b81,0x5b40,0x9901,0x59c0,0x5880,0x9841,
  36              0x8801,0x48c0,0x4980,0x8941,0x4b00,0x8bc1,0x8a81,0x4a40,
  37              0x4e00,0x8ec1,0x8f81,0x4f40,0x8d01,0x4dc0,0x4c80,0x8c41,
  38              0x4400,0x84c1,0x8581,0x4540,0x8701,0x47c0,0x4680,0x8641,
  39              0x8201,0x42c0,0x4380,0x8341,0x4100,0x81c1,0x8081,0x4040
  40          };
  41          
  42          uint crc16(uchar *str,uchar num)
  43          {
  44   1          uint arc,crc;
  45   1              uchar i;
  46   1              crc = 0xffff;
  47   1              for( i=0 ; i<num ; i++ )
  48   1              {
  49   2                  arc = (str[i]^crc)&0x00ff;
  50   2                      crc = _irol_(crc,8);
  51   2                      crc = crc&0x00ff;
  52   2                      crc = crc^crctable[arc];
  53   2              }
  54   1              return crc;
  55   1      }
C51 COMPILER V7.50   CRC2                                                                  08/27/2008 18:02:52 PAGE 2   

  56          
  57          uint data crc1;
  58          uchar data rbut[8];
  59          void main()
  60          {
  61   1          SP = 0x60;
  62   1              rbut[0] = 0x01;
  63   1              rbut[1] = 0x02;
  64   1              rbut[2] = 0x03;
  65   1              rbut[3] = 0x04;
  66   1              rbut[4] = 0x05;
  67   1              rbut[5] = 0x06;
  68   1              rbut[6] = 0x07;
  69   1              rbut[7] = 0x08;
  70   1              crc1 = crc16(rbut,8);
  71   1              while(1);
  72   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    143    ----
   CONSTANT SIZE    =    512    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     10       5
   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 + -