實驗五??堆棧寄存器實驗
一、實驗目的
1、熟悉堆棧概念
2、熟悉堆棧寄存器的組成和硬件電路
二、實驗要求
按照實驗步驟完成實驗項目,對4個堆棧寄存器進行讀出、寫入數據操作。
三、實驗說明
3.1 ?堆棧寄存器組實驗構成(圖3-1)
本系統內有4個寄存器R0~R3,寄存器組由4個74LS374組成,由1片74LS139(2-4譯碼器)來選擇4個74LS374,并且由2片74LS32來組成控制線。8芯插座R-IN、R-OUT作為數據輸入、輸出端,可通過短8芯扁平電纜把數據輸入、輸出端連接到數據總線上。

圖 3-1
3.2 ?堆棧寄存器組原理(圖3-2)
由SA、SB兩根控制線通過74LS139譯碼來選擇4個寄存器(74LS374)。當WR=0時,表示數據總線向寄存器寫入數據,RCK為寄存器的工作脈沖,在有上升沿時把總線上數據打入74LS139選擇的那個寄存器。當RR=0時,74LS139所選擇的寄存器上的數據輸出至數據總線。在本系統內使用了WR=0作為寫入允許,RCK信號為上升沿時打入數據、RR=0時數據輸出。

圖 3-2
3.3 ?控制信號說明:
信號名稱 | 作 ?用 | 有效電平 |
SA、SB | 選通寄存器 | 低電平有效 |
RR | 數據讀出允許 | 低電平有效 |
WR | 數據寫入允許 | 低電平有效 |
RCK | 寄存器寫入脈沖 | 上升沿有效 |
四、實驗步驟
實驗一:對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寄存器。
實驗結果圖片如下:

把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寄存器。
實驗結果圖片如下:

把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寄存器。
實驗結果圖片如下:

把33H打入R2寄存器
●?同理:置二進制開關H0~H7為44H,RR=1 WR=0、SA=1、SB=1,在RCK脈沖作用下把44H打入R3寄存器。
實驗結果圖片如下:

把44H打入R3寄存器
實驗二:對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 |
實驗結果圖片如下:

11H輸出在數據總線上

22H輸出在數據總線上

33H輸出在數據總線上

44H輸出在數據總線上
附: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. 堆棧寄存器的組成
本實驗所用的堆棧寄存器組由4個D型觸發器(74LS374)構成,每個寄存器可存儲8位數據(D0至D7)。通過74LS139(2-4譯碼器),我們可以選擇性地激活任意一個寄存器進行讀寫操作。控制信號由二進制開關進行設置,包括:
- SA、SB:用于選擇具體的寄存器,低電平有效。
- WR:寫入使能信號,低電平有效。
- RR:讀出使能信號,低電平有效。
- RCK:寄存器時鐘脈沖信號,在上升沿有效。
通過設置這些控制信號,我們可以將數據從數據總線寫入指定的寄存器或將寄存器中的數據讀出到數據總線。
2. 數據寫入過程
在進行寫入操作時,需將WR信號設置為低電平(WR=0),并選擇目標寄存器(通過SA和SB信號)。此時,將二進制開關的輸出(數據輸入)傳輸到寄存器。當RCK信號在上升沿激活時,所選擇的寄存器將存儲數據。實驗中,我們逐步將值11H、22H、33H和44H寫入R0、R1、R2和R3寄存器。
?3. 數據讀出過程
在讀出操作中,WR信號保持為高電平(WR=1),而RR信號設置為低電平(RR=0)。此時,選擇相應的寄存器(SA和SB對應選擇的寄存器)。激活的寄存器中的數據會通過數據總線輸出,利用數碼指示燈顯示讀取結果。通過這種方式,我們分別驗證了R0、R1、R2和R3寄存器中保存的數據是否與之前????????寫入的數據一致。
●?實驗結果分析
通過以上實驗步驟,結果顯示數據成功地寫入和讀取相應的寄存器。每個寄存器的內容都能準確反映出在寫入階段設置的值。實驗結果如下:
- 寄存器R0:讀取到11H
- 寄存器R1:讀取到22H
- 寄存器R2:讀取到33H
- 寄存器R3:讀取到44H
這些數據與實驗中輸入的值完全一致,表明寄存器的讀寫功能正常且可靠。
●?個人感悟
????????通過本次實驗,我更深入地理解了計算機系統中堆棧的工作原理以及如何通過硬件實現堆棧的功能。堆棧作為一種重要的數據結構,廣泛用于函數調用及中斷處理等場景。其通過先進先出的特性,為數據的存取提供了便利。
????????此外,實驗中對硬件電路的搭建與調試,使我認識到了理論與實踐結合的重要性。面對實驗中的各種問題,解決的過程也增強了我的動手能力和邏輯思維能力。這次實驗不僅加深了我對計算機組成原理的理解,也激勵我進一步探索計算機科學中的更多概念與技術。
?