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

📄 crc16one.c

📁 c语言和汇编语言混合编程实例详解.rar
💻 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 + -