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