计算机组成原理实验三 数据寄存器组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。

相关推荐
代码游侠9 小时前
ARM开发——阶段问题综述(二)
运维·arm开发·笔记·单片机·嵌入式硬件·学习
DLGXY9 小时前
STM32——旋转编码器计次(七)
stm32·单片机·嵌入式硬件
羽获飞9 小时前
从零开始学嵌入式之STM32——3.使用寄存器点亮一盏LED灯
单片机·嵌入式硬件
浩子智控10 小时前
商业航天计算机抗辐射设计
单片机·嵌入式硬件
独处东汉14 小时前
freertos开发空气检测仪之输入子系统结构体设计
数据结构·人工智能·stm32·单片机·嵌入式硬件·算法
czy878747514 小时前
机智云 MCU OTA可以对MCU程序进行无线远程升级。
单片机·嵌入式硬件
A9better16 小时前
嵌入式开发学习日志52——二值与计数信号量
单片机·嵌入式硬件·学习
日更嵌入式的打工仔18 小时前
(实用向)中断服务程序(ISR)的优化方向
笔记·单片机
想放学的刺客18 小时前
单片机嵌入式试题(第25)嵌入式系统可靠性设计与外设驱动异常处理
stm32·单片机·嵌入式硬件·mcu·物联网
wotaifuzao19 小时前
STM32+FreeRTOS 长期可维护架构设计(事件驱动篇)-- 告别“屎山”代码
c语言·stm32·嵌入式硬件·freertos·状态机·事件驱动·嵌入式架构