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]/pic/pic/p>
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]];/pic/p>
tmp=GD;/pic/p>
/pic/p>
for(tmp=1;tmp=0;count--)
{if(tst0==(tst0&MD))/pic/p>
/pic/p>
{
MD^=GD;/pic/p>
tst0>>=1;/pic/p>
GD>>=1;/pic/p>
while(1)/pic/=2;if(MD==0||i>6)break;}}
voidmain(){
C8255_CON=0x81;/pic/pic/p>
while(1)/pic/p>
display();delay(0x80);clear();
}}
七、實驗心得
實驗指導書上寫的還是很好懂,只是最初接觸的時候確實感覺代碼好多陌生,因為這個調用機制,變量基本上都是公有變量,直接在函數里面使用,賦值,在另一個函數里面接著用。看起來函數都是無參和無返回值的。不過后來仔細看了之后發現這個了之后,使用起來還是蠻順手的了。雖然還是習慣使用帶參數的函數,但是不用寫返回值這一點倒也能適應。在除法實現方面,通過百度找到了一種模擬豎式除法的方式,左對齊,異或,根據結果商數,再左對齊,異或。如此就采用了除數與被除數位數對齊,除數不足位數補0的方式,因為0與任何數異或還是它本身,所以用0補足之后,除數和被除數整體異或的結果和豎式除法左對齊異或的結果是一樣的。M位除以N位,每次異或之后結果會降低一位,最終會得到M-N+1位商和N-1位余數或者0余數。
【CRC校驗最終個人總結】相關文章:
科睿克CRC面試08-13
醫療機構校驗總結11-03
保潔員個人述職報告最終12-18
個人能力素質自我評價最終09-13
影響的作文最終11-04
衛生室年度校驗總結07-06
年度校驗工作總結范文03-06
診所年度校驗工作總結05-16
最終奔向的地方作文【熱門】06-24