英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3045|回复: 1
打印 上一主题 下一主题

CRC循环冗余校验(CCITT-16)

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-17 14:11:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
CRC循环冗余校验(最好是CCITT-16标准)及相关crc校验的程序
2#
 楼主| 发表于 2009-3-17 14:13:01 | 只看该作者
START MOVLW DATAe

MOVWF ADDR ;将[e 0 0]余式表首地址DATAe存入ADDR
SWAPF BYTEa,0  
ANDLW 0FH ;求e和e指定的[e 0 0] 余式高字节的相对地址
ADDWF ADDR,1  ;取其绝对地址,存入ADDR

MOVF ADDR,0 ;把这一绝对地址再存入W  

CALL TABLE ;查表,返回时he00放在W中
MOVWF RESULTh ;把he00存入RESULTh
MOVLW 16  
ADDWF ADDR,0 ;求e指定的[e 0 0]余式低字节的绝对地址
CALL TABLE ;查表,返回时le00放在W中
MOVWF RESULTl ;把le00存入RESULTl
MOVLW DATAf  
MOVWF ADDR ;将[f 0 0]余式表首地址DATAf存入ADDR
MOVF BYTEa,0  
ANDLW 0FH ;求f和f指定的[f 0 0]余式高字节的相对地址  
ADDWF ADDR,1 ;取其绝对地址,存入ADDR
MOVF ADDR,0  ;把这一绝对地址再存入W
CALL TABLE ;查表,返回时hf00放在W中
XORWF RESULTh,0  ;he00与hf00异或,得ha00,存入W
XORWF BYTEb,0 ;ha00与b异或,得habc,存入W
MOVF BYTEa ;habc存入BYTEa
MOVLW 16  
ADDWF ADDR,0  ;求f指定的[f 0 0]余式低字节的绝对地址
CALL  TABLE  ;查表,返回时lf00放在W中
XORWF RESULTl,0  ;le00与lf00异或,得la00,存入W
XORWF BYTEc,0 ;la00与c异或,得labc,存入W
MOVF BYTEb ;labc存入BYTEb
RETLW 0



[ e 0 0 ] 余式表

00
10
20
30
40
50
60
70
80
90
A0
B0
C0
D0
E0
F0

0000
1231
2462
3653
48C4
5AF5
6CA6
7E97
9188
83B9
B5EA
A7DB
D94C
CB7D
FD2E
EF1F




[ f 0 0 ] 余式表

00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F

0000
1021
2042
3063
4084
50A5
60C6
70E7
8108
9129
A14A
B16B
C18C
D1AD
E1CE
F1EF
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-4-28 01:15 , Processed in 0.051997 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表