算术逻辑运算实验

  • 格式:doc
  • 大小:102.50 KB
  • 文档页数:4

算术逻辑运算实验

实验目的:

(1) 了解运算器的组成与结构。

(2) 掌握运算器的工作原理。

(3) 学习运算器的设计方法。

(4) 掌握简单运算器的数据传输通路。

(5) 验证运算功能发生器74LS181的组合功能。

实验仪器设备:

TDN-CM+或者TDN-CM++教学试验系统一套和导线若干。

实验原理:

图1 运算器通路图

运算器数据通路图如图1。图中运算器主要由两片74LS181(功能见表1)芯片并/串形式构成,实现数据的运算,是运算器核心部件为。图中是8位字长的运算器,其中左边为高4位,右边为低4位。低位片的进位输出端Cn+4与高位的Cn相连,使进位可以输入高位片。

数据存储由DR1与DR2两个寄存器分别寄存,由锁存器74LS273实现。高电平有效。其控制端分别为LDDR1与LDDR2。当T4脉冲到达时总线上的数据就被锁存进DR1与DR2中。

数据输出是在输出端连接一个三态门(用74LS245实现),当三态门控制端ALU-B为低电平的时候,运算结果即可以输出到总线。否则为高阻态。

数据输入(实验板上INPUT DEVICE部分)用以给出参与运算的数据。由一个三态门(74LS245)控制输入。输入开关经三态门与内总线相连,当其控制信号SW-B为低电平的时,数据通过三态门送入内总线。

T4为脉冲信号,需要连接到“STATE UNIT”单元中的微动开关KK2。

S3、S2、S1、S0、Cn、M、LDDR1、LDDR2、ALU-B、SW-B各电平控制信号使用“SWITCH UNIT”单元中的二进制数据开关模拟,其中Cn、ALU-B、SW-B为低电平有效,LDDR1、LDDR2为高电平有效。

对于单总线的数据通路,实验时要分时控制总线,即当数据输入时(DR1、与DR2工作寄存器送入数据时),数据开关三态门打开(SW-B=0),同时保证运算输出三态门关闭(ALU-B=1);同样,当输出结果至总线时,数据输出三态门处于打开(ALU-B=0),同时保证数据输入三态门处于关闭(SW-B=1)状态。

实验步骤:

实验中所用数据为:

A=65)16 =01100101)2,B=A7)2 =10100111)2,C=61)16=01100001)2。

主要运算为A+B和A+B-C。

步骤

(1)按图2连接实验电路并检查无误。

(2)打开电源开关。

(3)用输入开关向暂存器DR1置数。 1.拨动输入开关形成二进制数01100101(数据显示:灯亮为0,灯灭为1)。

2.使SWITCH UNIT单元中的开关SW-B=0(打开数据输入三态门)、ALU-B=1(关闭ALU输出三态门)、LDDR1=1、LDDR2=0。

3.按动微动开关KK2,则将二进制数01100101置入DR1中。

(4)用输入开关向暂存器DR2置数。

1.拨动输入开关形成二进制数10100111。

2.SW-B=0、ALU-B=1保持不变,改变LDDR1,LDDR2,使LDDR1=0、LDDR2=1。

3.按动微动开关KK2,将二进制数10100111置入DR2中。

(5)检验DR1和DR2中存的数是否正确。

1.关闭输入数据三态门(SW-B=1),打开ALU输出三态门(ALU-B=0),并使LDDR1=0、LDDR2=0,关闭寄存器。

2.置S3、S2、S1、S0、M为1、1、1、1、1,总线显示灯显示DR1中的数。

3.置S3、S2、S1、S0、M为1、0、1、0、1,总线显示灯显示DR2中的数。

(6)改变运算器的功能设置,观察运算器的输出。

1.SW-B=1,ALU-B=0保持不变。

2.按表1置S3、S2、S1、S0、M、Cn的数值,并观察总线显示灯的显结果。

3.置S3、S2、S1、S0、M、Cn为1、0、0、1、0、1,运算器进行无进位加法运算(至此进行了A+B的和运算)。

4.使LDDR1=1、LDDR2=0,同时保证SW-B=1,ALU-B=0保持不变。按动微动开关KK2,将A+B的结果00001100置入DR1中。(为多步运算做准备)

(7)用输入开关向暂存器DR2置数。

1.拨动输入开关形成二进制数01100001。

2.使SW-B=0、ALU-B=1(关闭ALU输出三态门),LDDR1=0、LDDR2=1。

3.按动微动开关KK2,则将二进制数01100001置入DR2中。

(8)改变运算器的功能设置,观察运算器的输出。

1.SW-B=1,ALU-B=0保持不变。

2.置S3、S2、S1、S0、M、Cn为0、1、1、0、0、0,运算器进行有进位减法运算(至此进行了A+B-C的运算)。结果为10101011.

实验数据

M=0 M=1

DR1 DR2 S3 S2 S1 S0 Cn=1 Cn=0

65 A7 0 0 0 0 65 66 9A

65 A7 0 0 0 1 E7 E8 18

65 A7 0 0 1 0 7D 7E 82 这三步为验证

65 A7 0 0 1 1 FF 00 00

65 A7 0 1 0 0 58 59 25

65 A7 0 1 0 1 28 29 A7 这三步为自己的计算

0C 61 0 1 1 0 AB 这步为A+B-C中的“-C”

65 A7 1 0 0 1 0C 这步为A+B

实验总结

完成A+B-C操作后,

总线显示灯最后的结果为暗、亮、暗、亮、暗、亮、暗、暗,即运算器最后输出的结果为10101011。完成了01100101+10100111-01100001=10101011运算。 以上结果跟理论计算的结果是一致,从而验证了运算器输出的正确性。

如果要进行更多步的运算(比如说A+B-C+D),只要重复步骤(6)的第4步以后的步骤即可。(多几步就重复几次)

通过这次实验我成功验证运算功能发生器74LS181的组合功能,对运算器的组成结构和工作原理有了一定的认识。

问题讨论

1. 在实验中必须要注意控制信号的发生时机和分时控制,其中一定要区分74LS181、74LS245和74LS273有效时候的电平情况。74LS273是高电平有效,其他的两块芯片为低电平有效。否则会造成数据输入有误,结果出错。

2. 在进行多步运算时要注意前一步运算结果的保存位置是DR1还是DR2,一定要根据自己所写的运算式一致。否则会使结果出错。

图2