在數(shù)字電路中,移位寄存器(英語:shift register)是一種在若干相同時(shí)間脈沖下工作的觸發(fā)器為基礎(chǔ)的器件,數(shù)據(jù)以并行或串行的方式輸入到該器件中,然后每個(gè)時(shí)間脈沖依次向左或右移動(dòng)一個(gè)比特,在輸出端進(jìn)行輸出。這種移位寄存器是一維的,事實(shí)上還有多維的移位寄存器,即輸入、輸出的數(shù)據(jù)本身就是一些列位。實(shí)現(xiàn)這種多維移位寄存器的方法可以是將幾個(gè)具有相同位數(shù)的移位寄存器并聯(lián)起來。
移位寄存器的輸入、輸出都可以是并行或串行的。它們經(jīng)常被配置成串入并出(serial-in, parallel-out, sipo)的形式或并入串出(parallel-in, serial-out, piso),這樣就可以實(shí)現(xiàn)并行數(shù)據(jù)和串行數(shù)據(jù)的轉(zhuǎn)換。當(dāng)然,也有輸入、輸出同時(shí)為串行或并行的情況。此外,還有一些移位寄存器為雙向的,也就是說它允許數(shù)據(jù)來回傳輸,輸入端同時(shí)可以作為輸出端,輸出端同時(shí)也可以作為輸入端。如果把移位寄存器的串行輸入端,和并行輸出端的最后一位連接起來,還可以構(gòu)成循環(huán)移位寄存器(circular shift register),用來實(shí)現(xiàn)循環(huán)計(jì)數(shù)功能。
串入并出
串入并出形式的移位寄存器接法,可以將輸入的串行數(shù)據(jù)以并行格式輸出。串行通信要求的幾位數(shù)據(jù)完成輸入之后,就可以在輸出端的各位同時(shí)讀出并行數(shù)據(jù)。
并入串出
并入串出形式的移位寄存器接法,通過下圖所示d1-d4并行輸入段接收4位外部并行數(shù)據(jù),而q為串行輸出的引腳。為了將數(shù)據(jù)寫入到寄存器中,寫/移位控制線必須保持低電平。寫入完成,需要移位時(shí),寫/移位控制線則必須處于高電平,而且必須給予時(shí)間脈沖,每提供一個(gè)時(shí)間脈沖,向左(或向右)移動(dòng)一位。