您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 通信系统原理实验报告
四川大学电气信息学院实验报告课程:通信系统原理实验名称:通信系统原理设计性实验课任老师:张奕专业:通信工程年级:2013级学生姓名:余佩学号:2013141443050通信系统原理设计性实验11一、实验目的理解信源编码和解码的原理、步骤以及方法复习并更加熟练地掌握汇编语言的编程方法学习在EMC开发工具下编程学习使用EM78P259N微控制器通过观测示波器了解编码二、编码实验1、双极性不归零码(1)实验原理1码和0码都有电流,但是1码是正电流,0码是负电流,正和负的幅度相等,极性相反,故称为双极性码。此时的判决门限为零电平,接收端使用零判决器或正负判决器,接收信号的值若在零电平以上为正,判为1码;若在零电平以下为负,判为0码。(2)实验流程图开始将Byte2和Byte1暂存于Data_temp2和Data_temp1中并设置编码计数值Data_temp2,7=1?Y输出正电平输出负电平输出零电平输出零电平结束Data_temp2和Data_temp1分别左移编码计数值不为0?NYN通信系统原理设计性实验22(3)实验思路需要在单极性不归零码的基础上,在程序的开始和结束时添加调用零电平的程序即可(4)实验程序/*****************************双极性不归零码子程序****************************/Coding_Bi_NRZ:MOVA,Byte2MOVData_temp2,A;将Byte2中的数据暂存于Data_temp2中MOVA,Byte1MOVData_temp1,A;将Byte2中的数据暂存于Data_temp1中MOVA,@16MOVtemp,A;Byte2,Byte1中的信息共计16位需要编码输出callpulse_zero;=====输出16位编码=======Bi_NRZ_LOOP:JBSData_temp2,7CALLPulse_negative;Data_temp2.7=0,调用负脉冲子程序JBCData_temp2,7CALLPulse_positive;Data_temp2.7=1,调用正脉冲子程序;信息左移1位:RLCData_temp1;R(n)-R(n+1),R(7)-C=Data_temp1.7RLCData_temp2;C=Data_temp1.7-R(0),R(n)-R(n+1),R(7)-CDJZtemp;temp-1=0?JMPBi_NRZ_LOOP;NO,继续编码输出callpulse_zero;=======================RET;NRZ编码输出完毕/*****************************************************************************/(5)实验结果通信系统原理设计性实验33图一图二(6)调试分析如图一所示,输入十六进制码3456(相应的二进制为0011010001010110),再打开示波器,波形如图二所示。2.传号差分码(1)实验原理传号差分码的编码规则是用“1”和“0”表示发生电平跳变和电平不跳变,电平跳变用“1”表示,电平不跳变用“0”表示。(2)实验流程图开始将Byte2和Byte1暂存于Data_temp2和Data_temp1中,设置编码计数值和存放极性的寄存器YP并置0输出零电平上一位电平与当前位电平是否改变?输出正电平输出负电平temp左移编码计数值不为0?YNY通信系统原理设计性实验22(3)实验思路在双极性码的基础上,添加一个寄存器用于存放上一位编码的极性,再将存放极性的寄存器和存放下一位编码的寄存器进行异或。若异或结果为1,即电平发生了跳变,则输出正电平;若异或结果为0,同之前比电位没改变,则输出负电平。每次只能读出一位,所以最后再左移存放极性的寄存器,然后再进行下一次循环。输出零电平结束N通信系统原理设计性实验44(4)实验程序/**********************************传号差分码子程序*******************************/Coding_DE_Mark:;传号差分码子程序;(对存放在Byte2,Byte1中的信息进行编码输出)MOVA,Byte2MOVData_temp2,A;将Byte2中的数据暂存于Data_temp2中MOVA,Byte1MOVData_temp1,A;将Byte2中的数据暂存于Data_temp1中MOVA,@16MOVtemp,A;Byte2,Byte1中的信息共计16位需要编码输出callpulse_negativeYP==0x24CLRYP;=====输出16位编码=======DE_Mark_LOOP:MOVa,Data_temp2XORYP,aJBSyp,7CALLPulse_negative;Data_temp2.7=0,调用负脉冲子程序JBCyp,7CALLPulse_positive;Data_temp2.7=1,调用正脉冲子程序RLCData_temp1;R(n)-R(n+1),R(7)-C=Data_temp1.7RLCData_temp2;C=Data_temp1.7-R(0),R(n)-R(n+1),R(7)-CDJZtemp;temp-1=0?JMPDE_Mark_LOOP;NO,继续编码输出callpulse_negative;=======================RET;传号差分编码输出完毕/*****************************************************************************/(5)实验结果通信系统原理设计性实验55图三图四(6)调试分析如图三所示,输入十六进制码55D3(相应的二进制为0101010111010011),经过传号差分码编码后的二进制结果为0110011010011101。打开示波器,波形如图四所示。,理解并学会活用给新寄存器赋值,学会CLR3.空号差分码(1)实验原理空号差分码的编码规则是用“0”和“1”表示发生电平跳变和电平不跳变。与传号差分码相反,空号差分码中,电平跳变用“0”表示,电平不跳变用“1”表示。(2)实验流程图开始将Byte2和Byte1暂存于Data_temp2和Data_temp1中,设置编码计数值和存放极性的寄存器YP1置1输出零电平上一位电平与当前位电平是否改变?输出正电平输出负电平NY通信系统原理设计性实验66(3)实验思路由于空号差分码正电平和负电平的编码规则与传号差分码的正好相反,所以空号差分码的程序段需要在传号差分码的基础上添加一个取反的语句,即MOVA,@0XFFXORYP1,A,将上一步骤的异或结果取反。将异或取反后的结果置于寄存器YP1中,输t出emp的最高位再左移temp,然后再进行下一次的循环。(4)实验程序/******************************空号差分码子程序*************************************/Coding_DE_Space:;空号差分码子程序;(对存放在Byte2,Byte1中的信息进行HDB3编码输出)MOVA,Byte2MOVData_temp2,A;将Byte2中的数据暂存于Data_temp2中MOVA,Byte1MOVData_temp1,A;将Byte2中的数据暂存于Data_temp1中MOVA,@16MOVtemp,A;Byte2,Byte1中的信息共计16位需要编码输出callpulse_positiveYP1==0x25MOVA,@0xFFMOVYP1,A编码计数值不为0?temp左移输出零电平结束YN通信系统原理设计性实验77DE_Space_LOOP:MOVA,@0xFFXORYP1,AMOVa,Data_temp2XORYP1,aJBCyp1,7CALLPulse_negative;Data_temp2.7=0,调用负脉冲子程序JBSyp1,7CALLPulse_positive;Data_temp2.7=1,调用正脉冲子程序RLCData_temp1;R(n)-R(n+1),R(7)-C=Data_temp1.7RLCData_temp2;C=Data_temp1.7-R(0),R(n)-R(n+1),R(7)-CDJZtemp;temp-1=0?JMPDE_Space_LOOP;NO,继续编码输出callpulse_negativeRET/*****************************************************************************/(5)实验结果图五图六(6)调试分析如图五所示,输入十六进制码4723(相应的二进制为0100011100100011),经过空号差分码的编码后,二进制结果为1101000010010111。打开示波器,波形如图六所示。在设定新的寄存器时,没有掌握好寄存器的定义,将新寄存器先置0了再将立即数存进去,这样就没意义,编码就是要求精简而准确。4.AMI码通信系统原理设计性实验88(1)实验原理AMI码属于单极性码的变形,当遇0码时为零电平,当遇1码则存在两种交替转换器极性,这样确保正负极性个数相等。编码规则:遇到编码为0时就只出现0;消息代码中的1传输码中的+1、-1交替。例如:消息代码:1011010111AMI码:+10-1+10-10+1-1+1(2)实验流程图开始将Byte2和Byte1暂存于Data_temp2和Data_temp1中,置YP2为0输出零电平Data_temp2=0?输出零电平YP2=0?输出负电平输出正电平YP2为1YP2为0编码计数值不为0?Data_temp2和Data_temp1左移一位输出零电平结束YNNYYN通信系统原理设计性实验99(3)实验思路输入为0的时候输出为零电平,输入为1的时候为了满足极性交替的规律,需要设置标志位,给标志位计数。设标志位为1时输出正电平,标志位为0时输出负电平。同时还要在输出正电平时改变标志位加1为0,输出负电平时改变标志位加1为1。(4)实验程序/******************************AMI码子程序*********************************/Coding_AMI:;AMI码子程序;(对存放在Byte2,Byte1中的信息进行HDB3编码输出)MOVA,Byte2MOVData_temp2,A;将Byte2中的数据暂存于Data_temp2中MOVA,Byte1MOVData_temp1,A;将Byte2中的数据暂存于Data_temp1中MOVA,@16MOVtemp,A;Byte2,Byte1中的信息共计16位需要编码输出CALLPULSE_ZEROYP2==0x26CLRYP2AMI_LOOP:JBSData_temp2,7JMPYYJBCDATA_TEMP2,7INCYP2JBCYP2,0CALLPULSE_POSITIVEJBSYP2,0CALLPULSE_NEGATIVEJMPYY2YY:CALLPULSE_ZEROYY2:RLCData_temp1;R(n)-R(n+1),R(7)-C=Data_temp1.7RLCData_temp2;C=Data_temp1.7-R(0),R(n)-R(n+1),R(7)-CDJZtemp;temp-1=0?JMPAMI_LOOP;NO,继续编码输出callpulse_zeroRET通信系统原理设计性实验1010/*****************************************************************************/(5)实验结果图七图八(6)调试分析如图七所示,输入十六进制码4123(相应的二进制为0100000100100011)
本文标题:通信系统原理实验报告
链接地址:https://www.777doc.com/doc-4278585 .html