移位寄存器有不同的版本,可用于各種各樣的應用程序。本文將向您介紹移位寄存器并說明它們的工作原理。此外,它還將解釋如何將它們用于將多條并行數據線轉換為單個串行連接。
什么是移位寄存器?
移位寄存器是存儲單個數據字的同步器件,可以對這些位執行邏輯移位操作。邏輯移位將字的每個位向左或向右移動。空格通常用零填充:
上圖顯示了向左的邏輯移位。右移以類似的方式工作。
移位寄存器由幾個單位鎖存器組成它們以串行菊花鏈方式連接,以便一個鎖存器的輸出連接到下一個輸入:
有些變速器允許您選擇這些位將被移動。
移位寄存器的類型
通常,有四種不同類型的移位寄存器可用數據輸入和輸出設備的方式不同:
串行輸入,串行輸出
串行輸入,并行輸出
并行輸入,串行輸出
并行輸入,并行輸出
支持串行和并行輸入的寄存器,如以及串行和并行輸出,被稱為通用移位寄存器。
基本操作
我們假設我們有以下理論4位移位寄存器同時具有串行輸入和輸出以及并行輸出:
如您所見,每個位從右側的串行輸入加載到移位寄存器的D鎖存器中。
第一個時鐘周期將其加載到鎖存器A中。然后鎖存器的輸出具有加載到寄存器中的值。 。下一個時鐘周期設置第二個鎖存器值并將一個新位加載到第一個鎖存器中,從而將位從右向左移位。這與所有寄存器同時發生。最后一個鎖存器輸出是移位寄存器的串行輸出。
因此,串行移位器可以用作緩沖器。上面的移位器也可用于將串行信號轉換為四條并行數據線。
與串行轉換并行
此技術可用于減少從并行總線讀取值所需的輸入數量。例如,您可以利用它將來自計算機鍵盤的信號轉換為USB控制器可以理解的單個串行信號。在本例中,我使用DIP開關來模擬8位數據總線,并使用Arduino Uno上的單個GPIO引腳讀取8個值:
請注意,橙色和黃色總線實際上可能無法連接成一條線。我決定以這種方式代表他們以使圖像更容易理解:
Arduino控制移位寄存器,產生時鐘信號,并讀取8位。然后輸出值:
結論
移位寄存器是一個由幾個D鎖存器組成的同步器件,它實現了數字電路中的邏輯移位功能。這些IC可用于各種應用。然而,它們通常用于將串行數據線轉換為并行總線,反之亦然。使用它們時,您必須記住,有不同類型可用于不同目的。
-
移位寄存器
+關注
關注
2文章
258瀏覽量
22238
發布評論請先 登錄
相關推薦
評論