?? crc16one.c
字號:
/*********************************************************************
*文件名:crc16one.c
*功能: 計算CRC16循環冗余校驗程序,所用方法為計算法 。
**********************************************************************/
#include <reg51.h> //單片機頭文件
#include <ctype.h>
#include <string.h>
#include <absacc.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <Intrins.h>
#include <Stdarg.h>
#define uchar unsigned char //簡化定義
#define uint unsigned int
void timedelay(uint timess); //函數說明
void delay1(uint x);
uint crc16(uchar *str,uint num);
uint data arc,crc1; //變量定義
uchar data rbut[8];
uint crc16(uchar *str,uint num) //CRC計算子程序
{
uint i,j,c,crc;
crc=0xffff;
for (i=0;i<num;i++)
{ c=str[i]&0x00ff;
crc^=c;
for (j=0;j<8;j++)
{
if (crc&0x0001)
{
crc>>=1;
crc^=0xa001;
}
else
crc>>=1;
}
}
return(crc);
}
void main() //主程序
{
//初始化
SP =0xcf; //堆棧初始化
rbut[0]=0x01; //數據初始化
rbut[1]=0x02;
rbut[2]=0x03;
rbut[3]=0x04;
rbut[4]=0x05;
rbut[5]=0x06;
rbut[6]=0x07;
rbut[7]=0x08;
crc1=crc16(rbut,8); //調用CRC計算子程序,
while(1);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -