移位寄存器串入并出與并入串出
移位寄存器串入并出與并入串出
在數(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)一位。
串入并出移位寄存器開發(fā)經(jīng)驗(yàn)
對(duì)于串入并出移位寄存器以下是我個(gè)人的理解和實(shí)際開發(fā)工程中得出的經(jīng)驗(yàn)
圖一:
由我上圖所畫 可以得出 一個(gè)8位串入數(shù)據(jù)輸入, 8位并行輸出??梢钥闯鱿纫频氖歉呶唬褪堑谝粋€(gè)位進(jìn)去的到最后會(huì)在最高位。
移位寄存器串入并出與并入串出
圖為時(shí)序圖
A B 是輸入
clean 是清0端,低電平有效。就是如果給個(gè)低電平那么輸出都為0 強(qiáng)制都輸出0。一般接高電平
clock 是時(shí)鐘 上升沿有效
由上圖可以得出如果 A B 有一個(gè)為低電平 ,那么阻止新數(shù)據(jù)的進(jìn)入,并在下一個(gè)時(shí)鐘上升沿時(shí),將 QA 端清0.
如果A B端都為高電平則會(huì)使能信號(hào)輸入,并在下一個(gè)時(shí)鐘脈沖的上升沿之前使輸出端QA 置1.每一個(gè)時(shí)鐘脈沖上升沿到來時(shí),輸出端的數(shù)據(jù)會(huì)移動(dòng)一個(gè)位,既QA的數(shù)據(jù)會(huì)移動(dòng)到QB,一直到QH。
經(jīng)過我實(shí)際操作發(fā)現(xiàn)上電未初始化的時(shí)候輸出是不固定的。我試了好多次基本都是 0X80輸出概率比較大,不知道有什么方法讓他未初始化的時(shí)候輸出0X00呢?請(qǐng)思考?