奇偶校验实验报告(共14页)

上传人:des****85 文档编号:243603899 上传时间:2022-01-20 格式:DOCX 页数:14 大小:21.42KB
返回 下载 相关 举报
奇偶校验实验报告(共14页)_第1页
第1页 / 共14页
奇偶校验实验报告(共14页)_第2页
第2页 / 共14页
奇偶校验实验报告(共14页)_第3页
第3页 / 共14页
奇偶校验实验报告(共14页)_第4页
第4页 / 共14页
奇偶校验实验报告(共14页)_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《奇偶校验实验报告(共14页)》由会员分享,可在线阅读,更多相关《奇偶校验实验报告(共14页)(14页珍藏版)》请在金锄头文库上搜索。

1、精选优质文档-倾情为你奉上奇偶校验实验报告篇一:奇偶校验实验项目四:数据的校验(2学时)一、实验目的:1了解数据的校验机制。*2掌握海明码校验实施过程(选做)。*3掌握循环冗余码校验实施过程(选做)。二、实验要求:1设计一个程序模拟奇偶校验实施过程(提示:主函数、发送函数、传输函数、校验函数)。首先奇偶校验过程的基本过程:奇偶校验位有两种类型:偶校验位与奇校验位。如果一组给定数据位中1的个数是奇数,那么偶校验位就置为1,从而使得总的1的个数是偶数。如果给定一组数据位中1的个数是偶数,那么奇校验位就置为1,使得总的1的个数是奇数。偶校验实际上是循环冗余校验的一个特例,通过多项式x+1得到1位cR

2、c。*2设计一个程序模拟海明码校验实施过程(提示:主函数、发送函数、传输函数、校验函数、纠错函数)。*3设计一个程序模拟循环冗余码校验实施过程(提示:主函数、发送函数、传输函数、校验函数、纠错函数)。三、实验报告:1给出源程序和执行结果。#include#include#includevoidproduct();voidtrans();voidpop();intp1,p2;inta8=0;intmain()product();/产生一个随机的八位二进制的数trans();/设置传输出错一位或者没有出错的情况pop();/判断有无出错的情况return0;voidproduct()inti,da

3、ta;intcount1=0;srand(unsigned)time(0);data=0+rand()%128;/产生0-127的随机数printf(随机的产生一个128以内的十进制数为%dn,data);for(i=0;iif(count1%2=0)/奇校验奇数个1校验位为0,偶数个1为1a7=1;for(i=0;ielsea7=0;p1=a7;printf(初始二进制校验位放在最高位它为:%dn,p1);printf(产生随机二进制数为);/*while(i=0)printf(%d,a-i);*/for(i=7;i=0;-i)printf(%d,ai);printf(n);voidtran

4、s()inti;srand(unsigned)time(0);i=0+rand()%9;/产生0-8的随机数if(i=0)printf(机器内部设置传输过程中没有出错n);elseai-1=(ai-1=0)?1:0;printf(传输过程将机器内部的数据进行了一位改动,改动位为%dn,i);voidpop()printf(接收数据计算出的校验位为:%dn,p2);if(p2!=a7)printf(通过校验位p1与p2的比较得出传输过程中数据出错了。if(count2%2=0)p2=1;inti,count2=0;printf(接收数据为:);for(i=7;i=0;i-)printf(n);/

5、求接收数据的偶校验位for(i=6;i=0;i-)if(ai=1)count2+;printf(%d,ai);elsep2=0;n);elseprintf(通过校验位p1与p2的比较得出在传输的过程中数据没有出错!n);篇二:实验报告实验一1.ADs1.2下建立工程(1)运行ADs1.2集成开发环境(codewarriorforARmDevelopersuite),点击File|new,在new对话框中,选择project栏,其中共有7项,ARmexecutableImage是ARm的通用模板。选中它即可生成ARm的执行文件。还要在,projectname栏中输入项目的名称,以及在Locati

6、on中输入其存放的位置。按确定保存项目。(2)在新建的工程中,选择Debug版本,如图,使用edit|Debugsettings菜单对Debug版本进行参数设置。(3)在如图2-1-3中,点击Debugsetting按钮,图2-1-3(4)在如图2-1-5中,点击ARmAssembler,在Architectureorprocesser图2-1-5栏中选ARm920T。这是要编译的cpu核。(5)在如图2-1-6中,点击ARmccompliler,在Architectureorprocesser栏中选ARm920T。这是要编译的cpu核。图2-1-6(6)点击ARmlinker,在outpur

7、栏中设定程序的代码段地址,以及数据使用的地址。图中的Robase栏中填写程序代码存放的起始地址,Rwbase栏中填写程序数据存放的起始地址。该地址是属于sDRAm的地址。(7)在如图2-1-10中,即在Debugsetting对话框中点击左栏的ARmfromeLF项,在outputfilename栏中设置输出文件名*.bin,前缀名可以自己取,在outputformat栏中选择plainbinary,这是设置要下载到flash中的二进制文件。图2-1-10(8)到此,在ADs1.2中的基本设置已经完成,可以将该新建的空的项目文件作为模板保存起来。首先,要将该项目工程文件改一个合适的名字,如s3

8、c2410ARm.mcp等,然后,在ADs1.2软件安装的目录下的stationary目录下新建一个合适的模板目录名,如,s3c2410ARmexecutableImage,再将刚刚设置完的s3c2410ARm.mcp项目文件存放到该目录下即可。这样,就能在图2-1-10中看到该模板。(9)新建项目工程后,就可以执行菜单project|AddFiles把和工程所有相关的文件加入,ADs1.2不能自动进行文件分类,用户必须通过project|creategroup来创建文件夹,然后把加入的文件选中,移入文件夹。或者鼠标放在文件填加区,右键点击,即出!先选AddFiles,加入文件,再选creat

9、egroup,创建文件夹,然后把文件移入文件夹内。读者可根据自己习惯,更改edit|preference窗口内关于文本编辑的颜色、字体大小,形状,变量、函数的颜色等等设置。2.ADs1.2下仿真、调试在ADs1.2下进行仿真调试,首先需要一根仿真调试电缆。其驱动程序的安装和使用在光盘中的实验软件ARm9_RDI中,里面有相关的文档。在连上调试电缆后,给实验箱上电,打开调试软件AxDDebugger。点击File|loadimage加载文件ADs.axf(实验程序hARDwAReADs实验一ADsADs_data目录下)。打开超级终端,设置其参数为:波特率为,数据位数8,奇偶校验无,停止位无1,

10、数据流控无。点击全速运行,出现图2-1-13的界面:图2-1-13在最后介绍调试按钮,上图,左起第一个是全速运行,第二个是停止运行,第三个跳入函数内部,第四个单步执行,第五个跳出函数。到此,开发环境就全部介绍完了,这是ARm的开发基础,希望你有所收获。实验二1.本实验仅使用实验教学系统的cpu板,串口。在进行本实验时,LcD电源开关、音频的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态。2在pc机并口和实验箱的cpu板上的JTAg接口之间,连接仿真调试电缆,以及串口间连接公/母接头串口线。3检查连接是否可靠,可靠后,接入电源线,系统上电。4打开ADs1.2开发环境,从里面

11、打开实验程序hARDwAReADs实验二asm.mcp项目文件,进行编译。5编译通过后,进入ADs1.2调试界面,加载实验程序hARDwAReADs实验二asm_DataDebug中的映象文件程序映像asm.axf。6打开超级终端,配置波特率为,校验位无,数据位为8,停止位为1。之后,在ADs调试环境下全速运行映象文件,应出现图2-2-1界面:图2-2-1本程序连续发送了128个字节的AscII字符。下面分析一下程序的源码。在uART前的部分为系统的初始化,这在后边booTLoADeR的章节里,要详细介绍。uART后的程序为主程序,在程序中找到下面这部分的代码,/呼叫主应用程序buARTuAR

12、Tldrr0,=gphcon;/设置gpIo(RxD0,TxD0引脚)ldrr1,=0x2afaaastrr1,r0ldrr0,=gphupldrr1,=0x7ffstrr1,r0;/gph10:0禁止上拉ldrr0,=uFcon0;/禁用FIFoldrr1,=0x0strr1,r0ldrr0,=umcon0;/禁用AFcldrr1,=0x0strr1,r0ldrr0,=uLcon0;/设置线寄存器ldrr1,=0x3;/正常模式,无奇偶校验,一个停止位,8个数据位strr1,r0ldrr0,=ucon0;/设置uart0控制器ldrr1,=0x245;/Rx边沿触发,Tx电平触发,禁用延时中

13、断,使用Rx错误中断,正常操作模式,中断请求或表决模式strr1,r0ldrr0,=ubRDIV0;/设置波特率为ldrr1,=0x1a;/int(/16/)-1=26strr1,r0movr1,#100Delaysubr1,r1,#0x1bneDelay;/开中断ldrr0,=InTmsKldrr1,r0andr1,r1,#0xefffffffstrr1,r0moVR5,#127;/设置要打印的字符的个数moVR1,#0x0;/设置要打印的字符LoopLDRR3,=uTRsTAT0LDRR2,R3TsTR2,#0x04;/判断发送缓冲区是否为空beQLoop;/为空则执行下边的语句,不为空则

14、跳转到LoopLDRR0,=uTxh0sTRR1,R0;/向数据缓冲区放置要发送的数据ADDR1,R1,#1subR5,R5,#0x01;/计数器减一cmpR5,#0x0bneLoopLoop2bLoop2分析清楚之后,我们改变R1的数据,换成其他的数据,然后保存、编译、调试。观察结果,比如0xaa,0x01等等。篇三:奇偶校验电路设计奇偶校验电路设计一、实验目的1熟悉QuartusII的使用;2.学习在QuartusII中;3.学习原理图方式自定义元件的输入,封装,调用;4.掌握奇偶校验原理;5.学会使用现成的芯片搭建目标电路。二、实验内容和原理实验内容:(1)在QuartusII环境下以原理图方式建立顶层文件工程。利用多个74386芯片搭建一个奇偶校验电路。74386提供四个2输入异或门(2)建立仿真文件,观察输出结果。实验原理:奇偶校验码是最简单的数据校验码,其码距为2,可以检测出一位错

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号