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

📄 crc16_zcynew1.asm

📁 用于51单片机的CRC16 校验程序
💻 ASM
字号:
;
        CRCH    DATA  30H
        CRCL    DATA  31H
        CRC_H   DATA  32H
        CRC_L   DATA  33H
        CRCTAB  EQU   1000H
        ORG     0H
BEGIN:
        MOV     CRCH,#0H
        MOV     CRCL,#0H
        MOV     CRC_H,#0H
        MOV     CRC_L,#0H
        MOV     R1,#34H
        MOV     34H,#01BH
        MOV     35H,#0E2H
        MOV     36H,#0DBH
        ACALL   CRC1BTA
        ACALL   CRC1B
        INC     R1
        ACALL   CRC1BTA
        ACALL   CRC1B
        INC     R1
        ACALL   CRC1BTA
        ACALL   CRC1B
        SJMP    BEGIN
;;;;;;;;;;;;;;;;;;;;;;;;
;半字节CRC校验程序
;CRC结果 : CRCH CRCL
;数据指针: R1
;CRC结果指针:R0 = #CRCH
;占用:B A R0
;;;;;;;;;;;;;;;;;;;;;;;;
CRC1B:
;保存现场
;        PUSH    ACC
;        PUSH    B
;        MOV     A,R0
;        PUSH    ACC
;计算   R0 = da = CRCH xor Dat[i]
         MOV  A,@R1
         XRL  A,CRCH
         MOV  R0,A
;计算   R6 = Temp = (db div 16)  xor (db and $0f0)
         MOV  B,A
         SWAP A
         XRL  A,B
         ANL  A,#0FH
         MOV  CRCH,A  ;MOV  R6,A
;CrcH:= CrcL xor (Temp*16+Temp div 8) xor ((db and $f0) div 8)
         SWAP A
         MOV  C,ACC.7
         MOV  ACC.0,C           ;Temp*16+Temp div 8
         XRL  A,CRCL
         MOV  CRCL,CRCH         ;
         MOV  CRCH,A            ;CRCH = CrcL xor (Temp*16+Temp div 8);
         MOV  A,R0
         ANL  A,#0F0H
         MOV  R0,A              ;R0= DB /8
         SWAP A
         CLR  C
         RLC  A                 ;DIV 8
         XRL  CRCH,A            ;
         MOV  A,CRCL
         MOV  B,A
         SWAP A
         RLC  A
         XRL  A,B               ;($21*(TempH))
         XRL  A,R0
         MOV  CRCL,A
;恢复现场
;        POP  ACC
;        MOV  R0,A
;        POP  B
;        POP  ACC
        RET
CRC1BTA:
        MOV     A,@R1
        XRL     A,CRC_H
        MOV     B,A
        MOV     DPTR,#CRCTAB
        MOVC    A,@A+DPTR
        XRL     A,CRC_L
        MOV     CRC_H,A
        MOV     A,B
        MOV     DPTR,#CRCTAB+256
        MOVC    A,@A+DPTR
        MOV     CRC_L,A
        RET

        ORG 1000H
DB 000H 010H 020H 030H 040H 050H 060H 070H 081H 091H 0a1H 0b1H 0c1H 0d1H 0e1H 0f1H
DB 012H 002H 032H 022H 052H 042H 072H 062H 093H 083H 0b3H 0a3H 0d3H 0c3H 0f3H 0e3H
DB 024H 034H 004H 014H 064H 074H 044H 054H 0a5H 0b5H 085H 095H 0e5H 0f5H 0c5H 0d5H
DB 036H 026H 016H 006H 076H 066H 056H 046H 0b7H 0a7H 097H 087H 0f7H 0e7H 0d7H 0c7H
DB 048H 058H 068H 078H 008H 018H 028H 038H 0c9H 0d9H 0e9H 0f9H 089H 099H 0a9H 0b9H
DB 05aH 04aH 07aH 06aH 01aH 00aH 03aH 02aH 0dbH 0cbH 0fbH 0ebH 09bH 08bH 0bbH 0abH
DB 06cH 07cH 04cH 05cH 02cH 03cH 00cH 01cH 0edH 0fdH 0cdH 0ddH 0adH 0bdH 08dH 09dH
DB 07eH 06eH 05eH 04eH 03eH 02eH 01eH 00eH 0ffH 0efH 0dfH 0cfH 0bfH 0afH 09fH 08fH

DB 091H 081H 0b1H 0a1H 0d1H 0c1H 0f1H 0e1H 010H 000H 030H 020H 050H 040H 070H 060H
DB 083H 093H 0a3H 0b3H 0c3H 0d3H 0e3H 0f3H 002H 012H 022H 032H 042H 052H 062H 072H
DB 0b5H 0a5H 095H 085H 0f5H 0e5H 0d5H 0c5H 034H 024H 014H 004H 074H 064H 054H 044H
DB 0a7H 0b7H 087H 097H 0e7H 0f7H 0c7H 0d7H 026H 036H 006H 016H 066H 076H 046H 056H
DB 0d9H 0c9H 0f9H 0e9H 099H 089H 0b9H 0a9H 058H 048H 078H 068H 018H 008H 038H 028H
DB 0cbH 0dbH 0ebH 0fbH 08bH 09bH 0abH 0bbH 04aH 05aH 06aH 07aH 00aH 01aH 02aH 03aH
DB 0fdH 0edH 0ddH 0cdH 0bdH 0adH 09dH 08dH 07cH 06cH 05cH 04cH 03cH 02cH 01cH 00cH
DB 0efH 0ffH 0cfH 0dfH 0afH 0bfH 08fH 09fH 06eH 07eH 04eH 05eH 02eH 03eH 00eH 01eH

DB 000H 021H 042H 063H 084H 0a5H 0c6H 0e7H 008H 029H 04aH 06bH 08cH 0adH 0ceH 0efH
DB 031H 010H 073H 052H 0b5H 094H 0f7H 0d6H 039H 018H 07bH 05aH 0bdH 09cH 0ffH 0deH
DB 062H 043H 020H 001H 0e6H 0c7H 0a4H 085H 06aH 04bH 028H 009H 0eeH 0cfH 0acH 08dH
DB 053H 072H 011H 030H 0d7H 0f6H 095H 0b4H 05bH 07aH 019H 038H 0dfH 0feH 09dH 0bcH
DB 0c4H 0e5H 086H 0a7H 040H 061H 002H 023H 0ccH 0edH 08eH 0afH 048H 069H 00aH 02bH
DB 0f5H 0d4H 0b7H 096H 071H 050H 033H 012H 0fdH 0dcH 0bfH 09eH 079H 058H 03bH 01aH
DB 0a6H 087H 0e4H 0c5H 022H 003H 060H 041H 0aeH 08fH 0ecH 0cdH 02aH 00bH 068H 049H
DB 097H 0b6H 0d5H 0f4H 013H 032H 051H 070H 09fH 0beH 0ddH 0fcH 01bH 03aH 059H 078H

DB 088H 0a9H 0caH 0ebH 00cH 02dH 04eH 06fH 080H 0a1H 0c2H 0e3H 004H 025H 046H 067H
DB 0b9H 098H 0fbH 0daH 03dH 01cH 07fH 05eH 0b1H 090H 0f3H 0d2H 035H 014H 077H 056H
DB 0eaH 0cbH 0a8H 089H 06eH 04fH 02cH 00dH 0e2H 0c3H 0a0H 081H 066H 047H 024H 005H
DB 0dbH 0faH 099H 0b8H 05fH 07eH 01dH 03cH 0d3H 0f2H 091H 0b0H 057H 076H 015H 034H
DB 04cH 06dH 00eH 02fH 0c8H 0e9H 08aH 0abH 044H 065H 006H 027H 0c0H 0e1H 082H 0a3H
DB 07dH 05cH 03fH 01eH 0f9H 0d8H 0bbH 09aH 075H 054H 037H 016H 0f1H 0d0H 0b3H 092H
DB 02eH 00fH 06cH 04dH 0aaH 08bH 0e8H 0c9H 026H 007H 064H 045H 0a2H 083H 0e0H 0c1H  
DB 01fH 03eH 05dH 07cH 09bH 0baH 0d9H 0f8H 017H 036H 055H 074H 093H 0b2H 0d1H 0f0H
        

⌨️ 快捷键说明

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