本文目录
说在前面
工具:TEC-8计算机硬件综合实验系统
电路图:
注:为了保证跟步骤详情绝对能走通,我们需要在每一个任务前都进行初始化操作,即全部置为0。
实验任务
- 将75H,28H,89H,32H写入寄存器R0,R1,R2,R3中
- 将寄存器R0,R1,R2,R3数据存入存储单元20H,21H,22H,23H中
- 从20H,21H,22H,23H中的数从R3,R2,R1,R0中读出
实验步骤(原理+实际操作)
涉及的全部信号和信号灯
序列号 | 信号 | 解释 |
---|---|---|
1 | M、S3、S2、S1、S0 | 控制 74LS181的算术逻辑运算类型。 |
2 | CIN | 低位 74LS181的进位输入。 |
3 | RD1 RDO | 选择送 ALU的A端口的寄存器和被写入的寄存器。 |
4 | RS1 RS0 | 选择送往 ALU的B端口的寄存器。 |
5 | DRW | =1时,在T3上升沿对 RD1、RD0 选中的寄存器进行写操作,将数据总线 DBUS 上的数 D7~D0 写入选定的寄存器。 |
6 | ABUS | =1时,将运算结果送数据总线 DBUS, =0时,禁止运算结果送数据总线 DBUS。 |
7 | SBUS | =1时,将运算结果送数据总线 DBUS, =0时,禁止运算结果送数据总线 DBUS。 |
8 | A7~AO | 送往 ALU 的 A端口的数。 |
9 | B7~BO | 送往 ALU 的 B端口的数。 |
10 | D7~DO | 数据总线 DBUS上的8位数。 |
11 | MBUS | =1时,将双端口RAM 的左端口数据送到数据总线DBUS |
12 | MEMW | =1时,在T2为1期间将数据总线DBUS上的D7-D0写入双端口 RAM,写入的存储器单元由 AR7~AR0 指定。 |
13 | LPC | =1时,在T3的上升沿,将数据总线DBUS上的D7~DO写入程序计数器 PC。 |
14 | PCINC | =1 时,在 T3 的上升沿PC 加 1。 |
15 | LAR | =1时,在T3的上升沿,将数据总线DBUS上的D7~D0写入地址寄存器 AR。 |
16 | ARINC | =1时,在T3 的上升沿,AR 加 1。 |
17 | SBUS | =1时,数据开关 SD7~SD0的数送数据总线 DBUS。 |
18 | AR7~ARO | 双端口 RAM 左端口存储器地址。 |
19 | PC7~PCO | 双端口 RAM 右端口存储器地址。 |
20 | INS7~INSO | 从双端口 RAM 右端口读出的指令,本实验中作为数据使用。 |
21 | QD | 启动脉冲按钮 |
任务1:对四个寄存器进行写数据操作
流程解释
在电路图中,SD7-SD0为输入的数据。通过SWD,输入的数据进入数据总线DBUS。RD1,RD0做为2-4译码器的输入,表示的意思是进行寄存器的选择,例如00表示的是选择R0寄存器。DRW控制着寄存器的写操作。通过RD1,RD0选择寄存器,并让寄存器处于写状态,打开脉冲,可让数据总线上的数据写入对应的寄存器。
涉及的模块和需要连接的线路
涉及电路图上的SWD、R0-R3寄存器和2-4译码器。
只需连接:SBUS,DRW,RD1,RD0
实操步骤详解
全局设置为SBUS=1,DRW=0
1. SD7-SD0输入75H的二进制数0111 0101B
2. SBUS:1
3. RD1,RD0:00,DRW:1
4. 按下QD按钮
//1-4步目的是将75H存入R0寄存器中
5. SD7-SD0输入28H的二进制数0010 1000B
6. RD1,RD0:01
7. 按下QD按钮
//5-7步目的是将28H存入R1寄存器中
8. SD7-SD0输入89H的二进制数1000 1001B
9. RD1,RD0:10
10. 按下QD按钮
//8-10步目的是将89H存入R2寄存器中
11. SD7-SD0输入32H的二进制数0011 0010B
12. RD1,RD0:11
13. 按下QD按钮
//11-13步目的是将32H存入R3寄存器中
任务2:将寄存器数据存入RAM中
流程解释
寄存器R0通过4选1选择器A进入运算器ALU中,在ALU选择将输出结果等于输入数A的命令,将R0的数值通过ALU的输出进入DBUS中。再告诉RAM存储地址值,将DBUS上的数据存入对应的地址中。
涉及的模块和需要连接的线路
电路图上涉及的模块:R0-R3寄存器,2-4译码器,4选1选择器,运算器ALU,地址寄存器AR,程序计数器PC,双端口存储器RAM,SWD
只需连接:SBUS,LAR,LPC,ARINC,PCINC,RD1,RD0,M,S3-S0,CIN,ABUS(ABUS和SBUS互斥),MEMW
实验步骤详解
Step1: 将存储地址值20H存入AR和PC中
//这一步只涉及SWD和AR、PC三个模块
1. SD7-SD0输入20H的二进制值0010 0000B
2. SBUS=1,LAR,LPC=1,ARINC PCINC=0
3. 按下QD按钮
Step2:将寄存器数据存入RAM中
全局设置:M、S0、S1、S2、S3=1,CIN=0,MEMW=1
//这一步只涉及寄存器、译码器、选择器、ALU、RAM
1. 把前一个步骤的SBUS、LAR、LPC均置为0,ARINC、PCINC置为1
2. RD1、RD0=00
3. M、S0、S1、S2、S3=1,CIN=0 //这一步是给出了F=A的指令,让ALU输出A值到DBUS上
4. MEMW=1
5. 按下QD按钮
//这里过程是先将DBUS上的数据存入20H存储单元上,再进行存储地址自加一
//所以在AR7-AR0和INS7-INS0所表示的都和21H相关,看到不对不用担心。
//显示信号看:
//D7-D0表示DBUS上的数据,AR7-AR0表示AR中数值,也是RAM当前所指的存储单元地址值
//INS7-INS0在这里表示的是RAM所指存储单元的内容
6. RD1、RD0=01
7. 按下QD按钮
8. RD1、RD0=10
9. 按下QD按钮
10. RD1、RD0=11
11. 按下QD按钮
任务3:将RAM数据在寄存器中读出
流程解释
就是将RAM的数据输出到数据总线上,再将数据写入到寄存器中。
涉及的模块和需要连接的线路
电路图上涉及的模块:RAM(AR、PC)、R0、R1、R2、R3
只需连接:MBUS、DRW、ARINC、PCINC(SBUS、LAR、LPC)
实验步骤详解
Step1: 将存储地址值20H存入AR和PC中
//这一步只涉及SWD和AR、PC三个模块
1. SD7-SD0输入20H的二进制值0010 0000B
2. SBUS=1,LAR,LPC=1,ARINC PCINC=0
3. 按下QD按钮
Step2: 将RAM数据在寄存器中读出
//这一步只涉及RAM和四个寄存器
1. 把上一步的SBUS、LAR、LPC均置0,ARINC、PCINC置1
2. MBUS=1 //20H的值已经输出到DBUS上
3. RD1 RD0=11
4. 按下QD键
//这里是先将数据写入R3,再对存储地址进行自加一操作
5. RD1 RD0=10
6. 按下QD键
7. RD1 RD0=01
8. 按下QD键
9. RD1 RD0=00
10.按下QD键
Step3: 检查寄存器中的数据
10. RD1 RD0分别取00,01,10,11的值,在A7-A0中查看数值是否对上。
总结
这个实验考察你是否能通过电路图了解数据是如何流通的。