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

📄 crc-16快速查表计算lhf.asm

📁 MCS51的CRC-16快速查表计算函数 要预先生成CRC16查表数据
💻 ASM
字号:
;// CRC-CCITT16 = X16+X12+X5+1, 00010000 00100001($1021)
;郑州 汉威光电 刘海峰编制 (0371-62003091),欢迎交流
       CRC16H EQU 30H
       CRC16L EQU 31H

       ORG 0000H
       LJMP START

       ORG 0030H
START: MOV CRC16H,#00H
       MOV CRC16L,#00H
       MOV A,#30H
       LCALL CALCRC16
       MOV A,#31H
       LCALL CALCRC16
       MOV A,#39H
       LCALL CALCRC16
       MOV A,#37H
       LCALL CALCRC16

       sjmp $
;**********************CRC-16快速查表计算********************************;
; MCS51的CRC-16快速查表计算函数
; 要预先生成CRC16查表数据,起始地址CRC16TAB,按高/低字节顺序存放(512字节)
; 调用:CRC16H/CRC16L=原CRC16值(16位,初始值为0000H),A=待计算数据(8位)
; 结果:CRC16H/CRC16L=计算后的CRC16值(16位)
CALCRC16: MOV   DPTR,#CRC16TAB  ; Point To TABLE
          XRL   A,CRC16H        ; XOR HigH Of CRC WitH CHArACtEr
          ;CALL  UTIL_ADCAD      ; ADD 'A' To 'DPTR'
          ;CALL  UTIL_ADCAD      ; ADD 'A' To 'DPTR' (YEs, TwiCE)
          CLR CY
          RLC A
          JNC CRCTAB2
          CLR CY
          INC DPH
 CRCTAB2: ADD A,DPL
          MOV DPL,A
          MOV A,DPH
          ADDC A,#00
          MOV DPH,A

          CLR   A               ; GEt HigH BytE From TABLE Entry
          MOVC  A,@A+DPTR
          XRL   A,CRC16L        ; XOR WitH Low
          MOV   CRC16H,A        ; StorE To HigH Of CRC
          CLR   A               ; GEt Low BytE From TABLE Entry
          INC   DPTR
          MOVC  A,@A+DPTR
          MOV   CRC16L,A        ; StorE To Low Of CRC
          RET
CRC16TAB:
DW  0000H  1021H  2042H  3063H  4084H  50A5H  60C6H  70E7H  8108H  9129H 0A14AH 0B16BH 0C18CH 0D1ADH 0E1CEH 0F1EFH
DW  1231H  0210H  3273H  2252H  52B5H  4294H  72F7H  62D6H  9339H  8318H 0B37BH 0A35AH 0D3BDH 0C39CH 0F3FFH 0E3DEH
DW  2462H  3443H  0420H  1401H  64E6H  74C7H  44A4H  5485H 0A56AH 0B54BH  8528H  9509H 0E5EEH 0F5CFH 0C5ACH 0D58DH
DW  3653H  2672H  1611H  0630H  76D7H  66F6H  5695H  46B4H 0B75BH 0A77AH  9719H  8738H 0F7DFH 0E7FEH 0D79DH 0C7BCH
DW  48C4H  58E5H  6886H  78A7H  0840H  1861H  2802H  3823H 0C9CCH 0D9EDH 0E98EH 0F9AFH  8948H  9969H 0A90AH 0B92BH
DW  5AF5H  4AD4H  7AB7H  6A96H  1A71H  0A50H  3A33H  2A12H 0DBFDH 0CBDCH 0FBBFH 0EB9EH  9B79H  8B58H 0BB3BH 0AB1AH
DW  6CA6H  7C87H  4CE4H  5CC5H  2C22H  3C03H  0C60H  1C41H 0EDAEH 0FD8FH 0CDECH 0DDCDH 0AD2AH 0BD0BH  8D68H  9D49H
DW  7E97H  6EB6H  5ED5H  4EF4H  3E13H  2E32H  1E51H  0E70H 0FF9FH 0EFBEH 0DFDDH 0CFFCH 0BF1BH 0AF3AH  9F59H  8F78H
DW  9188H  81A9H 0B1CAH 0A1EBH 0D10CH 0C12DH 0F14EH 0E16FH  1080H  00A1H  30C2H  20E3H  5004H  4025H  7046H  6067H
DW  83B9H  9398H 0A3FBH 0B3DAH 0C33DH 0D31CH 0E37FH 0F35EH  02B1H  1290H  22F3H  32D2H  4235H  5214H  6277H  7256H
DW 0B5EAH 0A5CBH  95A8H  8589H 0F56EH 0E54FH 0D52CH 0C50DH  34E2H  24C3H  14A0H  0481H  7466H  6447H  5424H  4405H
DW 0A7DBH 0B7FAH  8799H  97B8H 0E75FH 0F77EH 0C71DH 0D73CH  26D3H  36F2H  0691H  16B0H  6657H  7676H  4615H  5634H
DW 0D94CH 0C96DH 0F90EH 0E92FH  99C8H  89E9H 0B98AH 0A9ABH  5844H  4865H  7806H  6827H  18C0H  08E1H  3882H  28A3H
DW 0CB7DH 0DB5CH 0EB3FH 0FB1EH  8BF9H  9BD8H 0ABBBH 0BB9AH  4A75H  5A54H  6A37H  7A16H  0AF1H  1AD0H  2AB3H  3A92H
DW 0FD2EH 0ED0FH 0DD6CH 0CD4DH 0BDAAH 0AD8BH  9DE8H  8DC9H  7C26H  6C07H  5C64H  4C45H  3CA2H  2C83H  1CE0H  0CC1H
DW 0EF1FH 0FF3EH 0CF5DH 0DF7CH 0AF9BH 0BFBAH  8FD9H  9FF8H  6E17H  7E36H  4E55H  5E74H  2E93H  3EB2H  0ED1H  1EF0H
RET





       END


⌨️ 快捷键说明

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