个人总结

CRC校验最终个人总结

时间:2022-11-21 12:36:58 个人总结 我要投稿
  • 相关推荐

CRC校验最终个人总结

  总结在一个时期、一个年度、一个阶段对学习和工作生活等情况加以回顾和分析的一种书面材料,它能帮我们理顺知识结构,突出重点,突破难点,因此,让我们写一份总结吧。总结怎么写才不会流于形式呢?下面是小编精心整理的CRC校验最终个人总结,仅供参考,大家一起来看看吧。

CRC校验最终个人总结

  单片机课程总实验

  实现CRC校验

  一、实验目的

  ⒈通过学习CRC原理,验证,检错,掌握其工作原理;

  ⒉编写CRC编码程序;

  ⒊总结实验过程,编写提交实验报告:方案、编程、调试、结果、分析、结论。

  二、实验要求

  用单片机实现CRC校验码(10比特数据或任意数据长度、生成多项式用G(x)=x5+x4+x2+1),校验码显示在单片机实验系统数码管上。

  实验器材:

  1、装有KeilC51开发工具的PC机一台

  2、TD-PIT/TD-PIT-B实验装置一套

  三、实验原理

  1.设置CRC寄存器,并给其赋初始值。

  2.将数据的第一个8-bit字符与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器。

  3.CRC寄存器向右移一位,最高位补零,移出并检查最低位。

  4.如果LSB为0,重复第三步;若LSB为1,CRC寄存器与多项式码相异或。

  5.重复第3与第4步直到8次移位全部完成。此时一个8-bit数据处理完毕。

  6.重复第2至第5步直到所有数据全部处理完成。

  7.最终CRC寄存器的内容即为CRC值。常用的CRC循环冗余校验标准多项式如下:CRC(12位)=X12+X11+X3+X2+X+1CRC(16位)=X16+X15+X2+1CRC(CCITT)=X16+X12+X5+1CRC(32位)=X32+X26+X23+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1以CRC(16位)多项式为例,其对应校验二进制位列为11000000000000101本次实验以10比特为例。显示到六位数码管中。

  其实验连接图如下图所示。

  四、实验步骤

  1.打开KeilC51开发工具,新建开发工具,并保存至相应路径。

  2.新建文件,编写代码。

  3.按照实验连线图在实验箱上连线。

  4.编译运行代码勿误后,打开实验箱,点击调试,运行。

  五、实验结果

  经过调试程序,在实验箱数码管上显示二进制数001110。

  六、实验源代码

  #include"Absacc.h"

  #defineC8255_AXBYTE[0x7F00]//8255端口地址定义#defineC8255_BXBYTE[0x7F01]#defineC8255_CXBYTE[0x7F02]#defineC8255_CONXBYTE[0x7F03]//数码管显示编号

  unsignedchara[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,

  0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

  unsignedcharb[]={0x00,0x00,0x00,0x00,0x00,0x00};longMD;longGD;

  voiddelay(unsignedinttime){unsignedinti;for(i=0;i

  C8255_B=a[b[i]];//查表输出显示C8255_A=j;delay(0x100);j=(j>>1)|(j=1;MD=tmp;

  tmp=GD;//数GD有多少位tmp用于暂存GDfor(count_GD=0;GD!=0;count_GD++)GD>>=1;GD=tmp;

  //构造CRC码序列

  for(tmp=1;tmp=0;count--)

  {if(tst0==(tst0&MD))//MD与最高位为1当除不尽时最高位为0,

  //余数比除数少一位

  {

  MD^=GD;//异或除法,被除数应该异或之后少一位}

  tst0>>=1;//位数减一,最高位降低一位

  GD>>=1;//除数保持和被除数最高位对齐,相当于竖式除法左对齐}i=0;

  while(1)//转化为2进制输出,16进制数模2取余,移位{b[i]=MD%2;i++;MD/=2;if(MD==0||i>6)break;}}

  voidmain(){

  C8255_CON=0x81;//8255初始化CRC_check(0x28D,0x35);//16进制

  while(1)//显示{

  display();delay(0x80);clear();

  }}

  七、实验心得

  实验指导书上写的还是很好懂,只是最初接触的时候确实感觉代码好多陌生,因为这个调用机制,变量基本上都是公有变量,直接在函数里面使用,赋值,在另一个函数里面接着用。看起来函数都是无参和无返回值的。不过后来仔细看了之后发现这个了之后,使用起来还是蛮顺手的了。虽然还是习惯使用带参数的函数,但是不用写返回值这一点倒也能适应。在除法实现方面,通过百度找到了一种模拟竖式除法的方式,左对齐,异或,根据结果商数,再左对齐,异或。如此就采用了除数与被除数位数对齐,除数不足位数补0的方式,因为0与任何数异或还是它本身,所以用0补足之后,除数和被除数整体异或的结果和竖式除法左对齐异或的结果是一样的。M位除以N位,每次异或之后结果会降低一位,最终会得到M-N+1位商和N-1位余数或者0余数。

【CRC校验最终个人总结】相关文章:

医疗机构校验总结11-19

个人能力素质自我评价最终05-10

影响的作文最终05-24

安全阀校验工作总结优选03-07

诊所执业校验年度总结03-15

悔过书格式最终03-31

乡村医生年度校验总结02-08

行政主管个人年度工作总结最终02-21

教师网课工作总结最终01-13