文档库 最新最全的文档下载
当前位置:文档库 › 实验1

实验1

实验1
实验1

1.1用OpenGL绘制图形

由于OpenGL是一种API,OpenGL库遵循C调用约定,这意味着在C语言中编写的程序可以很容易地调用API中的函数,本书的示例程序均以C语言编写。下面的程序利用GLUT库,在窗口的中心位置绘制一个矩形,其输出如图1.4所示。

程序清单1.1:在窗口内绘制一个矩形

//GLRect.c

#include

#include

#include

#include

// 函数RenderScene用于在窗口中绘制需要的图形

void RenderScene(void)

{

//用当前清除色清除颜色缓冲区,即设定窗口的背景色

glClear(GL_COLOR_BUFFER_BIT);

//设置当前绘图使用的RGB颜色

glColor3f(1.0f, 0.0f, 0.0f);

//使用当前颜色绘制一个填充的矩形

glRectf(100.0f, 150.0f, 150.0f, 100.0f);

//刷新OpenGL命令队列

glFlush();

}

// 函数ChangeSize是窗口大小改变时调用的登记函数

void ChangeSize(GLsizei w, GLsizei h)

{

if(h == 0) h = 1;

//设置视区尺寸

glViewport(0, 0, w, h);

// 重置坐标系统,使投影变换复位

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

// 建立修剪空间的范围

if (w <= h)

glOrtho (0.0f, 250.0f, 0.0f, 250.0f*h/w, 1.0f, -1.0f);

else

glOrtho (0.0f, 250.0f*w/h, 0.0f, 250.0f, 1.0f, -1.0f);

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

}

//函数SetupRC用于初始化,常用来设置场景渲染状态

void SetupRC(void)

{

// 设置窗口的清除色为白色

glClearColor(1.0f, 1.0f, 1.0f, 1.0f);

}

void main(void)

{

//初始化GLUT库OpenGL窗口的显示模式

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);

// 创建一个名为GLRect的窗口

glutCreateWindow("GLRect");

// 设置当前窗口的显示回调函数和窗口再整形回调函数

glutDisplayFunc(RenderScene);

glutReshapeFunc(ChangeSize);

SetupRC();

//启动主GLUT事件处理循环

glutMainLoop();

}

图1.4 GLRect程序运行结果

1.7.1 库和头文件

程序GLRect中包含了4个头文件,其中定义了程序所用的函数原形。此外,OpenGL 需要下列*.lib包含在你的工程中:opengl.lib,glu.lib,glut32.lib;另外在运行程序路径下或\win98\system\(\winNT\system32)下需要一些动态连接库:opengl32.dll,glu32.dll,glut32.dll。

1.7.2 函数主体

我们先看所有C程序的入口点:

void main(void)

{

1. 显示模式

第一行代码如下:

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);

它告诉GLUT库在创建窗口时使用单缓冲区窗口(GLUT_SINGLE)并使用RGB颜色模式(GLUT_RGB)。由于在屏幕上显示图形是由像素构成的,而像素的颜色及灰度信息都是存储在帧缓冲存储区中,单缓冲区窗口使用单一的帧缓冲存储区,这样所有的绘图命令都在显示窗口中执行;另一种是双缓冲区窗口(GLUT_DOUBLE),它使用了两个帧缓冲存储区,这样在窗口中执行的绘图命令实际上利用其中一个帧缓冲存储区创建一个场景,然后很快地交换到窗口视图中来,这种方法常用于产生动画效果的场合。RGB颜色模式意味着要通过分别提供红、绿、蓝成分的浓度来指定颜色。

2. 创建OpenGL窗口

下一行代码:

glutCreateWindow("GLRect");

它利用glut库中的窗口管理函数在屏幕上创建一个标题为“GLRect”的窗口。

3. 回调函数

后面的两行代码

glutDisplayFunc(RenderScene);

glutReshapeFunc(ChangeSize);

分别用于指定当前窗口的显示回调函数和再整形回调函数。回调函数是响应某种事件而被调用的函数,他由程序员编制,通过GLUT注册函数连接到特定的函数。这样只要需要绘制窗口,GLUT就会调用函数RenderScene;而当窗口的大小或形状发生变化时,GLUT会调用函数ChangeSize。

4.设置上下文并执行

SetupRC()函数与GLUT框架无关,其作用是进行OpenGL的初始化。OpenGL的初始化必须在渲染之前进行,由于OpenGL使用状态机,即每条OpenGL命令都使用当前的渲染状态完成,而对当前渲染状态的任何修改都会影响到之后的任何OpenGL命令,直至再次修改当前渲染状态,故此在一个场景中,许多的状态只要设置一次就可以了。

程序的结尾是最后一个GLUT函数调用:

glutMainLoop( );

}

该函数让GLUT框架开始运行,所有设置的回调函数开始工作,直到用户终止程序为止。

1.7.3 OpenGL图形的绘制

1. 初始化

函数SetupRC主要用于初始化,其中只调用了一个函数

glClearColor(1.0f, 1.0f, 1.0f, 1.0f);

这个函数用于设置清除窗口时使用的颜色,即设定窗口内的背景色。在OpenGL中,一种颜

色用红、绿、蓝成分的混合来表示,每种成分的值可以是0.0到1.0之间的任意有效浮点数,这样虽理论上可以产生无限多种颜色,但实际可输出的颜色是有限的。这类似于Windows 中使用RGB宏来创建COLORREF值时的颜色规范,不同的只是其中红、绿、蓝三种颜色成分的取值范围是0到255。表1-2给出了一些常见的混合色。

等。

2. 再整形回调函数

窗口在物理上是以象素数来测量的。开始在窗口中绘图之前,必须告诉OpenGL如何把指定的坐标对转换为屏幕坐标。为此,先指定窗口在笛卡儿空间中占据的区域,这一区域在计算机图形学中称为“窗口”,这里为了与操作系统的窗口有所区别,我们称这一区域为“修剪区”。而以象素计算的话,修剪区的宽度和高度很少会恰好与窗口的宽度和高度一致。所以坐标系必须从逻辑笛卡儿坐标映射为物理屏幕的象素坐标。这种映射是由称为“视区”的设置指定的。视区是窗口的客户区内用于绘制修剪区的区域,即把修剪区映射为窗口的一个区域。通常把视区定义充满整个窗口。

在程序1.1中,当窗口的大小改变,函数ChangeSize就会收到新的宽度和高度,在函数中利用这些信息可以完成修剪区到视区(坐标系到实际屏幕坐标)的映射。

(1)利用函数glViewport定义视区,glViewport函数的定义如下:

void glViewport(GLint x,GLint y,GLsizei width,Glsizei height);

x和y参数指定窗口内视区的左下角,width和height参数以象素为单位指定宽度和高度。通常,x和y都是0,但是可以用视区来渲染窗口不同区域中的多幅图形。

(2)利用函数glOrtho定义修剪区。这里需要注意一点,如果指定的视区不是正方形,而定义的修剪区是正方形,这样在完成修剪区到视区的映射后,显示的图形会发生变形,影响效果,为此必须保证定义的视区和修剪区的纵横比保持一致。glOrtho函数的定义如下:void glOrtho(Gldouble left,Gldouble right,Gldouble bottom,Gldouble top,Gldouble near,Gldouble far);

该函数在3D笛卡儿坐标空间中定义了一个修剪空间,left和right指定x轴上显示的最小和最大坐标值;bottom和top则用于y轴;near和far参数用于z轴,通常是远离观察者

的负值。由于这个修剪空间要映射到视区,这种三维空间到二维的映射,需要利用投影来实现,这里使用的是正投影。故此在调用函数glOrtho之前,调用了两个函数:

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

这两个函数定义了投影矩阵,投影矩阵是实际定义视见空间的地方,而函数glOrtho并不是真正建立修剪空间,而是修改现有的修剪空间,它用描述了其参数中说明的修剪空间的矩阵乘以描述当前修剪空间的矩阵,为了避免每次调用glOrtho时对修剪空间造成进一步的破坏,所以使用函数glLoadIdentity使坐标系“复位”。

函数ChangeSize的最后为:

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

这两个函数告诉OpenGL将来所有变换都会影响模型。

3. 显示回调函数

显示回调函数RenderScene是调用OpenGL渲染函数的地方。

(1)实际清除

我们在初始化时指定了蓝色为窗口清除色,此时需要调用函数

glClear(GL_COLOR_BUFFER_BIT);

执行实际的清除操作。一幅图像的红、绿、蓝成分通常被并称为颜色缓冲区或象素缓冲区,用glClear清除颜色缓冲区会清除窗口中所有图形,并用指定的清除色填充整个窗口。

(2)指定当前绘图颜色

函数glColor3f(1.0f,0.0f,0.0f)用于设置当前绘图颜色,即调用glColor3f设置以后,绘制操作(包括画线和填充)所用的颜色均为设置的当前颜色。

(3)图形绘制

这里我们使用函数

glRectf(100.0f, 150.0f, 150.0f, 100.0f);

来绘制一个矩形,该函数的四个参数表示矩形左上角点和右下角点的坐标。

(4)刷新队列

函数glFlush()用于让所有尚未执行的OpenGL命令都被执行。在内部,OpenGL使用一条渲染流水线来顺序处理命令。OpenGL命令和语言通常要排队,以便OpenGL驱动程序一次处理若干条“请求”。这种设置能提高性能,特别是在构造复杂对象的时候。GlFlush 函数只是告诉OpenGL,它应处理到目前为止收到的绘图指令,而不要再等待更多的绘图命令。

由上面的程序可以看出,一个OpenGL程序的基本结构主要包括以下几个部分:

(1)定义窗口:包括指定窗口的大小、位置、显示模式以及设置各种回调函数;

(2)初始化设置:清除各种缓冲区,并设置各种OpenGL状态,例如设置背景色,打开光照,设置纹理等等。

(3)绘制场景:利用OpenGL函数绘制场景中的各种物体。

(4)变换:指定场景中需要显示的范围并指定由修剪区到视区的变换。

(5)结束运行:清除命令缓冲区,执行OpenGL命令。

计算机组成原理实验1_脱机运算器

实验一.脱机运算器部件实验 一、教学计算机的通电启动和关闭操作 1.教学计算机系统通电启动的操作步骤: (1) 准备一台串行接口运行正常的PC机; (2) 将TH-union计原16放在实验台上,打开实验箱的盖子,确定电源处于断开状态; (3) 将黑色的电源线一端接220V交流电源,另一端插在计原16实验箱的电源插座; (4) 取出通讯线,将通讯线的9芯插头接在计原16实验箱后板上左侧位置的串口插座,另一端接 到PC机的串口上; (5) 将计原16实验系统左下方的五个黑色的功能控制开关置于00010的位置(连续、内存读指令、 微程序、联机、16位),开关拨向上方表示“1”,拨向下方表示“0”; (6) 接通电源,船形开关和5V电源指示灯亮。 (7) 在PC机上运行PCEC16.EXE文件,根据使用的PC机的串口情况选“1”或“2”,其它的设置一 般不用改动,直接回车即可。(具体步骤附后) (8) 按一下“RESET”按键,再按一下“START”按键,PC机屏幕上显示: TH-union CRT MONITOR Version 1.0 April 2001 Computer Architectur Lab., Tsinghua University Programmed by He Jia > 这个版权信息显示出来之后,表示教学机已经进入正常运行状态,等待输入监控命令。 实验注意事项: 1.连接电源线和通讯线前TH-union计原16实验系统的电源开关一定要处于断开状态,否则可能 损坏教学计算机系统的或PC机的串行接口电路; 2.五个黑色控制开关的功能示意图如下: 开关位置,自左向右共5个,分别控制 1 2 3 4 5 向上拨:单步手工拨指令组合逻辑运算器联机 8位 向上拨:连续读内存指令微程序运算器脱机 16位 几种常用的工作方式,(开关向上拨表示为1,向下拨表示0) 工作方式功能开关状态 连续运行程序、硬连线控制器、联机、16位机 00110 连续运行程序、微程序控制器、联机、16位机 00010 单步、手拨指令、硬连线控制器、联机、16位机 11110 单步、手拨指令、微程序控制器、联机、16位机 11010 单步、脱机运算器实验、16位机 10000 2.关闭教学计算机系统 在需要关闭教学计算机系统时,应首先通过安装在机箱右侧板上的开关关闭交流电源,教学机上的全部指示灯都会熄灭。(在需要时,还可以拨掉交流电源连线,断开教学计算机和PC机的串行接口连线),收拾好实验设备并盖好机箱的箱盖。 3.运行仿真终端程序的操作步骤: 1.在PC机上建一个文件夹TH-union计原16(若原来已有则不必重建); 2.若PCEC16程序尚未拷入,将其拷贝到在用户硬盘中刚建的文件夹里; 3.双击PCEC16图标,出现如图所示的界面:

密码学实验报告模板总结模板计划模板.doc

密码学应用与实践课程实验报告 实验 1:实现 DES密码体制 一、实验目的 1.编写程序实现 DES的加、解 密:1)编程构造 DES的密钥; 2)应用上述获得的密钥将一段英文或文件进行加、解密。 2.用 DES算法实现口令的安全 二、实验内容 1.DES原理 DES综合运用了置换,代换,移位多种密码技术,是一种乘积密码。在算法结构上采用迭代 结构,从而使其结构清晰,调理清楚,算法为对合运算,便于实现,运行速度快。DES使用了初始置换IP 和 IP-1 各一次(相应的置换看算法描述图表)置换P16 次,安排使用这 3 个置换的目的是把数据彻底打乱重排。选择置换 E 一方面把数据打乱重排,另一方面把32 位输入扩展为48 位,算法中除了S- 盒是非线性变换外,其余变换均为显示变换,所以保密 的关键是选择S- 盒。符合以下 3 条准则: (1)对任何一个 S- 盒而言,没有任何线性方程式等价于此S-盒的输出输入关系,即是S- 盒是非线性函数。 (2)改变 s- 盒的任何一位输入,都会导致两位以上的输出改变,即满足" 雪崩效应 " 。(3)当固定某一个位的输入时,S- 盒的 4 个出位之间,其中0 和 1 的个数之差小。这个准 则的本质是数据压缩,把四位输入压缩为 4 位输出。选择 S-盒函数的输入中任意改变数位, 其输出至少变化两位。因为算法中使用了16 次迭代,大大提高了保密性。 2.DES算法由加密、解密和子密钥的生成三部分组成 1)加密 DES算法处理的数据对象是一组64 比特的明文串。设该明文串为m=m1m2m64 (mi=0 或 1) 。明文串经过64 比特的密钥K 来加密,最后生成长度为64 比特的密文E。其加密过程图示如下:

实验1运算器组成实验

实验一运算器组成实验 一、实验目的 1、掌握算术逻辑运算加、减、乘、与的工作原理。 2、熟悉简单运算器的数据传输通路。 3、验证试验台运算器的8位加、减、乘、与、直通功能。 二、实验电路 S0,S1,S2为片选信号,通过它们的高低电平的转换,使各模块的电路是否处于工作状态。每次输入数据存入存储器中,通过控制器取出指令,然后进行计算。 三实验过程 一、接线 1、固定接线 RS_BUS#接VCC,禁止寄存器堆RF向数据总线DBUS送数。 IAR_BUS#接VCC,禁止中断地址寄存器IAR向DBUS送数。 CEL#接VCC,禁止双端口RAM向数据总线DBUS送数。 M1、M2接VCC,选择DBUS作为DR1、DR2的数据输入源。 2、其他控制信号线 SW_BUS#接K0;ALU_BUS接K1; S0接K2;S1接K3;S2接K4; LDDR1接K5;LDDR2接K6。 接线图如下:

二、设置功能开关 1、置开关DB=0,DZ=0,DP=1,使实验系统处于单排状态(每按一次QD按钮,顺序产生T1、T 2、T 3、T4各一个脉冲) 2、将开关IP/DBUS拨到DBUS位置;置SW_BUS#(K0)=0,ALU_BUS(K1)=0,使数据输入设备(SW7~SW0)与数据总线DBUS接通;ALU的输出与数据总线DBUS断开。 三、实验操作 1、按下试验台上电源开关,接通电源。按复位按钮CLR#(使实验系统处于初始状态)。 2、置开关SW7~SW0为相应数字(eg:1000001)此数据通过74HC244加至数据总线DBUS。DBUS的数据指示灯显示相应数字(eg:1000001) 3、置LDDR2=1,LDDR1=0,按QD按钮(产生T3),则将DBUS的数据(1000001)打入DR2。 4、置开关SW7~SW0为相应数字(eg:1000010)此数据通过74HC244加至数据总线DBUS。DBUS的数据指示灯显示相应数字(eg:1000010) 5、置LDDR2=0,LDDR1=1,按QD按钮(产生T3),则将DBUS的数据(1000010)打入DR1。 6、置K0(SW_BUS#)=1、K1(ALU_BUS)=1。是数据输入设备(SW7~SW0)与数据总线DBUS 断开接通;ALU的输出与数据总线DBUS接通。 7、置S0、S1、S2为相应高低电平,使ALU进行相应计算(见下表)。运算的结果送至数据总线DBUS,DBUS的红色数据指示灯显示运算结果(10000011B);此时仅为指示灯为C=1。按QD按钮(产生T4),进位C=1保存。 8、其他运算通过变换S0、S1、S2的高低电平进行不同的运算(见下表)。

密码学实验指导

密码学实验指导

目录 实验一凯撒密码算法实验 1 实验二维吉利亚密码算法实验 5 实验三普莱费尔密码算法实验 9 实验四 IDEA密码算法实验 17 实验五 BCH纠错编码算法任务书 27

实验一凯撒密码算法实验 1 实验目的 通过实验熟练掌握凯撒密码算法,学会凯撒密码算法程序设计,提高C++程序设计能力。 2 实验学时:2 实验类别:验证实验■综合性实验□设计性实验□ 3 实验环境 软件环境Windows Xp/Windows 2000 Visual c++/Turbo c++ 3.0 硬件系统Pentium 4 3.0G 512MRAM 计算机等 4 算法原理 按照a~z依次对应0~25编码,变量K存放密钥-正整数。变量M存放一明文字符ASCII码,变量C存放M中的数据经加密后得到的一密文字符的ASCII码。 加密算法:C≡(M+K)mod 26,如此继续下去,实现逐个字符进行加密。 5 实验步骤与内容 1)编写程序 2)编辑录入 3)记录调试及进行情况 4)程序结构说明文档 5)程序使用说明文档 6 思考密钥K的有效的最小取值范围 7 实验总结与体会 8 要求提交完整的实验报告 9 参考程序代码 #include #include using namespace std; //获取密钥函数getKey()

int getKey() { int key; cout<<"请输入密钥:"; cin>>key; return key; } //将明文中的字符全部转化为大写的函数change() void change(char s[]) { int i; for(i=0;i96&&s[i]<122) s[i] = s[i]-32; } } //判断输入的明文格式是否有误的函数getError() //有误则返回0,否则就返回1 int getError(char s[]) { int i,error; for(i=0;i65&&s[i]<=82)||(s[i]>96&&s[i]<=122)) { error = 1;

实验六

6.1一维数组 【实验目的】 1.熟练掌握使用一维数组编程的方法。 2.熟练掌握排序算法。 【实验内容】 1调试示例 输入一个正整数n,再输入n个整数,将它们排序后由小到大输出。(error07_1.cpp) 源程序(有错误的程序) #include void main() { int i,j,num,a[num]; int change,t; printf("Enter Number: "); scanf("%d",&num); printf("Enter Data: \n"); for(i=0;i0 && change;i--) { change=0; for(j=0;j<=i;j++) if(a[j]>a[j+1]) { /*调试时设置断点*/ t=a[j]; a[j]=a[j+1]; a[j+1]=t; change=1; } } /*调试时设置断点*/ printf("Sorted data:\n"); for(i=0;i

基本运算器实验模板

计算机科学与技术系 实验报告 专业名称计算机科学与技术 课程名称计算机组成原理 项目名称基本运算器实验 班级 学号 姓名 同组人员无 实验日期 2016.5.17

一、实验目的与要求 (一) 实验目的: (1) 了解运算器的组成结构。 (2) 掌握运算器的工作原理。 (二) 实验要求: (1)实验之前,应认真准备,写出实验步骤和具体设计内容,否则实验效率会特别低,一次实验时间根本无法完成实验内容,即使基本作对了,也很难说懂得了些什么重要教学内容。 (2)应在实验前掌握所有控制信号的作用,写出实验预习报告并带入实验室。 (3)实验过程中,应认真进行实验操作,既不要因为粗心造成短路等事故而破坏设备,又要仔细思考实验有关内容,把自己想不明白的问题通过实验理解清楚。 二、实验逻辑原理图与分析 2.1 画实验逻辑原理图 xxxxxxxxxx xxxxxxxxxx 多路开关 判零 A=xx LOG=xx SHF=xx ART=xx 进位 B=xx & &

2.2 逻辑原理图分析 1)运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要 处理的数据存于暂存器A和暂存器B,三个部件同时接受来自A 和B 的数据(有些处理器体系结构把移位运算器放于算术和逻辑运算部件之前,如ARM)。 2)各部件对操作数进行何种运算由控制信号S3…S0和CN 来决定,任何时候, 多路选择开关只选择三部件中一个部件的结果作为ALU 的输出。如果是影响进位的运算,还将置进位标志FC,在运算结果输出前,置ALU 零标志。 ALU 中所有模块集成在一片CPLD 中。 三、数据通路图及分析 1、逻辑运算

实验一_经典密码学实验_

实验一经典密码学实验 【实验原理】 古典密码算法历史上曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密。下面介绍两种常见的具有代表性的古典密码算法,以帮助读者对密码算法建立一个初步的印象。 1.替代密码 替代密码算法的原理是使用替代法进行加密,就是将明文中的字符用其它字符替代后形成密文。例如:明文字母a、b、c、d ,用D、E、F、G做对应替换后形成密文。 替代密码包括多种类型,如单表替代密码、多明码替代密码、多字母替代密码、多表替代密码等。下面我们介绍一种典型的单表替代密码,恺撒(caesar)密码,又叫循环移位密码。它的加密方法,就是将明文中的每个字母用此字符在字母表中后面第k个字母替代。它的加密过程可以表示为下面的函数: E(m)=(m+k) mod n 其中:m为明文字母在字母表中的位置数;n为字母表中的字母个数;k为密钥;E(m)为密文字母在字母表中对应的位置数。 例如,对于明文字母H,其在字母表中的位置数为8,设k=4,则按照上式计算出来的密文为L: E(8) = (m+k) mod n = (8+4) mod 26 = 12 = L 2.置换密码 置换密码算法的原理是不改变明文字符,只将字符在明文中的排列顺序改变,从而实现明文信息的加密。置换密码有时又称为换位密码。 矩阵换位法是实现置换密码的一种常用方法。它将明文中的字母按照给的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中字母,从而形成密文。例如,明文为attack begins at five,密钥为cipher,将明文按照每行6列的形式排在矩阵中,形成如下形式: a t t a c k b e g i n s

实验一运算器实验

实验一运算器实验 简介:运算器是数据的加工处理部件,是CPU的重要组成部分,各类计算机的运算器结构可能有所不同,但是他们的最基本的结构中必须有算术/逻辑运算单元、数据缓冲寄存器、通用寄存器、多路转换器的数据总线的逻辑构件。 一、实验目的 1、了解算术逻辑运算器(74LS181)的组成和功能。 2、掌握基本算术和逻辑运算的实现方法。 二、实验内容 运用算术逻辑运算器74LS181 进行有符号数/无符号数的算术运算和逻辑运算。 三、实验元器件 1、算术逻辑运算器(74LS181)。 2、三态门(74LS244、74LS245)及寄存器(74LS27 3、74LS373)。 3、二进制拨码开关SW-SPDT 四、实验原理 图1.1运算器电路原理图 本实验的算术逻辑运算器电路如图 1.1所示:输入和输出单元跟上述实验相同:缓冲输入区八位拨码开关用来给出参与运算的数据,并经过三态门74LS245 和数据总线BUS相连,在控制开关SW_BUS处于高电平时允许输出到数据总线。 运算器则由两个74LS181以串行进位形式构成8位字长的算术/逻辑运算单元(ALU):ALU_L4B的进位输出端CN+4与ALU_H4B的进位输入端CN相连,使低4位运算产生的进位送进高4位运算中。其中ALU_L4B为低4位运算芯片,参与低四位数据运算,ALU_H4B为高4位运算芯片,参与高四位数据运算。ALU_L4B的进位输入

端CN通过三态门连接到二进制开关CN,控制运算器仅为,ALU_H4B的进位输出端CN+4经过反相器74LS04,通过三态门接到溢出标志位CF指示灯(CF=1,即ALU运算结果溢出)。 ALU 除了溢出标志位CF外,还有两个标志位:零标志位ZF(ZF=1,即ALU运算结果为0,ZF对应发光二极管点亮)和符号标志位SF(SF=1,即运算结果为负数;SF=0 即运算结果为正数或0对应发光二极管点亮)。 图 1.2 运算器通路图 ALU 的工作方式可通过设置两个74181芯片的控制信号(S0、S1、S2、S3、M、CN)来实现, 其74LS181逻辑功能表由表1-1给出,运算器ALU 的输出经过三态门(两片74LS244或一片74LS245)和数据总线BUS 相连。当二进制控制开关CBA=010状态时,通过138译码选通输出ALU_BUS运算器运行结果。运算器ALU 的两个数据输入端分别由两个数据暂存器(74LS273)DR1、DR2 锁存,74LS181 将DR1、DR2 内的数据作为上述表 1.1中参与运算的数 A 和B。由于DR1、DR2 已经把数据锁存,只要74LS181的控制信号不变,那么74LS181 的输出数据也不会发生改变。数据缓冲寄存器DR1、DR2 的输入端D0~D7连至8位数据总线BUS,在DR1_CLK和DR2_CLK 端出现上升沿跳变的时候,总线BUS的数据分别打入DR1、DR2锁存。

密码学实验报告总结

密码学实验报告(本文档为Word版本,下载后可自由编辑) 项目名称:××××××××× 项目负责人:××× 联系电话:××××× 编制日期:×××××

密码学实验报告 实验目的:掌握Caesar密码加密解密原理,并利用VC++编程实现。 实验内容:Caesar密码的加密原理是对明文加上一个密钥(偏移值)而得到密文。假设密钥为3,那么字母“a”对应的ASCII码为97,加上3得100正好是字母“d”的ASCII码值, 实验说明:加密实现的两种方式,只限定英文字母(区分大小写),加密时,根据明文字符是小(大)写字母,采用加密运算: 密文字符=“a”或“A”+(明文字符-“a”或“A”+password%26+26)%26 如果输入其他字符,则直接原样输出,不作处理 可以是任意字符 加密时,我们不做任何区分,直接利用Caesar密码算法 密文字符=明文字符+password 解密反之。 实验结果: void CCaesarDlg::OnButton1() //加密按钮 { UpdateData(TRUE); //从界面上的输入的值传入成员变量 m_crypt=m_plaintxt; //密文进行初始化,它与明文的长度是相同的 for(int i=0;i=48&&m_plaintxt.GetAt(i)<=57) //如果输入的字符是数字 { m_crypt.SetAt(i,'0'+(m_plaintxt.GetAt(i)-'0'+m_password%10 +10)%10);

计算机组成原理实验1 运算器实验

新疆师范大学 计算机组成原理(本科) 实验报告 实验名称:实验1 运算器实验 院系:计算机科学技术学院 班级: 11-1班 学生姓名:木拉提·巴力 学号: 20111601141025 合作者姓名: 指导教师:彭程老师 教师评阅结果: 教师评语: 实验日期 2014 年 12月 01日

一、实验目的 1.掌握运算器的组成及工作原理; 2.了解4位函数发生器74LS181的组合功能,熟悉运算器执行算术操作和逻辑操作的具体实现过程; 3.验证带进位控制的74LS181的功能。 二、实验仪器及设备 1.EL-JY-II型计算机组成原理实验系统一套。 2. 导线若干 三、实验内容 验证74LS181运算器的逻辑运算功能和算术运算功能。 四、电路图 图1-7 实验一开关实验接线图 五、实验操作及运行结果 1)拨动清零开关CLR,使其指示灯。再拨动CLR,使其指示灯亮。置ALU-G=1:关闭ALU的三态门;再置C-G=0:打开数据输入电路的三态门; 2)向数据暂存器LT1(U3、U4)中置数: (1)设置数据输入电路的数据开关“D15……D0”为要输入的数值; (2)置LDR1=1:使数据暂存器LT1(U3、U4)的控制信号有效,置LDR2=0:使数据暂存器LT2(U5、U6)的控制信号无效; (3)按一下脉冲源及时序电路的【单脉冲】按钮,给暂存器LT1送时钟,上升沿有效,把数据存在LT1中。 3)向数据暂存器LT2(U5、U6)中置数: (1)设置数据输入电路的数据开关“D15……D0”为想要输入的数值; (2)置LDR1=0:数据暂存器LT1的控制信号无效;置LDR2=1:使数据暂存器

实验一 运算器实验

武汉工程大学 计算机科学与工程学院 《计算机组成原理》实验报告 专业班级XX 实验地点机电大楼302 学生学号XX 指导教师XX 学生姓名XX 实验时间第10周 实验项目运算器实验 实验类别操作性(√)验证性()设计性()综合性()其它() 实验目的及要求 实验目的: 1、掌握简单运算器的数据传输方式。 2、验证运算功能发生器(74LS181)及进位控制的组合功能。 实验要求: 完成不带进位及带进位算术运算实验、逻辑运算实验,了解算术逻辑运算单元的运用。 成绩评定表 类别评分标准分值得分合计 上机表现积极出勤、遵守纪律 主动完成实验设计任务 30分 程序代码比较规范、基本正确 功能达到实验要求 30分 实验报告及时递交、填写规范 内容完整、体现收获 40分 评阅教师: 日期:年月日 实验内容

一、实验原理 图1-1 运算器原理 实验中所用的运算器原理如图1-1所示。其中运算器由两片74LS181以并/串形式构成8位字长的ALU。运算器的输出经过一个三态门(74LS245)和数据总线相连,运算器的两个数据输入端分别由二个锁存器(74LS273)锁存,锁存器的输入已连至数据总线,数据开关(INPUT UNIT)用来给出参与运算的数据,经一三态门(74LS245)和数据总线相连,数据显示灯(BUS UNIT)已和数据总线相连,用来显示数据总线内容。 本实验装置的控制线(CTR-IN UNIT)应与(CTR-OUT UNIT)相连,数据总线、时序电路(TIME UNIT)产生的脉冲信号(T1-T4)、P(1)、P(2)、P(3)本实验装置已作连接,(CLK UNIT)必须选择一档合适的时钟,其余均为电平控制信号(HC-UNIT)。进行实验时,首先按动位于本实验装置右中则的复位按钮使系统进入初始待令状态,在LED显示器闪动出现“P.”的环境下,按动增址命令键使LED显示器自左向右第一位显示提示符“H”,表示本装置已进入手动单元实验状态,在

现代密码学-古典密码实验报告

现代密码学 实 验 报 告 院系:理学院 班级:信安二班 姓名: 学号:

前言 密码学(Cryptology)是研究秘密通信的原理和破译秘密信息的方法的一门学科。密码学的基本技术就是对数据进行一组可逆的数学变换,使未授权者不能理解它的真实含义。密码学包括密码编码学(Cryptography)和密码分析学(Cryptanalyst)两个既对立又统一的主要分支学科。研究密码变化的规律并用之于编制密码以保护信息安全的科学,称为密码编码学。研究密码变化的规律并用之于密码以获取信息情报的科学,称为密码分析学,也叫密码破译学。 密码学在信息安全中占有非常重要的地位,能够为信息安全提供关键理论与技术。密码学是一门古老而深奥的学问,按其发展进程,经历了古典密码和现代密码学两个阶段。现代密码学(Modern Cryptology)通常被归类为理论数学的一个分支学科,主要以可靠的数学方法和理论为基础,为保证信息的机密性、完整性、可认证性、可控性、不可抵赖性等提供关键理论与技术。

古典密码算法实验 在密码编码体制中有两种基本也是古老的编码体制一直沿用至今,它们是代替密码和置换密码,其历史悠久并且是现代密码体制的基本组成部分,在密码学中占有重要地位。古典密码是密码学发展的一个阶段,也是近代密码学产生的渊源,一般把Shannon 在1949 年发表“保密系统的通信理论”之前的时期称为古典密码时期。尽管古典密码大多比较简单,一般可用手工或机械方式实现,且都可用统计分析方法破译,目前已很少采用。但是,古典密码所采用的代替技术和置换技术仍然是现代分组密码算法设计的基础,了解它们的设计原理,有助于理解、设计和分析现代密码。 一、实验目的 通过编程实现经典的代替密码算法和置换密码,包括移位密码、维吉尼亚密码、周期置换密码、列置换密码,加深对代替技术的了解,为现代分组密码实验奠定基础。 二、实验原理 代替(Substitution)是古典密码中基本的处理技巧,就是将明文字母由其他字母表中

实验六答案

实验六函数与编译预处理答案 一、断点的设置和取消、单步执行跟踪进入函数和跳出函数方法 练习 2、调试练习: 要求:模仿示例调试以下程序,直到输出正确结果,源程序名为error6_2.c 程序功能:利用函数调用求“1!+2!+3!+4!+...+10!”的值(参见实验教材72页程序填空题第(1)小题) 源程序(有错误的程序——不是语法错误,而是算法错误或逻辑错误): 改正错误后的源程序: void main() { long s=0,i; long mm(int k); for(i=1;i<=10;i++) s=s+mm(i); printf("1!+2!+3!+...+10!=%ld\n",s); } long mm(int k) { long t=1, j; for(j=1;j<=k;j++) t=t*j; return (t); } 3、综合调试、改错练习: 以下程序有多处错误,请综合运用前面所学过的所有知识和VC++的调试手段,改正程序的各种错误,使其运行出正确的结果。程序的功能是:利用函数调用求任意两个整数的和。 改正错误后的源程序:

main() { int sum(int a,int b); int x,y; scanf("%d,%d",&x,&y); printf("x=%d,y=%d\n",x,y); printf("%d+%d=%d\n",x,y,sum(x,y)); } int sum(int a,int b) { return (a+b); } 二、编程练习 利用VC++编写程序,并调试、运行,直到输出正确结果。编程练习1: 注意: 这里提供了以填空的形式出现源程序参考清单,目的是给同学们一个思路。最好不要将此源程序清单复制到VC++中,否则会出现多处语法错误。同学们可以据此思路来填写有关语句,从而完成程序。在调试程序时,一定要运用前面学过的方法。 下面函数是实现求[1,3000]能被17或23整除的整数的个数。请将程序补充完整,并调试运行,直到输出正确结果。(源文件名为blank6_1.c) 完成填空后的源程序: #include int f(int m, int n) { int i, count=0; for(i=m; i<=n; i++) if(i%17==0||i%23==0) count++; return count; } main() {int m,n; scanf("%d%d",&m,&n); printf("count=%d\n", f(m,n)); }

运算器部件实验报告

实验一运算器部件实验报告 班级姓名学号日期 一、实验目的 ●熟悉与深入理解4位运算器芯片Am2901的功能和内部组成,运行中要求 使用的控制信号及其各自的控制作用。 ●熟悉与深入理解用4片4位的运算器芯片构成16位的运算器部件的具体方 案,各数据位信号、各控制位信号的连接关系。 ●熟悉与深入理解用2片GAL20v8芯片解决ALU最低位的进位输入信号和 最高、最低位的移位输入信号、实现4位的标志位寄存器的方案,理解为什么这些功能不能在运算器芯片之内实现而要到芯片之外另外处理。 ●明确教学计算机的运算器部件,使用总计24位的控制信号就完全确定了它 的全部运算与处理功能,脱机运算器实验中可以通过24位的微型开关提供这些控制信号。 二、实验说明 脱机运算器实验,是指让运算器从教学计算机整机中脱离出来,此时,它的全部控制与操作均需通过24位的微型开关来完成,通过开关、按键控制教学机的运算器完成指定的运算功能,并通过指示灯观察运算结果。 三、实验要求 1、实验之前认真预习,写出预习报告,包括操作步骤,实验过程所用数据和运行结果等 2、实验过程当中,要仔细进行,防止损坏设备,分析可能遇到的各种现象,判断结果是否正确,记录运行结果 3、实验之后,认真写出实验报告,包括对遇到的各种现象的分析,实验步骤和实验结果,自己在这次实验的心得体会与收获。 四、实验所使用到的控制信号 AM2901所用的控制信号

1、将教学机设置为单步、16位、脱机状态下,即把教学机左下方的5个控制开关置为1XX00。 2、按一下RESET按键,进行初始化。 3、按照指定功能给出控制信号和数据信息,观察各信号指示灯状态。 4、按压START键,给出脉冲信号,观察各信号灯状态。 六、实验内容 1、下表中所列操作在教学机上进行运算器脱机实验。并将结果填入表中。 运算器功能所用到的控制信号

杭电密码学DES密码实验介绍

课程实验报告 课程密码学实验 学院通信工程学院 专业信息安全 班级14083611 学号14084125 学生姓名刘博 实验名称DES密码实验 授课教师胡丽琴

DES密码实验 一、实验要求: 1、了解分组密码的起源与涵义。 2、掌握DES密码的加解密原理。 3、用Visual C++实现DES密码程序并输出结果。 二、实验内容: 1、1949年,Shannon发表了《保密系统的通信理论》,奠定了现代密码学的基础。他还指出混淆和扩散是设计密码体制的两种基本方法。扩散指的是让明文中的每一位影响密文中的许多位,混淆指的是将密文与密钥之间的统计关系变得尽可能复杂。而分组密码的设计基础正是扩散和混淆。在分组密码中,明文序列被分成长度为n的元组,每组分别在密钥的控制下经过一系列复杂的变换,生成长度也是n的密文元组,再通过一定的方式连接成密文序列。 2、DES是美国联邦信息处理标准(FIPS)于1977年公开的分组密码算法,它的设计基于Feistel对称网络以及精心设计的S盒,在提出前已经进行了大量的密码分析,足以保证在当时计算条件下的安全性。不过,随着计算能力的飞速发展,现如今DES已经能用密钥穷举方式破解。虽然现在主流的分组密码是AES,但DES的设计原理仍有重要参考价值。在本实验中,为简便起见,就限定DES 密码的明文、密文、密钥均为64bit,具体描述如下: 明文m是64bit序列。 初始密钥K是64 bit序列(含8个奇偶校验bit)。 子密钥K1, K2…K16均是48 bit序列。 轮变换函数f(A,J):输入A(32 bit序列), J(48 bit序列),输出32 bit序列。 密文c是64 bit序列。 1)子密钥生成: 输入初始密钥,生成16轮子密钥K1, K2 (16) 初始密钥(64bit)经过置换PC-1,去掉了8个奇偶校验位,留下56 bit,接着分成两个28 bit的分组C0与D0,再分别经过一个循环左移函数LS1,得到C1与D1,连成56 bit数据,然后经过置换PC-2,输出子密钥K1,以此类推产生K2至K16。

实验六:广域网协议配置(2012最新版)

大连理工大学本科实验报告 课程名称:网络综合实验学院(系):软件学院 2012年3月22日

大连理工大学实验报告 学院(系):专业:班级: 姓名:学号:组:___ 实验时间:实验室:实验台: 指导教师签字:成绩: 实验六:广域网协议配置 一、实验目的 两台路由器之间的PPP和Frame Relay协议配置 二、实验原理和内容 1、路由器的基本工作原理 2、配置路由器的方法和命令 3、PPP的基本原理及配置 4、Frame Relay协议的基本原理及配置 三、实验环境以及设备 2台路由器、2台Pc机、双绞线若干 四、实验步骤(操作方法及思考题) {警告:路由器高速同异步串口(即S口)连接电缆时,无论插拔操作,必须在路由器电源关闭情况下进行;严禁在路由器开机状态下插拔同/异步串口电缆,否则容易引起设备及端口的损坏。} 1、请在用户视图下使用“reset saved-configuration”命令和“reboot”命令分别 将两台路由器的配置清空,以免以前实验留下的配置对本实验产生影响。2、在确保路由器电源关闭情况下,按照下图联线组建实验环境。配置IP地址, 以及配置PC 202.0.0.2 的缺省网关为202.0.0.1,PC 202.0.1.2 的缺省网关为202.0.1.1。

202.0.0.2/24202.0.1.2/24 AR18-12 AR28-11 3、在两台路由器上都启动 RIP ,目标是使两台PC 机之间能够ping 通。请将为达到此目标而在两台路由器上执行的启动RIP 的命令写到实验报告中。你们的两台PC 机之间ping 通了吗?在缺省情况下,两台路由器的串口之间使用的是哪种广域网协议?(15分) 答: AR18-12: [RA]rip [RA-rip]network all AR28-11: [RB]rip [RB-rip]network 0.0.0.0 缺省情况下,两台路由器之间使用PPP 协议。ping 通截图如下: 4、PPP 协议PAP 验证配置: (1) 配置AR18-12为验证方,AR28-11为被验证方,然后测试两台PC 机 之间是否能够ping 通。请将在两台路由器上执行的配置命令写到实验报告中。(15分) 答:

实验一:运算器实验

《计算机组成原理》 实验报告实验一:运算器实验 学院: 专业: 班级学号: 学生姓名: 实验日期: 指导老师: 成绩评定: 计算机学院计算机组成原理实验室

实验一 一、实验名称:运算器实验 二、实验目的: 1、掌握运算器的组成及工作原理; 2、熟悉ALU执行算术运算与逻辑运算的具体实现过程; 3、掌握ALU 算术与逻辑运算的控制方法 三、实验内容: 1、两8位操作数的算术运算及进位影响 2、两8位操作数的逻辑运算及进位影响 3、不同控制组合下的算术与逻辑运算的输出结果 四、实验设备: EL-JY-II型计算机原理实验系统 五、实验步骤: 1、在系统断电的情况下,按实验指导书接线图完成本次实验的接线; 2、系统上电,拨动清零开关,系统清零; 3、从数据输入开关电路输入第一个8位数据,开放数据总线,使数据进入暂存寄存器A; 4、从数据输入开关电路输入第二个8位数据,开放数据总线,使数据进入暂存寄存器B; 5、关闭数据输入开关,开启ALU输出,检查两个8位数据正确与否,有错通过步骤3改正; 6、拨动功能选择端S3,S2,S1,S0 进行算术运算,记录ALU输出结果; 7、重复步骤6,直到S3,S2,S1,S0所有组合(16种)被完成; 8、对实验结果进行检查,如有错误,找出原因,重做实验,直到正确为止。 六、实验结果 整个实验记录的实验结果如下:

七、分析讨论 S0, S1,S2,S3是功能选择控制端,决定是做加、减、逻辑与、逻辑或、逻辑异或、移位等运算,表一的实验结果与手工验算完全一致,从而验正了整个ALU的算术/逻辑运算功能和移位处理功能。灵活运用S0,S1,S2,S3的不同组合可以实现许多其它功能,如通过移位运算可以实现数据的乘2(左移一位)和除2运算(右移一位),此外选择S3S2S1S0=0000或S3S2S1S0=0001将操作数A 或B可以直接送到ALU的输出,这样可以直接验证输入数据是否正确。本次实验通过算术加法运算观察到对进位位FC和零标志FZ的影响,和手工验算的结果一致。实验也涉及到了数据总线,总线有三个性质:公共性、驱动性和三态性,在数据输入时利用控制开关来控制三态,有效时输出数据,无效时数据输入缓冲器呈高阻(相当断开)与数据总线隔离;公共性是总线的最根本的属性,所有传输的数据都通过共享数据线分时完成的,何时完成靠控制信号来区分,如输入的两个8位数据就是通过数据总线分两次(分时)传送的。(不少于100字) 八、心得体会 这是计算机组成原理的第一个实验,虽然还有点陌生,但基本熟悉了整个实验系统的基本结构,了解了该实验装置按功能分成几大区,学会何时操作各种开关、按键。最重要的是通过实验掌握了运算器工作原理,熟悉了算术/逻辑运算的运算过程以及控制这种运算的方法,了解了进位对算术与逻辑运算结果的影响,对时序是如何起作用的没太弄清楚,相信随着后续实验的进行一定会搞清楚的。 (蓝色字部分学生根据具体实验的实验指导书及实验内容和过程自己填写)

密码学实验报告

《—现代密码学—》 实验指导书 适用专业:计算机科学与技术 江苏科技大学计算机科学学院 2011年11 月 实验一古典密码 实验学时:2学时 实验类型:验证 实验要求:必修 一、实验目的

编程实现古典密码的加解密方法。 二、实验内容 (1)移位密码的加密和解密函数。 (2)仿射密码的加密和解密函数。 (3)维吉尼亚密码的加密和解密函数。 三、实验原理、方法和手段 (1)移位密码 对于明文字符x ,加密密钥k ,加密方法为 ,1,2,,25y x k k =+= 解密方法为 ,1,2,,25x y k k =-= (2)仿射密码 对于明文字符x ,加密密钥(,)a b ,加密方法为 ,gcd(,26)1,1,2,,25y ax b a b =+== 解密方法为 1()x a y b -=- (3)维吉尼亚密码 选取密钥字Key ,将明文按照密钥字长度分组,将明文与密钥字对应字符相加并对26求余,即为密文字符。 i i i y x k =+ 解密过程为 i i i x y k =- 四、实验组织运行要求 本实验采用集中授课形式,每个同学独立完成上述实验要求。 五、实验条件 每人一台计算机独立完成实验,有如下条件: (1)硬件:微机;

(2)软件:VC++6.0、VC++.Net 2005。 六、实验步骤 (1)将各函数编写完成; (2)在主函数中调用各函数,实现加密和解密。 七、实验报告 实验报告主要包括实验目的、实验内容、实验原理、源程序及结果。移位密码加密: #include #define n 3 //移位位数 void change(char string[]) { int i; for(i=0;string[i]!='\0';i++) { if(string[i]>='a'&&string[i]<='z') string[i]=(string[i]+n>='z'?string[i]+n-26:string[i]+n); } } void main() { char str[100]; printf("请输入一段明文"); gets(str); change(str); printf("密文为:\n"); puts(str); }

实验六压缩试验

实验六 压缩试验(快速法) 1 试验目的 测定土的湿密度、含水率,计算土样干密度、初始孔隙比,并用此密度、含水率条件下的试样进行压缩试验,根据试验数据绘制孔隙比与压力的关系曲线(即压缩曲线),确定土的压缩系数、压缩模量,评价土体的压缩性。 ⑴掌握以磅秤式(或杠杆式)加压设备测定土压缩系数的方法,并根据试验数据绘制孔隙比与压力的关系曲线(即压缩曲线); ⑵根据求得的压缩系数21-a 评定土的压缩性。 2 试验方法 ⑴密度试验——环刀法; ⑵含水率试验——烘干法; ⑶压缩试验——快速固结试验法。 3 试验原理 土样在外力作用下便产生压缩,其压缩量的大小是与土样上所加的荷重大小以及土样的性质有关。如在相同的荷重作用上,软土的压缩量就大,而坚密的土则压缩量小;又如在同一种土样的条件下,压缩量随着荷重的加大而增加。因此,我们可以在同一种土样上,施加不同的荷重,一般情况下,荷重分级不宜过大。视土的软硬程度及工程情况可取为12.5、25、50、100、200、300、400、600、800 kPa 等。最后一级荷重应大于土层计算压力的100~200kPa 。这样,便可得不同的压缩量,从而可以算出相应荷重时土样的孔隙比。如图6-1可见,当土样在荷重P 1作用下,压缩量为h ?。一般认为土样的压缩主要由于土的压密使孔隙减少产生的。因此,与未加荷前相比,可得:10e e h -=?。 而土样在荷重P 1作用下产生的应变为 h h ?= ε,从图6-1可得: ) 1(100 100 1 00e h h e e e e e h h +?=-+-=? 式中:1e ——在荷重P 1作用下,土样变形稳定时的孔隙比; 0e 、0 h ——分别为原始土样的孔隙比和高度; h ?——在荷重P 1作用下,土样变形稳定时的压缩量。

计算机组成原理实验1-运算器

《计算机组成原理》 实验报告 实验一运算器实验

一、实验目的 1.掌握运算器的组成及工作原理; 2.了解4位函数发生器74LS181的组合功能,熟悉运算器执行算术操 作和逻辑操作的具体实现过程; 3.验证带进位控制的74LS181的功能。 二、实验环境 EL-JY-II型计算机组成原理实验系统一套,排线若干。 三、实验内容与实验过程及分析(写出详细的实验步骤,并分析实验结果) 实验步骤:开关控制操作方式实验 1、按图1-7接线图接线: 连线时应注意:为了使连线统一,对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。 图1-1 实验一开关实验接线图 2、通过数据输入电路的拨开关开关向两个数据暂存器中置数: 1)拨动清零开关CLR,使其指示灯。再拨动CLR,使其指示灯亮。置ALU-G =1:关闭ALU的三态门;再置C-G=0:打开数据输入电路的三态门; 2)向数据暂存器LT1(U3、U4)中置数:

(1)设置数据输入电路的数据开关“D15……D0”为要输入的数值; (2)置LDR1=1:使数据暂存器LT1(U3、U4)的控制信号有效,置LDR2=0:使数据暂存器LT2(U5、U6)的控制信号无效; (3)按一下脉冲源及时序电路的【单脉冲】按钮,给暂存器LT1送时钟,上升沿有效,把数据存在LT1中。 3)向数据暂存器LT2(U5、U6)中置数: (1)设置数据输入电路的数据开关“D15……D0”为想要输入的数值; (2)置LDR1=0:数据暂存器LT1的控制信号无效;置LDR2=1:使数据暂存器LT2的控制信号有效。 (3)按一下脉冲源及时序电路的“单脉冲”按钮,给暂存器LT2送时钟,上升沿有效,把数据存在LT2中。 (4)置LDR1=0、LDR2=0,使数据暂存器LT1、LT2的控制信号无效。 4)检验两个数据暂存器LT1和LT2中的数据是否正确: (1)置C-G=1,关闭数据输入电路的三态门,然后再置ALU-G=0,打开ALU 的三态门; (2)置“S3S2S1S0M”为“F1”,数据总线显示灯显示数据暂存器LT1中的数,表示往暂存器LT1置数正确; (3)置“S3S2S1S0M”为“15”,数据总线显示灯显示数据暂存器LT2中的数,表示往暂存器LT2置数正确。 3、验证74LS181的算术和逻辑功能: 按实验步骤2往两个暂存器LT1和LT2分别存十六进制数“1234H”和“5678H”,在给定LT1=1234H、LT2=5678H的情况下,通过改变“S3S2S1S0MCn”的值来改变运算器的功能设置,通过数据总线指示灯显示来读出运算器的输出值F,填入上表中,参考表1-1的功能表,分析输出F值是否正确。分别将“AR”开关拨至“1”和“0”的状态,观察进位指示灯“CY”的变化并分析原因。 实验结果表为:

相关文档