计算机组成原理实验三 数据寄存器组R0..R3, MAR, ST, OUT

  • 实验目的和要求

目的:了解模型机中各种寄存器结构、工作原理及其控制方法。

要求:利用CP226 实验系统上的K16..K23 开关做为DBUS 的数据,其它开关做为控制信号,将数据写入寄存器,数据寄存器组R0..R3,地址寄存器MAR,堆栈寄存器ST,输出寄存器OUT。

  • 实验环境

Cp226 实验仪

  • 实验内容与过程

【实验涉及的电路及原理】

实验1:R0,R1,R2,R3 寄存器实验

实验内容:

连接线表

|----|--------|--------|-----------------------|---------|
| 连接 | 信号孔 | 接入孔 | 作用 | 状态说明 |
| 1 | J1座 | J3座 | 将K23-K16接入DBUS[7:0] | 实验模式:手动 |
| 2 | RRD | K11 | 寄存器组读使能 | 低电平有效 |
| 3 | RWR | K10 | 寄存器组写使能 | 低电平有效 |
| 4 | SB | K1 | 寄存器选择B | |
| 5 | SA | K0 | 寄存器选择A | |
| 6 | CK | 已连 | 寄存器工作脉冲 | 上升沿打入 |
| 7 | D7..D0 | L7..L0 | 观察寄存器数据输出 | |

将11H写入R0寄存器

二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据AAH

|-----|-----|-----|-----|-----|-----|-----|-----|
| K23 | K22 | K21 | K20 | K19 | K18 | K17 | K16 |
| 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |

置控制信号为:

|----------|----------|--------|--------|
| K11(RRD) | K10(RWR) | K1(SB) | K0(SA) |
| 1 | 0 | 0 | 0 |

按住STEP 脉冲键,CK 由高变低,这时寄存器R0 的黄色选择指示灯亮,表明选择R0 寄存器。放开STEP键,CK由低变高,产生一个上升沿,数据AAH 被写入R0 寄存器。

将29H写入R1寄存器

二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据29H

|-----|-----|-----|-----|-----|-----|-----|-----|
| K23 | K22 | K21 | K20 | K19 | K18 | K17 | K16 |
| 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |

置控制信号为:

|----------|----------|--------|--------|
| K11(RRD) | K10(RWR) | K1(SB) | K0(SA) |
| 1 | 0 | 0 | 1 |

按住STEP 脉冲键,CK 由高变低,这时寄存器R1 的黄色选择指示灯亮,表明

择R1 寄存器。放开STEP键,CK由低变高,产生一个上升沿,数据29H被写入R1 寄存器。

将63H写入R2寄存器

二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据63H

|-----|-----|-----|-----|-----|-----|-----|-----|
| K23 | K22 | K21 | K20 | K19 | K18 | K17 | K16 |
| 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |

置控制信号为:

|----------|----------|--------|--------|
| K11(RRD) | K10(RWR) | K1(SB) | K0(SA) |
| 1 | 0 | 1 | 0 |

按住STEP 脉冲键,CK 由高变低,这时寄存器R2 的黄色选择指示灯亮,表明选择R2 寄存器。放开STEP键,CK由低变高,产生一个上升沿,数据63H被写入R2 寄存器。

将44H写入R3寄存器

二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据44H

|-----|-----|-----|-----|-----|-----|-----|-----|
| K23 | K22 | K21 | K20 | K19 | K18 | K17 | K16 |
| 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |

置控制信号为:

|----------|----------|--------|--------|
| K11(RRD) | K10(RWR) | K1(SB) | K0(SA) |
| 1 | 0 | 1 | 1 |

按住STEP 脉冲键,CK 由高变低,这时寄存器R3 的黄色选择指示灯亮,表明选择R3 寄存器。放开STEP键,CK由低变高,产生一个上升沿,数据44H被写入R3 寄存器。

读R0寄存器

置控制信号为:

|----------|----------|--------|--------|
| K11(RRD) | K10(RWR) | K1(SB) | K0(SA) |
| 0 | 1 | 0 | 0 |

这时寄存器R0 的红色输出指示灯亮,R0 寄存器的数据送上数据总线。此时数据总线指示灯L7... L0为:00010001. 将K11(RRD)置为1,关闭R0 寄存器输出。

读R1寄存器

置控制信号为:

|----------|----------|--------|--------|
| K11(RRD) | K10(RWR) | K1(SB) | K0(SA) |
| 0 | 1 | 0 | 1 |

这时寄存器R1 的红色输出指示灯亮,R1 寄存器的数据送上数据总线。此时数据总线指示灯L7... L0为: 00100010. 将K11(RRD)置为1, 关闭R1 寄存器输出。

读R2寄存器

置控制信号为:

|----------|----------|--------|--------|
| K11(RRD) | K10(RWR) | K1(SB) | K0(SA) |
| 0 | 1 | 1 | 0 |

这时寄存器R2 的红色输出指示灯亮,R2 寄存器的数据送上数据总线。此时数据总线指示灯L7... L0为: 00110011. 将K11(RRD)置为1, 关闭R2 寄存器输出。

读R3寄存器

置控制信号为:

|----------|----------|--------|--------|
| K11(RRD) | K10(RWR) | K1(SB) | K0(SA) |
| 0 | 1 | 1 | 1 |

这时寄存器R3 的红色输出指示灯亮,R3 寄存器的数据送上数据总线。此时数据总线指示灯L7... L0为: 01000100. 将K11(RRD)置为1, 关闭R3 寄存器输出。

实验2:MAR 地址寄存器,ST 堆栈寄存器,OUT输出寄存器

寄存器MAR原理图

寄存器ST原理图

寄存器OUT原理图

连接线表

|----|-------|-----|---------------------|---------|
| 连接 | 信号孔 | 接入孔 | 作用 | 状态说明 |
| 1 | J2座 | J3座 | 将K23-16接入DBU[7:0] | 实验模式:手动 |
| 2 | MAROE | K14 | MAR地址输出使能 | 低电平有效 |
| 3 | MAREN | K15 | MAR寄存器写使能 | 低电平有效 |
| 4 | STEN | K12 | ST寄存器写使能 | 低电平有效 |
| 5 | OUTEN | K13 | OUT寄存器写使能 | 低电平有效 |
| 6 | CK | 已连 | 寄存器工作脉冲 | 上升沿打入 |

将72H写入MAR寄存器

二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据72H

|-------|-------|-------|-------|-------|-------|-------|-------|
| K23 | K22 | K21 | K20 | K19 | K18 | K17 | K16 |
| 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 |

置控制信号为:

|------------|------------|------------|-----------|
| K15(MAREN) | K14(MAROE) | K13(OUTEN) | K12(STEN) |
| 0 | 0 | 1 | 1 |

按住STEP脉冲键,CK由高变低,这时寄存器MAR的黄色选择指示灯亮,表明选择MAR寄存器。放开STEP键,CK由低变高,产生一个上升沿,数据72H被写入MAR寄存器。

K14(MAROE)为0, MAR寄存器中的地址输出,MAR 红色输出指示灯亮。

将K14(MAROE)置为1,关闭MAR输出。

将34H写入ST寄器

二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据34H

|-------|-------|-------|-------|-------|-------|-------|-------|
| K23 | K22 | K21 | K20 | K19 | K18 | K17 | K16 |
| 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |

置控制信号为:

|------------|------------|------------|-----------|
| K15(MAREN) | K14(MAROE) | K13(OUTEN) | K12(STEN) |
| 1 | 1 | 1 | 0 |

按住STEP 脉冲键,CK 由高变低,这时寄存器ST 的黄色选择指示灯亮,表明选择ST 寄存器。放开STEP键,CK由低变高,产生一个上升沿,数据34H被写入ST 寄存器。

将56H写入OUT寄存器

二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据56H

|-----|-----|-----|-----|-----|-----|-----|-----|
| K23 | K22 | K21 | K20 | K19 | K18 | K17 | K16 |
| 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 |

置控制信号为:

|------------|------------|------------|-----------|
| K15(MAREN) | K14(MAROE) | K13(OUTEN) | K12(STEN) |
| 1 | 1 | 0 | 1 |

按住STEP 脉冲键,CK 由高变低,这时寄存器OUT 的黄色选择指示灯亮,表明选择OUT 寄存器。放开STEP 键,CK 由低变高,产生一个上升沿,数据56H 被写入OUT寄存器。

  • 实验结果与分析

1. 将19H写入R0寄存器。

|-----|-----|-----|-----|-----|-----|-----|-----|----------|----------|--------|--------|
| K23 | K22 | K21 | K20 | K19 | K18 | K17 | K16 | K11(RRD) | K10(RWR) | K1(SB) | K0(SA) |
| 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |

置控制信号为:

|----------|----------|--------|--------|
| K11(RRD) | K10(RWR) | K1(SB) | K0(SA) |
| 1 | 0 | 0 | 0 |

2. 将29H写入R1寄存器。

|-----|-----|-----|-----|-----|-----|-----|-----|----------|----------|--------|--------|
| K23 | K22 | K21 | K20 | K19 | K18 | K17 | K16 | K11(RRD) | K10(RWR) | K1(SB) | K0(SA) |
| 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |

置控制信号为:

|----------|----------|--------|--------|
| K11(RRD) | K10(RWR) | K1(SB) | K0(SA) |
| 1 | 0 | 0 | 1 |

3. 将39H写入R2寄存器。

|-----|-----|-----|-----|-----|-----|-----|-----|----------|----------|--------|--------|
| K23 | K22 | K21 | K20 | K19 | K18 | K17 | K16 | K11(RRD) | K10(RWR) | K1(SB) | K0(SA) |
| 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |

置控制信号为:

|--------------|--------------|------------|------------|
| K11(RRD) | K10(RWR) | K1(SB) | K0(SA) |
| 1 | 0 | 1 | 0 |

4 .将49H写入R3寄存器。

|-----|-----|-----|-----|-----|-----|-----|-----|----------|----------|--------|--------|
| K23 | K22 | K21 | K20 | K19 | K18 | K17 | K16 | K11(RRD) | K10(RWR) | K1(SB) | K0(SA) |
| 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 |

置控制信号为:

|----------|----------|--------|--------|
| K11(RRD) | K10(RWR) | K1(SB) | K0(SA) |
| 1 | 0 | 1 | 1 |

5.按住STEP脉冲键实验现象? (实验箱中有什么变化)

按住STEP 脉冲键,CK 由高变低,这时寄存器R1 的黄色选择指示灯亮,表明选择R1 寄存器。

6.放开STEP 键实验现象? (实验箱中有什么变化)

放开STEP键,CK由低变高,产生一个上升沿,数据29H被写入R1 寄存器。

7.数据是在什么时候被打入寄存器的?

在按下STEP键后。

8.R0,R1,R2,R3能同时输入数据吗?

可以同时向R0,R1,R2和R3寄存器输入数据。要实现同时输入数据到这些寄存器,要确保对于每个寄存器,只有对应的控制信号(如R0EN、R1EN、R2EN、R3EN)为有效状态(例如置1),其他寄存器的控制信号为无效状态(例如置0)。

9. MAR, ST, OUT能同时输入数据吗?你试一试。

可以同时向MAR、ST和OUT寄存器输入数据。每个寄存器都有独立的数据输入线(如DBUS[7:0]),可以使用二进制开关或其他方式为每个寄存器设置不同的数据值。

在写入数据之前,将相应的控制信号设置为正确的状态,并按需要选择要写入的寄存器。例如,对于MAR寄存器,控制信号K12(STEN)和K13(OUTEN)应该为0,而对于ST寄存器,K12(STEN)应为1,K13(OUTEN)应为0。

相关推荐
DIY机器人工房几秒前
简单理解:为什么错误计数器一般要选 uint32_t 类型?
stm32·单片机·嵌入式硬件·嵌入式·diy机器人工房
上大科技蔡生2 分钟前
CS5567:具有宽占空比范围的60V同步降压DCDC控制器
单片机·嵌入式硬件·fpga开发·dcdc
lingzhilab41 分钟前
零知IDE——基于STM32F103RBT6的PAJ7620U2手势控制WS2812 RGB灯带系统
stm32·单片机·嵌入式硬件
三佛科技-1873661339742 分钟前
BP85956D集成VCC电容电机驱动BUCK电源芯片(12V300mA应用电路)
stm32·单片机·物联网
爱睡觉的王宇昊1 小时前
PCB设计完全指南:从软件选择到基础规范(通用电路篇详解)
笔记·stm32·单片机·嵌入式硬件·学习
白书宇1 小时前
【STM32实战】从零开始写Linux 0.12内核 第1个实验安装IAR 8.5
linux·c语言·驱动开发·stm32·单片机·嵌入式硬件
意法半导体STM321 小时前
【官方原创】一站式生成STM32N6的ExtMemLoader, FSBL, Appli的点灯工程 LAT1614
人工智能·stm32·单片机·嵌入式硬件·mcu·stm32n6
ShiMetaPi2 小时前
GM-3568JHF丨ARM+FPGA异构开发板系列教程:外设教程 08 串口
stm32·单片机·fpga开发·rk3568
csg11072 小时前
LORA网络的“最后一公里”难题:当信号被重重阻挡,我们有哪些“方法”来增强覆盖?
单片机·嵌入式硬件·物联网·算法
brave and determined2 小时前
传感器学习(day18):智能手机3D结构光:解锁未来的第三只眼
嵌入式硬件·算法·3d·智能手机·tof·嵌入式设计·3d结构光