
是来自平时学习积累总结的
有问题的地方肯定有的
还请大家批评指正!
实验四 8位算术逻辑运算
一、实验目的
1、掌握算术逻辑运算器单元ALU(74LS181)的工作原理
2、掌握简单运算器的数据传送通路组成原理
3、验证算术逻辑运算功能发生器74LSl8l的组合功能
4、按给定数据
完成实验指导书中的算术/逻辑运算
二、实验内容
1、实验原理
实验中所用的运算器数据通路如图1.1所示
其中运算器由两片74LS181以并/串形成8位字长的ALU构成
运算器的输出经过一个三态门74LS245 (U33)到ALUO1插座
实验时用8芯排线和内部数据总线BUSD0~D7插座BUSl~6中的任一个相连
内部数据总线通过LZDO~LZD7显示灯显示;运算器的两个数据输入端分别由二个锁存器74LS273(U29、U30)锁存
两个锁存器的输入并联后连至插座ALUBUS
实验时通过8芯排线连至外部数据总线EXD0~D7插座EXJl~EXJ3中的任一个;参与运算的数据来自于8位数据开并KD0~KD7
并经过一三态门74LS245(U51)直接连至外部数据总线EXD0~EXD7
通过数据开关输入的数据由LD0~LD7显示
图1.1中算术逻辑运算功能发生器74LS18l(U3l、U32)的功能控制信号S3、S2、Sl、S0、CN、M并行相连后连至SJ2插座
实验时通过6芯排线连至6位功能开关插座UJ2
以手动方式用二进制开关S3、S2、S1、S0、CN、M来模拟74LSl8l(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M;其它电平控制信号LDDRl、LDDR2、ALUB'、SWB'以手动方式用二进制开关LDDRl、LDDR2、ALUB、SWB来模拟
这几个信号有自动和手动两种方式产生
通过跳线器切换
其中ALUB'、SWB'为低电平有效
LDDRl、LDDR2为高电平有效
另有信号T4为脉冲信号
在手动方式下进行实验时
只需将跳线器J23上T4与手动脉冲发生开关的输出端SD相连
按动手动脉冲开关
即可获得实验所需的单脉冲
2、实验接线
本实验用到4个主要模块:
(1)低8位运算器模块
(2)数据输入并显示模块
(3)数据总线显示模块
(4)功能开关模块(借用微地址输入模块)
根据实验原理详细接线如下:
(1)ALUBUS连EXJ3;
(2)ALU01连BUSl;
(3)SJ2连UJ2;
(4)跳线器J23上T4连SD;
(5)LDDRl、LDDR2、ALUB、SWB四个跳线器拨在左边(手动方式);
(6)AR跳线器拨在左边
同时开关AR拨在"1"电平
3、实验步骤
(1)连接线路
仔细查线无误后
接通电源
(2)用二进制数码开关KD0~KD7向DRl和DR2寄存器置数
方法:关闭ALU4输出三态门(ALUB'=1)
开启输入三态
门(SWB'=0)
输入脉冲T4按手动脉冲
发生按钮产生
设置数据开关具体操作步骤图示如下:
说明:LDDRl、LDDR2、ALUB'、SWB'四个信号电平由对应的开关LDDRl、
LDDR2、ALUB、SWB给出
拨在上面为"1"
拨在下面为"0"
电平值由对应的显示灯显示
T4由手动脉冲开关给出
(3)检验DRl和DR2中存入的数据是否正确
利用算术逻辑运算功能发生器74LSl 8l的逻辑功能进行验算
即M=1
具体操作如下:关闭数据输入三态门SWB'=1
打开ALU输出三态门ALUB'=0
当置S3、S2、S1、S0、M为11111时
总线指示灯显示DR1中的数
而置成10101时总线指示灯显示DR2中的数
(4)验证74LSl81的算术运算和逻辑运算功能(采用正逻辑)
在给定DRl=35、DR2=48的情况下
改变算术逻辑运算功能发生器的功能设置
观察运算器的输出
填入实验报告表中
并和理论分析进行比较、验证
三、实验电路
本实验中使用的运算器数据通路如图1.1所示
四、74LS181功能表
实验中用到的运算器74LS181功能表如表1.1所示
表1.1 运算器74LS181功能表(正逻辑)
4位ALU
S3 S2 S1 S0
M=0(算数运算)
M=1
(逻辑运算)
Cn=1
无进位
Cn=0
有进位
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
F=A
F=A+B
F=A+B
F=减1
F=A加(A*B)
F=(A+B)加(A*B)
F=A减B减1
F=(A*B)减1
F=A加A*B
F=A加B
F=(A+B)加A*B
F=A*B减1
F=A加A
F=(A+B)加A
F=(A+B)加A
F=A减1
F=A加1
F=(A+B)加1
F=(A+ B)加1
F=0
F=A加(A*B)加1
F=(A+B)加(A* B)加1
F=A减B
F=(A*B)
F=A加A*B加1
F=A加B加1
F=(A+ B)加A*B加1
F=A*B
F=A加A加1
F=(A+B)加A加1
F=(A+ B)加A加1
F=A
F= A
F=(A+B)
F= A*B
F=0
F= (A*B)
F= B
F=(A⊕B)
F=(A* B)
F= A+B
F= (A⊕B)
F=B
F=A*B
F=1
F=A+B
F=A+B
F=A
其中:"+"表示或运算;"*"表示与运算;"⊕"表示异或运算
五、实验数据
1、实验数据记录
加数1
DR1
加数2
DR2
S3 S2 S1 S0
M=0(算术运算)
M=1
(逻辑运算)
Cn=1
无进位
Cn=0
有进位
35
48
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
F=
六、思考题
1、在向DR1和DR2寄存器置数时S3、S2、S1、S0、M、Cn如何设置?
2、DR1置数完成后
如果不关闭控制端
LDDR1会怎样?
3.为什么在读取74LS181的输出结果时要打开输出三态门的控制端ALUB' ?
