通信系統(tǒng)原理試驗(yàn)報(bào)告_第1頁(yè)
通信系統(tǒng)原理試驗(yàn)報(bào)告_第2頁(yè)
通信系統(tǒng)原理試驗(yàn)報(bào)告_第3頁(yè)
通信系統(tǒng)原理試驗(yàn)報(bào)告_第4頁(yè)
通信系統(tǒng)原理試驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持四川大學(xué)電氣信息學(xué)院實(shí)驗(yàn)報(bào)告課 程:通信系統(tǒng)原理實(shí)驗(yàn)名稱:通信系統(tǒng)原理設(shè)計(jì)件實(shí)驗(yàn)課任老師:張奕專 業(yè):通信工程年 級(jí):2013級(jí)余佩學(xué)生姓名:學(xué) 號(hào):200文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持理解信源編碼和解碼的原理、步驟以及方法 復(fù)習(xí)并更加熟練地掌握匯編語(yǔ)言的編程方法 學(xué)習(xí)在EMCF發(fā)工具下編程學(xué)習(xí)使用EM78P259微控制器通過(guò)觀測(cè)示波器了解編碼:、編碼實(shí)驗(yàn)1、雙極性不歸零碼(1)實(shí)驗(yàn)原理1 碼和0”碼都有電流,但是“1”碼是正電流,0碼是負(fù)電流,正和負(fù)的幅度

2、相等, 極 性相反,故稱為雙極性碼。此時(shí)的判決門限為零電平,接收端使用零判決器或正負(fù)判決器,接收信號(hào)的值若在零電平以上為正,判為1碼;若在零電平以下為負(fù),判為 0碼。(2)實(shí)驗(yàn)流程圖將 Byte2 和 Byte1 暫存聲和ata_temp2 和 Data_temp1NData temp2,7=1?輸出正電平Y(jié)Data_temp2 和 Data_temp1 分別左移編碼計(jì)數(shù)值不為0?N輸出零電平 結(jié)束輸出負(fù)電平中并設(shè)置編碼計(jì)數(shù)值 輸出零電平(3)實(shí)驗(yàn)思路需要在單極性不歸零碼的基礎(chǔ)上,在程序的開(kāi)始和結(jié)束時(shí)添加調(diào)用零電平的程序即可(4)實(shí)驗(yàn)程序/*雙極性不歸零碼子程序*/Coding_Bi_NRZ:

3、MOV A,Byte2MOV Data_temp2,A;將Byte2中的數(shù)據(jù)暫存于Data_temp2 中MOV A,Byte1MOV Data_temp1,A;將Byte2中的數(shù)據(jù)暫存于Data_temp1 中MOV A,16MOV temp,A;Byte2,Byte1中的信息共計(jì)16位需要編碼輸出0文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持call pulse_zero;= 輸出 16 位編碼 = Bi_NRZ_LOOP:JBS Data_temp2,7CALL Pulse_negative ;Data_temp2.7=0,

4、調(diào)用負(fù)脈沖子程序JBC Data_temp2,7CALL Pulse_positive ;Data_temp2.7=1,調(diào)用正脈沖子程序RLC Data_temp1RLC Data_temp2;信息左移1位:;R(n) - R(n+1), R(7) - C=Data_temp1.7;C=Data_temp1.7 - R(0), R(n) - R(n+1), R(7) - CDJZ temp; temp-1=0?JMP Bi_NRZ_LOOP ; NO,繼續(xù)編碼輸出call pulse_zeroRET;NRZ編碼輸出完畢/*/(5)實(shí)驗(yàn)結(jié)果圖一圖二(6)調(diào)試分析如圖一所示,輸入十六進(jìn)制碼3456

5、 (相應(yīng)的二進(jìn)制為 0011 0100 0101 0110),再打開(kāi)示波器,波形如圖二所示。.傳號(hào)差分碼(1)實(shí)驗(yàn)原理傳號(hào)差分碼的編碼規(guī)則是用“ 1”和“0”表示發(fā)生電平跳變和電平不跳變,電平跳變用“1”表示,電平不跳變用“ 0”表示。(2)實(shí)驗(yàn)流程圖開(kāi)始將 Byte2 和 Byte1 普解磬Dafe_temp2 和 Data_temp1中,設(shè)置編碼計(jì)數(shù)值和存放極性的寄存器YP并置0上一位電平與當(dāng)前位電N平是否改變?輸出正電平/. 輸出負(fù)電平temp左移1文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持電平;若異或結(jié)果為 0,同之前比

6、電位沒(méi)改變,則輸出負(fù)電平。每次只能讀出一位,所以最 后再左移存放極性的寄存器,然后再進(jìn)行下一次循環(huán)。2文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持(4)實(shí)驗(yàn)程序/*傳號(hào)差分碼子程序*/Coding_DE_Mark:;傳號(hào)差分碼子程序;(對(duì)存放在Byte2,Byte1中的信息進(jìn)行編碼輸出)MOV A,Byte2MOV Data_temp2,A;將 Byte2 中的數(shù)據(jù)暫存于 Data_temp2中MOV A,Byte1MOV Data_temp1,A;將 Byte2 中的數(shù)據(jù)暫存于 Data_temp1中MOV A,16MOV te

7、mp,A;Byte2,Byte1 中的信息共計(jì)16位需要編碼輸出call pulse_negativeYP=0 x24CLR YP;= 輸出 16 位編碼 =DE_Mark_LOOP:MOV a,Data_temp2XOR YP,aJBS yp,7CALL Pulse_negativeJBC yp,7CALL Pulse_positiveRLC Data_temp1RLC Data_temp2DJZ temp;Data_temp2.7=0, 調(diào)用負(fù)脈沖子程序;Data_temp2.7=1,調(diào)用正脈沖子程序;R(n) - R(n+1), R(7) - C=Data_temp1.7;C=Data_

8、temp1.7 - R(0), R(n) - R(n+1), R(7) - C;temp-1=0?JMP DE_Mark_LOOP; NO, 繼續(xù)編碼輸出 call pulse_negativeRET;傳號(hào)差分編碼輸出完畢/*/(5)實(shí)驗(yàn)結(jié)果圖三圖四(6)調(diào)試分析如圖三所示,輸入十六進(jìn)制碼 55D3 (相應(yīng)的二進(jìn)制為 0101 0101 1101 0011 ),經(jīng)過(guò)傳號(hào) 差分碼編碼后的二進(jìn)制結(jié)果為 0110 0110 1001 1101。打開(kāi)示波器,波形如圖四所示。,理解 并學(xué)會(huì)活用給新寄存器賦值,學(xué)會(huì) CLR.空號(hào)差分碼(1)實(shí)驗(yàn)原理0文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.文檔來(lái)源

9、為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持空號(hào)差分碼的編碼規(guī)則是用“ 0”和“1”表示發(fā)生電平跳變和電平不跳變。與傳號(hào)差分碼相反,空號(hào)差分碼中,電平跳變用“0”表示,電平不跳變用“ 1”表示。(2)實(shí)驗(yàn)流程圖開(kāi)始1將 Byte2 和 Byte1 暫存于 Data_temp2 和 Data_temp1中,設(shè)置編碼計(jì)數(shù)值和存放極性的寄存器YP1置1輸出零電平上一位電平與當(dāng)前位電平是否改變?輸出負(fù)電平temp左移輸出正電平Y(jié)N(3)實(shí)驗(yàn)思路結(jié)束編碼計(jì)數(shù)值不為0?輸出零電平由于空號(hào)差分碼正電平和負(fù)電平的編碼規(guī)則與傳號(hào)差分碼的正好相反,所以空號(hào)差分碼的程序段需要在傳號(hào)差分碼的基礎(chǔ)上添加一個(gè)取反

10、的語(yǔ)句,即MOV A,0XFFXOR YP1,A,將上一步驟的異或結(jié)果取反。將異或取反后的結(jié)果置于寄存器YP1中,輸t出emp的最高位再左移temp ,然后再進(jìn)行下一次的循環(huán)。(4)實(shí)驗(yàn)程序/*空號(hào)差分碼子程序*/Coding_DE_Space:;空號(hào)差分碼子程序;(對(duì)存放在Byte2,Byte1中的信息進(jìn)行HDB3編碼輸出)MOV A,Byte2MOV Data_temp2,A;將 Byte2中的數(shù)據(jù)暫存于Data_temp2 中MOV A,Byte1MOV Data_temp1,A;將 Byte2中的數(shù)據(jù)暫存于Data_temp1 中1文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.文檔來(lái)

11、源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持MOV A,16MOV temp,A;Byte2,Byte1 中的信息共計(jì)16位需要編碼輸出call pulse_positiveYP1=0 x25MOV A,0 xFFMOV YP1,ADE_Space_LOOP:MOV A,0 xFFXOR YP1,AMOV a,Data_temp2XOR YP1,aJBC yp1,7CALL Pulse_negative ;Data_temp2.7=0,調(diào)用負(fù)脈沖子程序JBS yp1,7CALL Pulse_positive ;Data_temp2.7=1,調(diào)用正脈沖子程序RLC Data_temp1

12、 ; R(n) - R(n+1), R(7) - C=Data_temp1.7RLC Data_temp2;C=Data_temp1.7 - R(0)R(n) - R(n+1), R(7) - CDJZ temp; temp-1=0?JMP DE_Space_LOOP ; NO,繼續(xù)編碼輸出 call pulse_negative*/ret/*(5)實(shí)驗(yàn)結(jié)果圖五圖六(6)調(diào)試分析如圖五所示,輸入十六進(jìn)制碼4723 (相應(yīng)的二進(jìn)制為 0100 0111 0010 0011 ),經(jīng)過(guò)空號(hào)差分碼的編碼后,二進(jìn)制結(jié)果為1101 0000 1001 0111。打開(kāi)示波器,波形如圖六所示。在設(shè)定新的寄存器

13、時(shí),沒(méi)有掌握好寄存器的定義,將新寄存器先置0了再將立即數(shù)存進(jìn)去,這樣就沒(méi)意義,編碼就是要求精簡(jiǎn)而準(zhǔn)確。.AMI 碼(1)實(shí)驗(yàn)原理AMI碼屬于單極性碼的變形,當(dāng)遇0碼時(shí)為零電平,當(dāng)遇 1碼則存在兩種交替轉(zhuǎn)換器極性,這樣確保正負(fù)極性個(gè)數(shù)相等。編碼規(guī)則:遇到編碼為 0時(shí)就只出現(xiàn)0;消息代碼中的 1傳輸碼中的+1、 -1交替。例如:消息代碼:1 0 1 10101 1 1 AMI 碼:+1 0 -1 +1 0 -1 0 +1 -1 +1(2)實(shí)驗(yàn)流程圖開(kāi)始將 Byte2 和 Byte1 暫存于 Data_temp2 和 Data_temp12文檔來(lái)源為:歡陶湃超強(qiáng).word版本可編輯.輸出零電平文檔來(lái)

14、源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持(3)實(shí)驗(yàn)思路輸入為0的時(shí)候輸出為零電平,輸入為 1的時(shí)候?yàn)榱藵M足極性交替的規(guī)律,需要設(shè)置標(biāo) 志位,給標(biāo)志位計(jì)數(shù)。設(shè)標(biāo)志位為 1時(shí)輸出正電平,標(biāo)志位為 0時(shí)輸出負(fù)電平。同時(shí)還要在 輸出正電平時(shí)改變標(biāo)志位加 1為0,輸出負(fù)電平時(shí)改變標(biāo)志位加1為1。(4)實(shí)驗(yàn)程序/*AMI碼子程序*/Coding_AMI:;AMI 碼子程序;(對(duì)存放在Byte2,Byte1中的信息進(jìn)行HDB3編碼輸出)MOV A,Byte2MOV Data_temp2,A;將 Byte2 中的數(shù)據(jù)暫存于 Data_temp2 中MOV A,Byte1MOV Data_temp

15、1,A;將 Byte2 中的數(shù)據(jù)暫存于 Data_temp1中MOV A,16MOV temp,A;Byte2,Byte1 中的信息共計(jì)16位需要編碼輸出CALL PULSE_ZEROYP2=0 x26CLR YP2AMI_LOOP:JBS Data_temp2,7JMP YYJBC DATA_TEMP2,7INC YP2JBC YP2,0CALL PULSE_POSITIVEJBS YP2,0CALL PULSE_NEGATIVEJMP YY2YY:CALL PULSE_ZEROYY2:RLC Data_temp1RLC Data_temp2DJZ temp;R(n) - R(n+1), R

16、(7) - C=Data_temp1.7;C=Data_temp1.7 - R(0), R(n) - R(n+1), R(7) - C;temp-1=0?JMP AMI_LOOP; NO, call pulse_zero繼續(xù)編碼輸出RET/*/(5)實(shí)驗(yàn)結(jié)果圖八圖七(6)調(diào)試分析3文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.5.HDB3040將這個(gè)碼元稱為(2)實(shí)驗(yàn)流程圖開(kāi)始輸出零電平NYData_temp2=0NYY記零寄存器是否N輸出+BBY輸出零電平N的碼元串時(shí)“破壞碼元”4個(gè)或4個(gè)以上連(1)實(shí)驗(yàn)原理極性標(biāo)志寄存器 是否為0 ?如圖七所示, 的編碼后,結(jié)果為 實(shí)際上比較簡(jiǎn)單, 直接

17、調(diào)用零電平,數(shù)值標(biāo)志寄存器 是否為0 ?,并用符號(hào)“ V”耒 的符號(hào)也是極性交替: V”之間有偶數(shù)個(gè)非 0”碼元串的第4文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯將輸入的原碼變換成 AMI的情況,當(dāng)沒(méi)有發(fā)現(xiàn) 個(gè)或4個(gè)以上連V表示“1”。為了保證相鄰“ V 碼元時(shí),這是能夠保證的。當(dāng)相鄰 要求。這時(shí),需插入補(bǔ)性碼,將這個(gè)連的符號(hào)與前一個(gè)非“ 0”碼元的符號(hào)相反,最后讓之后的非 替變化,從而就能得到 HDB綱?!?0”碼元同極性的 表示“+ 1”,用“ 之間有奇數(shù)個(gè)非“ 0三,即用“+ V”當(dāng)相鄰“V。然后4位4位的進(jìn)行判斷,檢查 AMI碼中連“ 0”時(shí),則不作改變,AMI碼就是HDB3碼。當(dāng)

18、發(fā)現(xiàn)輸入十六進(jìn)制碼4123 (相應(yīng)的二進(jìn)制為 0100 0001 0010 0011 ),經(jīng)過(guò) AMI0 0+1 0 0 0 0 -1 0 0 +1 0 0 0 -1 +1。打開(kāi)示波器,波形如圖八所示。AMI碼主要就是要學(xué)會(huì)分情況討論,然后設(shè)置好跳轉(zhuǎn)的程序,這里出現(xiàn)0位一種出現(xiàn)1的時(shí)候則判斷1的奇偶數(shù),后面HDB3的程序也可以出這里得到靈將 Byte2 和 Byte1 暫存于 Data_temp2 和 Data_temp1定義編碼時(shí)所需的各種寄存器“0”碼元時(shí),不符合此“極性交替”1 個(gè) “0” 變成 “+ B” 或 “B”。B0”碼元符號(hào)從V碼元開(kāi)始再交文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版

19、本可編輯.歡迎下載支持輸出-V輸出+V標(biāo)志寄存器置0標(biāo)志寄存器置1標(biāo)志寄存器置0標(biāo)志寄存器置1BU寄存器是否為0插入補(bǔ)性碼Data_temp2 和 Data_temp1 左移一位編碼計(jì)數(shù)值不為0?(3)實(shí)驗(yàn)思路輸出零電平結(jié)束根據(jù)HDB3碼的規(guī)則,首先判斷連 0的情況,若小于 4則程序正常運(yùn)行,調(diào)用脈沖,出現(xiàn) 1時(shí)候,則開(kāi)始計(jì)數(shù),根據(jù)判斷 存器計(jì)數(shù),根據(jù)奇偶性判斷正負(fù), 的存在,其余的正常輸出。B寄存器的奇偶性判斷輸出正負(fù),當(dāng)連 0大等于4則對(duì)V寄調(diào)用脈沖,同時(shí)對(duì)BU計(jì)數(shù),統(tǒng)計(jì)1的個(gè)數(shù),判斷補(bǔ)信碼(4)實(shí)驗(yàn)程序/*Hdb3碼子程序 */Coding_HDB3:MOV A,0X43MOV Data

20、_temp2,AMOV A,0X05MOV Data_temp1,AMOV A,16MOV temp,Ab=0 x27;定義寄存器b,用于計(jì)數(shù)B和B的個(gè)數(shù)及判斷極性v=0 x28;定義寄存器v,用于判斷V碼的個(gè)數(shù)和極性bu=0 x29;定義寄存器bu,用于計(jì)數(shù)B,B;V;的個(gè)數(shù)及極性MOV A,0MOV b,AMOV v,AMOV bu,ALOOP_HDB3:JBC Data_temp2,4JMP Output_normalJBS Data_temp2,4;若Data_temp2 第四位不為0,跳轉(zhuǎn)正常輸出5文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版

21、本可編輯.歡迎下載支持JBC Data_temp2,5JMP Output_normalJBS Data_temp2,5;若Data_temp2 第五位不為0,跳轉(zhuǎn)正常輸出JBC Data_temp2,6JMP Output_normal;若Data_temp2 第六位不為0,跳轉(zhuǎn)正常輸出JBS Data_temp2,6JBC Data_temp2,7JMP Output_normal 若Data_temp2 第七位不為0,跳轉(zhuǎn)正常輸出BS Data_temp2,4 INC v dec bJBS bu,0BS Data_temp2,7JBS Data_temp2,7 JMP Output_no

22、rmal JBC Data_temp2,7 inc bu inc b;出現(xiàn)四個(gè)連0;判斷寄存器bu的值是奇數(shù)還是偶數(shù);偶數(shù)時(shí),則存在補(bǔ)信碼 B;奇數(shù)時(shí),無(wú)補(bǔ)信碼B;沒(méi)有加入補(bǔ)信碼,跳轉(zhuǎn)正常輸出Output_buxinma:JBC b,0CALL Pulse_negativeJBS b,0CALL Pulse_positiveJMP Output_zuoyi Output_normal:JBS Data_temp2,7CALL Pulse_zeroJBS Data_temp2,7JMP Output_zuoyiJBC Data_temp2,7INC bINC buJBC b,0CALL Puls

23、e_positiveJBS b,0CALL Pulse_negativeOutput_zuoyi:RLC Data_temp1RLC Data_temp2BS Data_temp1,7 DJZ temp;R(n) - R(n+1), R(7) - C=Data_temp1.7;C=Data_temp1.7 - R(0), R(n) - R(n+1), R(7) - C;temp-1=0?JMP Loop_HDB3;(學(xué)生編寫程序段)RET;16位編碼輸出完畢6文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持/*/(5)實(shí)驗(yàn)結(jié)果圖H一圖

24、十二(6)調(diào)試分析如圖H一所示,輸入十六進(jìn)制碼861E (相應(yīng)的二進(jìn)制為 1000 0110 0001 1110),經(jīng)過(guò)HDB3編碼后,結(jié)果為 +B0 0 0 +V -B +B -B 0 0 -V +B -B +B -B 0打開(kāi)示波器,波形如圖十二所 示。HDB新就是將前面的碼綜合運(yùn)用,所以分情況比較多,并且復(fù)雜。因此我的思路就是四位四位地比較,但是這樣就出現(xiàn)了一些考慮不周的情況導(dǎo)致錯(cuò)誤的情況錯(cuò)誤一:沒(méi)有考慮第一為為0的情況,直接給B碼計(jì)數(shù),導(dǎo)致不能滿足首位為 0的情況錯(cuò)誤二:在用B碼計(jì)數(shù)的時(shí)候沒(méi)有考慮每次計(jì)數(shù)之后當(dāng)左移再次到達(dá)該數(shù)的時(shí)候多記了一次1.因此輸出為錯(cuò)誤,后面添加DEC B從而得到

25、正確情況錯(cuò)誤三:沒(méi)有考慮最后一位為0的情況,這樣16位左移完了之后,會(huì)自動(dòng)補(bǔ) 0會(huì)多出現(xiàn)4位0的情況,從而影響,之后在每次左移之后加入BS DATA_TEMP)1 7從而解決6.漢明碼的編碼(7, 4碼的編碼)(1)實(shí)驗(yàn)原理漢明碼是d0=3、高效的(7, 4)線性分組碼,它有糾正單個(gè)隨機(jī)差錯(cuò)或檢測(cè)兩個(gè)錯(cuò) 誤的能力。(2)實(shí)驗(yàn)流程圖開(kāi)始定理例修器調(diào)用漢胡芋程序輸出8韁用碼(3)實(shí)驗(yàn)思路根據(jù)線性分組碼的計(jì)算規(guī)則,得到十進(jìn)制0至15所對(duì)應(yīng)的漢明碼,如下圖所示:利用RETL語(yǔ)句和以上表格中的數(shù)據(jù)即可編出漢明碼的編碼。(4)實(shí)驗(yàn)程序/*漢明碼白* 編碼 */Coding_T8:MOV A,8MOV te

26、mp3,A;(7,4)線性分組碼;定義輸出計(jì)零寄存器7文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持CALL Pulse_zero;將累加器A中的漢明碼存放到temp1中;輸出漢明碼查表=;將輸入數(shù)據(jù)從Byte1中存入累加器A中 ;通過(guò)累加器A查表得出漢明碼CALL Hamming_CodeMOV temp1,ACircle:JBC temp1,7CALL Pulse_positiveJBS temp1,7CALL Pulse_negativeRLC tempiDJZ temp3JMP CircleCALL Pulse_zeroRE

27、T尸=Hamming_Code:MOV A,Byte1ADD R2_SP ,A TOC o 1-5 h z RETL 0;0RETL 11;1RETL 21;2RETL 30;3RETL 38;4RETL 45;5RETL 51;6RETL 56;7RETL 71;8RETL 76;9RETL 82;ARETL 89;BRETL 97;CRETL 106;DRETL 116;ERETL 127;F/*/(5)實(shí)驗(yàn)結(jié)果圖十三圖十四;=查表=Hamming_Code:7,漢明碼的解碼(1)實(shí)驗(yàn)原理8文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎

28、下載支持漢明碼是d0=3、高效的(7, 4)線性分組碼,它有糾正單個(gè)隨機(jī)差錯(cuò)或檢測(cè)兩個(gè)錯(cuò)誤 的能力。(2)實(shí)驗(yàn)思路輸入8位十六進(jìn)制的數(shù)存于 Byte2中,再將Byte2中的數(shù)值與表中存放的漢明碼數(shù)值相 異或,再統(tǒng)計(jì)異或結(jié)果中“ 1”的個(gè)數(shù),即碼距。若“ 1”的個(gè)數(shù)為一個(gè)或是 0個(gè)則此時(shí)所取 的漢明碼的原碼是所解碼的數(shù)值。最后再把解碼出的數(shù)值置于Bytel中輸出。(3)實(shí)驗(yàn)流程圖異或結(jié)果有0個(gè)1 Y輸出該漢明碼對(duì)應(yīng)的原碼(4)實(shí)驗(yàn)程序/*開(kāi)始Byte2與蒯酎期解表中的數(shù)值進(jìn)行異或異或結(jié)果有一個(gè)輸出該漢明碼對(duì)應(yīng)的原碼Coding_T8:; (7,4)線性分組碼提取下一個(gè)神碼漢明碼白解碼 */將存放

29、于Byte2中的信息碼字(bit3bit0)合法碼字存入 Byte1(bit6bit0),并通過(guò)轉(zhuǎn)換為(7,4)碼的合法碼字, Signal 口輸出到示波器;(學(xué)生編寫程序段)MOV A,7MOV TEMP ,Amov a,Byte2call encode74mov Byte1,acall encode74_output retencode74:mov A,Byte2add R2_SP ,Aretl 0b00000000;0000 retl 0b00001011;0001 retl 0b00010101;0010 retl 0b00011110;0011 retl 0b00100110;010

30、0 retl 0b00101101;0101 retl 0b00110011;01109文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持retl 0b00111000;0111retl 0b01000111;1000retl 0b01001100;1001retl 0b01010010;1010retl 0b01011001;1011retl 0b01100001;1100retl 0b01101010;1101retl 0b01110100;1110retl 0b01111111;1111RET encode74_output:JB

31、S Byte1,6call Pulse_negativeJBC Byte1,6CALL Pulse_positiveRLC Byte1DJZ tempJMP encode74_outputRET /*/Coding_T8:rrr=0 x30;收到的碼字aaa=0 x31;存放查表指針hanming=0 x32;存放正確碼字ccc=0 x33;存放查表得到的碼字yihuoqs=0 x34;存放異或后結(jié)果sum=0 x35;碼距clr rrrclr aaaclr cccclr hanmingclr yihuoqsmov a,1mov sum,a ;給各寄存器賦初始狀態(tài)值loop_qs:jbs aa

32、a,4 ;aaa.4=0,還沒(méi)有判斷完16位碼,繼續(xù)nopjbc aaa,4 ;aaa.41,已經(jīng)判斷完16位漢明碼后仍無(wú)匹配結(jié)果,程序自動(dòng)結(jié)束ret;已經(jīng)判斷完16位漢明碼后自主結(jié)束。mov a,Byte2mov rrr,a;將輸入信息放到 rrrcall encode74;調(diào)用查表子程序JMP judge74;跳轉(zhuǎn)到判斷碼距程序K1:10文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持JMP output74;跳轉(zhuǎn)到解碼輸出程序K2:ret;漢明碼解碼輸出完畢 encode74: nop/*子程序段*/mov A,aaa;查表指針給

33、到 A,根據(jù)指針查表,將查得結(jié)果又放到A中add R2_SP ,Aretl 0b00000000;0000retl 0b00001011;0001retl 0b00010101;0010retl 0b00011110;0011retl 0b00100110;0100retl 0b00101101;0101retl 0b00110011;0110retl 0b00111000;0111retl 0b01000111;1000retl 0b01001100;1001retl 0b01010010;1010retl 0b01011001;1011retl 0b01100001;1100retl 0b01101010;1101retl 0b01110100;1110retl 0b01111111;1111RET;查表程序結(jié)束judge74:mov ccc,a;將查表結(jié)果放至U cccm

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論