奇偶校验实验报告_第1页
奇偶校验实验报告_第2页
奇偶校验实验报告_第3页
奇偶校验实验报告_第4页
奇偶校验实验报告_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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-

4、i);*/for(i=7;i>=0;-i)printf("%d",ai);printf("n");voidtrans()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);i

5、f(p2!=a7)printf("通过校验位p1与p2的比较得出传输过程中数据出错了。if(count2%2=0)p2=1;inti,count2=0;printf("接收数据为:");for(i=7;i>=0;i-)printf("n");/求接收数据的偶校验位for(i=6;i>=0;i-)if(ai=1)count2+;printf("%d",ai);elsep2=0;n");elseprintf("通过校验位p1与p2的比较得出在传输的过程中数据没有出错!n");篇二:实验报

6、告实验一1.ADs1.2下建立工程(1)运行ADs1.2集成开发环境(codewarriorforARmDevelopersuite),点击File|new,在new对话框中,选择project栏,其中共有7项,ARmexecutableImage是ARm的通用模板。选中它即可生成ARm的执行文件。还要在,projectname栏中输入项目的名称,以及在Location中输入其存放的位置。按确定保存项目。(2)在新建的工程中,选择Debug版本,如图,使用edit|Debugsettings菜单对Debug版本进行参数设置。(3)在如图2-1-3中,点击Debugsetting按钮,图2-1-

7、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栏中设定程序的代码段地址,以及数据使用的地址。图中的Robase栏中填写程序代码存放的起始地址,Rwbase栏中填写程序数据存放的起始地址。该地址是属于sDRAm的地址。(7)在如图2-1-10中,即在Debugsetting对话框

8、中点击左栏的ARmfromeLF项,在outputfilename栏中设置输出文件名*.bin,前缀名可以自己取,在outputformat栏中选择plainbinary,这是设置要下载到flash中的二进制文件。图2-1-10(8)到此,在ADs1.2中的基本设置已经完成,可以将该新建的空的项目文件作为模板保存起来。首先,要将该项目工程文件改一个合适的名字,如s3c2410ARm.mcp等,然后,在ADs1.2软件安装的目录下的stationary目录下新建一个合适的模板目录名,如,s3c2410ARmexecutableImage,再将刚刚设置完的s3c2410ARm.mcp项目文件存放到

9、该目录下即可。这样,就能在图2-1-10中看到该模板。(9)新建项目工程后,就可以执行菜单project|AddFiles把和工程所有相关的文件加入,ADs1.2不能自动进行文件分类,用户必须通过project|creategroup来创建文件夹,然后把加入的文件选中,移入文件夹。或者鼠标放在文件填加区,右键点击,即出!先选AddFiles,加入文件,再选creategroup,创建文件夹,然后把文件移入文件夹内。读者可根据自己习惯,更改edit|preference窗口内关于文本编辑的颜色、字体大小,形状,变量、函数的颜色等等设置。2.ADs1.2下仿真、调试在ADs1.2下进行仿真调试,首

10、先需要一根仿真调试电缆。其驱动程序的安装和使用在光盘中的实验软件ARm9_RDI中,里面有相关的文档。在连上调试电缆后,给实验箱上电,打开调试软件AxDDebugger。点击File|loadimage加载文件ADs.axf(实验程序hARDwAReADs实验一ADsADs_data目录下)。打开超级终端,设置其参数为:波特率为,数据位数8,奇偶校验无,停止位无1,数据流控无。点击全速运行,出现图2-1-13的界面:图2-1-13在最后介绍调试按钮,上图,左起第一个是全速运行,第二个是停止运行,第三个跳入函数内部,第四个单步执行,第五个跳出函数。到此,开发环境就全部介绍完了,这是ARm的开发基

11、础,希望你有所收获。实验二1.本实验仅使用实验教学系统的cpu板,串口。在进行本实验时,LcD电源开关、音频的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态。2在pc机并口和实验箱的cpu板上的JTAg接口之间,连接仿真调试电缆,以及串口间连接公/母接头串口线。3检查连接是否可靠,可靠后,接入电源线,系统上电。4打开ADs1.2开发环境,从里面打开实验程序hARDwAReADs实验二asm.mcp项目文件,进行编译。5编译通过后,进入ADs1.2调试界面,加载实验程序hARDwAReADs实验二asm_DataDebug中的映象文件程序映像asm.axf。6打开超级终端,

12、配置波特率为,校验位无,数据位为8,停止位为1。之后,在ADs调试环境下全速运行映象文件,应出现图2-2-1界面:图2-2-1本程序连续发送了128个字节的AscII字符。下面分析一下程序的源码。在uART前的部分为系统的初始化,这在后边booTLoADeR的章节里,要详细介绍。uART后的程序为主程序,在程序中找到下面这部分的代码,/呼叫主应用程序buARTuARTldrr0,=gphcon;/设置gpIo(RxD0,TxD0引脚)ldrr1,=0x2afaaastrr1,r0ldrr0,=gphupldrr1,=0x7ffstrr1,r0;/gph10:0禁止上拉ldrr0,=uFcon0

13、;/禁用FIFoldrr1,=0x0strr1,r0ldrr0,=umcon0;/禁用AFcldrr1,=0x0strr1,r0ldrr0,=uLcon0;/设置线寄存器ldrr1,=0x3;/正常模式,无奇偶校验,一个停止位,8个数据位strr1,r0ldrr0,=ucon0;/设置uart0控制器ldrr1,=0x245;/Rx边沿触发,Tx电平触发,禁用延时中断,使用Rx错误中断,正常操作模式,中断请求或表决模式strr1,r0ldrr0,=ubRDIV0;/设置波特率为ldrr1,=0x1a;/int(/16/)-1=26strr1,r0movr1,#100Delaysubr1,r1,

14、#0x1bneDelay;/开中断ldrr0,=InTmsKldrr1,r0andr1,r1,#0xefffffffstrr1,r0moVR5,#127;/设置要打印的字符的个数moVR1,#0x0;/设置要打印的字符LoopLDRR3,=uTRsTAT0LDRR2,R3TsTR2,#0x04;/判断发送缓冲区是否为空beQLoop;/为空则执行下边的语句,不为空则跳转到LoopLDRR0,=uTxh0sTRR1,R0;/向数据缓冲区放置要发送的数据ADDR1,R1,#1subR5,R5,#0x01;/计数器减一cmpR5,#0x0bneLoopLoop2bLoop2分析清楚之后,我们改变R1

15、的数据,换成其他的数据,然后保存、编译、调试。观察结果,比如0xaa,0x01等等。篇三:奇偶校验电路设计奇偶校验电路设计一、实验目的1熟悉QuartusII的使用;2.学习在QuartusII中;3.学习原理图方式自定义元件的输入,封装,调用;4.掌握奇偶校验原理;5.学会使用现成的芯片搭建目标电路。二、实验内容和原理实验内容:(1)在QuartusII环境下以原理图方式建立顶层文件工程。利用多个74386芯片搭建一个奇偶校验电路。74386提供四个2输入异或门(2)建立仿真文件,观察输出结果。实验原理:奇偶校验码是最简单的数据校验码,其码距为2,可以检测出一位错误,但无法指出错误的位置。具

16、体校验实现方法为将有效信息位和校验位读入,判断其1的个数是奇数个还是偶数个,在奇校验的情况下正常情况下个数应该为奇数个,偶校验正常情况下应该是偶数个。校验码的生成:对于奇校验,判断有效信息位1的个数,若为偶数则校验位为1,奇数则校验位为0;偶校验反之。具体实现的逻辑表达式如下:三、实验设计原理图以及综合结果记录逻辑单元的消耗情况等。原理图如下:偶校验奇校验校经过设计后用74386实现的原理图如下:综合结果如下图所示:四、仿真波形图画出波形图以及波形图中仿真信号的说明。并分析结果(实验现象结论)。仿真波形图如下所示:其中,D0-7为信息位,Djiao为校验位。实验结果如下:说明:波形信息位为奇数个1,校验位为0时,输出的奇校验位为0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论