用PIC单片机和DALLAS的iButton通讯时,编了段产生和校验CRC的子程序。
#include <P16CE625.INC>
;-------------------------------
cblock 0x20
datBuff:8 ;assign 8 byte data buffer
bit_cnt ;bit counting
CRC_COUNT ;number of bytes for CRC
CRC_RESULT ;CRC resulr
crc_temp ;temporary data buffer during CRC
endc
;-------------------------------
#define skp0 btfsc
#define skp1 btfss
;===============================
org 0x000
movlw .7
movwf CRC_COUNT
movlw datBuff
movwf FSR ;FSR point to data buffer
call CRC_CHECK
movwf datBuff+7
goto $