🌺一、 实验目的
- 熟悉存储器的读、写操作;
- 掌握在总线上数据传输的方法;
- 熟悉堆栈寄存器的组成和硬件电路。
🌼二、 实验内容
- 存储器的写操作;
- 读存储器的数据到总线上;
- 对四个寄存器进行写入与读出操作。
🌻三、 实验详情
实验1:存储器的写操作
● 把内部地址总线AJ1(8芯盒形插座)与右板上的二进制开关单元中J03插座相连(对应二进制开关H0~H7),把内部数据总线DJ8与右板上的J02插座相连(对应二进制开关H8~H15)。
● 把EMCK连到脉冲单元的PLS1,WC、RC、BUS接入二进制的开关中。(请按下表接线)。
信号定义 |
接入开关位号 |
EMCK |
PLS1 孔 |
WM |
H22 孔 |
RM |
H21 孔 |
BUS |
H21 孔 |
接线图示:
● 按启停单元中的运行按钮,置实验平台为运行状态。
● 二进制开关H0~H7作为地址(A0~A7)输入,置55H(对应开关如下表)。
H7 |
H6 |
H5 |
H4 |
H3 |
H2 |
H1 |
H0 |
数据总线值 |
A7 |
A6 |
A5 |
A4 |
A3 |
A2 |
A1 |
A0 |
8位数据 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
55H |
● 二进制开关H8~H15作为数据(D0~D7)输入,置66H(对应开关如下表)。
H15 |
H14 |
H13 |
H12 |
H11 |
H10 |
H9 |
H8 |
数据总线值 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
8位数据 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
66H |
置各控制信号如下:
H22 |
H21 |
WM |
RM、BUS |
0 |
1 |
● 按脉冲单元中的PLS1脉冲按键,在EMCK上产生一个上升沿,数据从内部数据总线流向外部数据总线,将数据66H写入地址为55H的存储单元。
实验2:读存储器的数据到总线上
● 在做好实验1的基础上,保持电源开启和线路连接不变,只拔掉内部数据总线DJ8与CPT-B板上的J02插座 (对应二进制开关H8~H15) 的连接。
● 按启停单元中的运行按钮,置实验平台为运行状态。
● 二进制开关H0~H7作为地址(A0~A7)输入,置55H(对应开关如下表)
H7 |
H6 |
H5 |
H4 |
H3 |
H2 |
H1 |
H0 |
数据总线值 |
A7 |
A6 |
A5 |
A4 |
A3 |
A2 |
A1 |
A0 |
8位数据 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
55H |
置各控制信号如下:
H22 |
H21 |
WM |
RM、BUS |
1 |
0 |
● 按脉冲单元中的PLS1脉冲按键,在EMCK上产生一个上升沿,数据从外部数据总线流向内部数据总线,将存储器55H单元中的内容输出,应该为实验1中的写入的数据66H。此时数据总线上的指示灯IDB0~IDB7显示结果66H。
实验3:对4个寄存器进行写入操作
将R-IN(8芯盒形插座)与右边板上的二进制开关单元中J03插座相连(对应二进制开关H0~H7),R-OUT可通过短8芯扁平电缆与数据总线上DJ4相连。把RR、WR、SA、SB接入二进制拨动开关(SA,SB借用X0,X1的H12,H11孔),把RCK连到脉冲单元的PLS1。(请按下表接线)。
信号定义 |
接入开关位号 |
RCK |
PLS1 孔 |
RR |
H15 孔 |
WR |
H14 孔 |
SA |
H12 孔 |
SB |
H11 孔 |
接线图示:
1、把数据写入寄存器R0
● 二进制开关H0~H7作为数据(D0~D7)输入,置11H(对应开关如下表)
H7 |
H6 |
H5 |
H4 |
H3 |
H2 |
H1 |
H0 |
数据总线值 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
8位数据 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
11H |
● 按启停单元中的运行按钮,置实验平台为运行状态。
● 置WR=0、RR=1、SB=0、SA=0 (对应开关如下表)。
H15 |
H14 |
H12 |
H11 |
RR |
WR |
SA |
SB |
1 |
0 |
0 |
0 |
● 按脉冲单元中的PLS1脉冲按键,在RCK上产生一个上升沿的脉冲,把11H打入R0寄存器。
2、把数据写入寄存器R1
● 置二进制开关H0~H7(D0~D7)为22H,各控制信号对应开关如下表。
H15 |
H14 |
H12 |
H11 |
RR |
WR |
SA |
SB |
1 |
0 |
1 |
0 |
● 按脉冲单元中的PLS1脉冲按键,在RCK上产生一个上升沿的脉冲,把22H打入R1寄存器。
3、把数据写入寄存器R2
● 置二进制开关H0~H7(D0~D7)为33H,各控制信号对应开关如下表。
H15 |
H14 |
H12 |
H11 |
RR |
WR |
SA |
SB |
1 |
0 |
0 |
1 |
● 按脉冲单元中的PLS1脉冲按键,在RCK上产生一个上升沿的脉冲,把33H打入R2寄存器。
● 同理:置二进制开关H0~H7为44H,RR=1 WR=0、SA=1、SB=1,在RCK脉冲作用下把44H打入R3寄存器。
实验4:对4个寄存器进行读出操作
● 置WR=1、RR=0、SB=0、SA=0 (对应开关如下表)。此时把寄存器R0数据读出总线数据IDB0~IDB7指示灯将显示11H。保持RR、WR的值不变(RR=0,WR=1),可通过分别设置SB、SA为10、01、11把R1,R2,R3中的值显示在总线上。观察寄存器输出的数据是否与上实验中写入的数据相同。
H15 |
H14 |
H12 |
H11 |
RR |
WR |
SA |
SB |
0 |
1 |
0 |
0 |
附:74LS139的逻辑
74LS139 |
||||||
输入 |
输出 |
|||||
SB |
SA |
Y0 |
Y1 |
Y2 |
Y3 |
选择寄存器 |
X |
X |
H |
H |
H |
H |
X |
0 |
0 |
0 |
1 |
1 |
1 |
R0 |
0 |
1 |
1 |
0 |
1 |
1 |
R1 |
1 |
0 |
1 |
1 |
0 |
1 |
R2 |
1 |
1 |
1 |
1 |
1 |
0 |
R3 |
🍀四、 实验步骤
实验1 存储器的写操作
(1)step1:把内部总线AJ1、DJ8分别与二进制开关单元JO3和总线J04相连,并把EMCK使用连接线接到脉冲单元的PLS1上,具体接线如下。
信号定义 |
接入开关位号 |
|
EMCK |
PLS1 |
孔 |
WM |
H22 |
孔 |
RM |
H21 |
孔 |
BUS |
H21 |
孔 |
(2)step2:按停止按钮,机箱停机将CY清零,再按运行键。二进制开关H0至H7作为地址输入,置55H(对应开关如下)。
H7 |
H6 |
H5 |
H4 |
H3 |
H2 |
H1 |
H0 |
数据总线值 |
A7 |
A6 |
A5 |
A4 |
A3 |
A2 |
A1 |
A0 |
8位数据 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
55H |
置各数据输入如下.
H15 |
H14 |
H13 |
H12 |
H11 |
H10 |
H9 |
H8 |
数据总线值 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
8位数据 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
66H |
置各控制信号如下:
H22 |
H21 |
WM |
RM、BUS |
0 |
1 |
(3)step3:按下机箱的PLS1脉冲按键,在EMCK产生上升沿,把66H写入地址为55H的存储单元中。
实验2 读存储器的数据到总线上
(1)step1:在实验1的基础上拔掉DJ8与J02的连接,置平台为运行态。具体接线如表1。二进制开关H0至H7作为地址输入,置55H(对应开关如下)。
H7 |
H6 |
H5 |
H4 |
H3 |
H2 |
H1 |
H0 |
数据总线值 |
A7 |
A6 |
A5 |
A4 |
A3 |
A2 |
A1 |
A0 |
8位数据 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
55H |
置各控制信号如下:
H22 |
H21 |
WM |
RM、BUS |
1 |
0 |
(2)step2:按下机箱的PLS1脉冲按键,在EMCK产生上升沿,从 55H的存储单元中取出数据,显示结果为66H。
实验3 对四个寄存器进行写入操作
(1)step1:将R-IN、R-OUT分别与J03、DJ4相连,其余连线如下.
信号定义 |
接入开关位号 |
|
RCK |
PLS1 |
孔 |
RR |
H15 |
孔 |
WR |
H14 |
孔 |
SA |
H12 |
孔 |
SB |
H11 |
孔 |
置H0置H7作为寄存器R0的数据输入,置11H如下:
H7 |
H6 |
H5 |
H4 |
H3 |
H2 |
H1 |
H0 |
数据总线值 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
8位数据 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
11H |
平台在运行状态下各开关如下.
H15 |
H14 |
H12 |
H11 |
RR |
WR |
SA |
SB |
1 |
0 |
0 |
0 |
按下机箱的PLS1脉冲按键,在RCK产生上升沿,把11H打入R0寄存器。
(2)step2:置H0至H7为22H如下.
H7 |
H6 |
H5 |
H4 |
H3 |
H2 |
H1 |
H0 |
数据总线值 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
8位数据 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
22H |
平台在运行状态下各开关如下.
H15 |
H14 |
H12 |
H11 |
RR |
WR |
SA |
SB |
1 |
0 |
1 |
0 |
按下机箱的PLS1脉冲按键,在RCK产生上升沿,把22H打入R1寄存器。
(3)step3:置H0至H7为33H如下.
H7 |
H6 |
H5 |
H4 |
H3 |
H2 |
H1 |
H0 |
数据总线值 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
8位数据 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
33H |
平台在运行状态下各开关如下.
H15 |
H14 |
H12 |
H11 |
RR |
WR |
SA |
SB |
1 |
0 |
0 |
1 |
按下机箱的PLS1脉冲按键,在RCK产生上升沿,把33H打入R2寄存器。
实验4 对四个寄存器进行读出操作
(1)step1:置各开关如下。
H15 |
H14 |
H12 |
H11 |
RR |
WR |
SA |
SB |
0 |
1 |
0 |
0 |
(2)step2: 设置输入SA、SB分别为00,01,10,11查看数据总线灯的变化如下 。
开 关 |
||
SA |
SB |
0 0 |
SA |
SB |
0 1 |
SA |
SB |
1 0 |
SA |
SB |
1 1 |
🌿五、 实验结果
实验1 存储器的写操作
实验2 读存储器的数据到总线上
实验3 对四个寄存器进行写入操作
实验4 对四个寄存器进行读出操作
SA=0、SB=0显示结果
SA=0、SB=1显示结果
SA=1、SB=0显示结果
SA=1、SB=1显示结果
🌷六、 实验体会
通过对实验操作以及结果分析,我熟悉了对进行存储器进行读、写操作,同时掌握了在总线上数据传输的方法并且熟悉了堆栈寄存器的组成和硬件电路。此次实验1和实验2很快得以解决,但实验3对堆栈寄存器的写操作一直看不到结果,四个显示均为FF导致我以为是平台的问题,但当我仔细看书分析发现自己忽略了实验3的写操作看不见平台变化,并且注意到每次写入R0、R1、R2寄存器的数据输入都不一样,比如R0数据输入是11H,R1是22H,R3是33H。虽此次实验稍有曲折,但看到结果对自己还是很欣慰。
📝总结
计算机组成原理领域就像一片广袤而未被完全探索的技术海洋,邀请你勇敢踏足数字世界和计算机组成原理的神秘领域。这是一场结合创造力和技术挑战的学习之旅,从基础概念到硬件实现,逐步揭示更深层次的计算机结构、指令集架构和系统设计的奥秘。渴望挑战计算机组成原理的学习路径和掌握计算机硬件的技能?不妨点击下方链接,一同探讨更多数字技术的奇迹吧。