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

📄 crc.lst

📁 基于无线单片机24e1的组网程序。在无线传感器之类的应用中的成功案例。
💻 LST
字号:
C51 COMPILER V8.02   CRC                                                                   10/05/2006 09:38:17 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE CRC
OBJECT MODULE PLACED IN .\output\crc.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE crc.c OMF2 BROWSE MODDP2 DEBUG OBJECT(.\output\crc.obj)

line level    source

   1          #include "def.h"
   2          #include"setting.h"
   3          //extern void SendCh(U8);
   4          //unsigned int code crc_ta[16]=
   5          //{ /* CRC余式表 */
   6              /*     0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,
   7                   0x8108,0x9129,0xa14a,0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef,
   8          };*/
   9          
  10          union
  11          {
  12                  U16 iWord;
  13                  struct
  14                  {
  15                          U8 cHigh;
  16                          U8 cLow;
  17                  }iData;
  18          }CrcTemp;
  19          
  20          U8 count;
  21          
  22          
  23          BOOL RxdCrc(void);
  24          void TxdCrc( void );
  25          void Crc( void);
  26          
  27          void Crc(void)//2006-9-5:crc改为直接调用全局联合,而不再用指针传递了,因为......
  28          {
  29   1       //       unsigned char da;
  30   1              U8 i;
  31   1      //        CrcTemp.iWord = 0xffff;
  32   1                      CrcTemp.iWord = 0;
  33   1              for( i=0; i<26; i++ )
  34   1              {
  35   2               //       da=CrcTemp.iData.cHigh >> 4; /* 暂存CRC的高四位 */
  36   2                      
  37   2               //       CrcTemp.iWord <<= 4; /* CRC右移4位,相当于取CRC的低12位)*/
  38   2                      
  39   2               //       CrcTemp.iWord ^= crc_ta[da^(Setting.cByte[i]/16)]; /* CRC的高4位和本字节的前半字节相加后
             -查表计算CRC,
  40   2                      
  41   2                //      然后加上上一次CRC的余数 */
  42   2                //      da = CrcTemp.iData.cHigh >>4 ; /* 暂存CRC的高4位 */
  43   2                //      CrcTemp.iWord <<= 4; /* CRC右移4位, 相当于CRC的低12位) */
  44   2                 //     CrcTemp.iWord ^= crc_ta[da^(Setting.cByte[i]&0x0f)]; /* CRC的高4位和本字节的后半字节相加
             -后查表计算CRC,
  45   2                 //     然后再加上上一次CRC的余数 */
  46   2                         CrcTemp.iWord+=Setting.cByte[i];
  47   2              }
  48   1       //       CrcTemp.iWord ^= 0xffff;
  49   1      
  50   1      }
  51          
  52          BOOL RxdCrc( void)
  53          {
C51 COMPILER V8.02   CRC                                                                   10/05/2006 09:38:17 PAGE 2   

  54   1              //count = 22;
  55   1              Crc();
  56   1              if( (CrcTemp.iData.cHigh ==Setting.cByte[26])&&(CrcTemp.iData.cLow==Setting.cByte[27]) )
  57   1              {
  58   2                      return TRUE;
  59   2              }
  60   1              else
  61   1              {
  62   2                      return FALSE;
  63   2              }
  64   1      }
  65          
  66          void TxdCrc(void)
  67          {
  68   1              //count = 22;
  69   1      
  70   1              Crc();
  71   1              
  72   1              Setting.cByte[26] = CrcTemp.iData.cHigh;
  73   1              Setting.cByte[27] = CrcTemp.iData.cLow;
  74   1      }
  75          
  76          
  77          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     56    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
   EDATA SIZE       =   ----    ----
   HDATA SIZE       =   ----    ----
   XDATA CONST SIZE =   ----    ----
   FAR CONST SIZE   =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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