移位寄存器不但可以寄存數(shù)碼,而且在移位脈沖作用下,寄存器中的數(shù)碼可根據(jù)需要向左或向右移動。移位寄存器也是數(shù)字系統(tǒng)和計算機中應用很廣泛的基本邏輯部件。
圖1所示電路是由邊沿d觸發(fā)器組成的4位移位寄存器。
由圖1可知,由第一個d觸發(fā)器ff0的輸入端接收輸入信號,其余的每個觸發(fā)器的輸入端均與前一個觸發(fā)器的輸出端相連。各觸發(fā)器的時鐘脈沖控制端與同一個時鐘脈沖cp信號相連,因此各觸發(fā)器的觸發(fā)時刻相同,都是cp脈沖的上升沿。
下面以4位二進制代碼1101為例,說明圖1所示移位寄存器的寄存過程。
二進制代碼1101以串行的方式從串行輸入端di依次輸入。設各觸發(fā)器的初始狀態(tài)為零,即q3q2q1q0=0000。
圖1 由d觸發(fā)器組成的4位移位寄存器
首先,將第一個二進制碼“1”輸入串行輸入端di。當移位脈沖cp的第一個上升沿到達時,個觸發(fā)器將各自的輸入端狀態(tài)傳輸?shù)捷敵龆?。由于從cp脈沖的上升沿到達開始到各觸發(fā)器次態(tài)的建立需要一段傳輸延時時間,因此當cp脈沖的上升沿同時作用于各觸發(fā)器時,各觸發(fā)器輸入端的狀態(tài)還沒有改變。于是ff3按q2原來的狀態(tài)觸發(fā),ff2按q1原來的狀態(tài)觸發(fā),ff1按q0原來的狀態(tài)觸發(fā),ff0按串行輸入端d1的狀態(tài)觸發(fā)。因此,當cp的第一個上升沿到達后,各觸發(fā)器的狀態(tài)變?yōu)閝3q2q1q0=0001。
同理,將第二個二進制數(shù)碼“1”送入串行輸入端d1,當cp的第二個上升沿到達時,各觸發(fā)器的狀態(tài)變?yōu)閝3q2q1q0=0011。以此類推,當?shù)?個移位脈沖過后,將這4個二進制代碼儲存到了4個觸發(fā)器的輸入端q3q2q1q0=1101。
移位數(shù)據(jù)寄存情況如表1所示。也可以用波形圖的形式表示移位寄存器的數(shù)據(jù)寄存情況,如圖2所示。
表1 移位寄存器的移位寄存過程
cp脈沖
串行輸入di
q3
q2
q1
q4
0
×
0
0
0
0
1
1
0
0
0
1
2
1
0
0
1
1
3
0
0
1
1
0
4
1
1
1
0
1
圖2 圖1電路的波形圖
從圖6-5-3所示的波形圖可以看出,經(jīng)過4個cp脈沖后,串行輸入的4位二進制代碼全部已入了移位寄存器中,同時可以從4個觸發(fā)器的輸出端同時輸出這4為二進制代碼。如果繼續(xù)加入4個cp脈沖,則可以從串行輸入-并行輸出和串行輸出入-串行輸出。由于在移位脈沖的作用下,二進制代碼在移位寄存器中依次右移,所以又稱為右移移位寄存器。當移位寄存器的電路實現(xiàn)的是在移位脈沖的作用下,二進制代碼在移位寄存器中依次左移,這種寄存器稱為左移移位寄存器。
為了便于擴展移位寄存器的功能和增加使用的靈活性,在定型生產(chǎn)的移位寄存器集成電路上有的又附加了左移、右移控制,并行數(shù)據(jù)輸入、保持、異步置零(復位)等功能。圖3所示為4位雙向移位寄存器74ls194的邏輯電路和圖形符號。
圖3(a) 邏輯圖
圖3(b) 圖形符號
由圖3所示,雙向移位寄存器74ls194由4個rs觸發(fā)器和輸入控制電路組成。dir為數(shù)據(jù)右移串行輸入端,dil為數(shù)據(jù)左移串行輸入端,d0~d3為數(shù)據(jù)并行輸入端,q0~q3為數(shù)據(jù)并行輸出端,同時q3還可以作為數(shù)據(jù)串行輸出端,cp為移位脈沖控制端為清零端,移位寄存器正常工作時該端置“1”,s0、s1為雙向移位寄存器的工作狀態(tài)控制端。
74ls194既可以實現(xiàn)串行輸入,也可以并行輸入;既可以實現(xiàn)串行輸出,也可以并行輸出,在串行寄存方式中,既可以實現(xiàn)右移寄存,也可以實現(xiàn)左移寄存,還可以保持數(shù)據(jù)不變。74ls194雙向移位寄存器的這些工作狀態(tài)都是由控制端s0、s1實現(xiàn)的,如表1所示。表1稱為74s194的邏輯功能表。
表1 74ls194的邏輯功能表
s1
s4
工作狀態(tài)
0
×
×
置零
1
0
0
保持
1
0
1
右移
1
1
0
左移
1
1
1
并行輸入
當s1=s0=0時,移位寄存器處于數(shù)據(jù)保持狀態(tài)。此時不論輸入端和移位脈沖輸入端有何變化,移位寄存器各輸出端的狀態(tài)保持不變。
當s1=0,s0=1時,移位寄存器保持右移寄存狀態(tài)。隨著位移脈沖的到來,右移串行輸入端dir的數(shù)據(jù)依次寄存到寄存器中,并且移位寄存器中的數(shù)據(jù)依次右移。
當s1=1,s0=0時,移位寄存器處于左移寄存狀態(tài)。隨著移位脈沖的到來,左移串行輸入端dil的數(shù)據(jù)依次寄存到寄存器中,并且移位寄存器中的數(shù)據(jù)依次左移。
當s1=1,s0=1時,位移寄存器處于并行輸入寄存狀態(tài)。此時串行輸入端的數(shù)據(jù)不起任何作用。當移位脈沖cp來一個脈沖時,寄存器將并行輸入端d0~d3的數(shù)據(jù)并行輸入到并行輸出端q0~q3。
例1 用兩片4位雙向移位寄存器74ls194接成一個8位雙向移位寄存器。
解 所要涉及的8位雙向移位寄存器需要完成8位二制數(shù)據(jù)的寄存,因此需要由兩片4位雙向移位寄存器74ls194組成。同時,8位雙向移位寄存器應具備4位雙向移位寄存器所有的邏輯功能,即能實現(xiàn)并行輸入、左移寄存、右移寄存、數(shù)據(jù)保持和異步清零等功能。
如圖4所示,通過分析,將兩片4位雙向移位寄存器的輸入和輸出同時作為8位雙向移位寄存器的輸入和輸出。將74ls194(i)的右移串行輸入端作為8位雙向移位寄存器的右移串行輸入端,同時將74ls194(i)的串行輸出端與右側74ls194(ii)的右移串行輸入端相連。同樣,將74ls194(ii)的左移輸入端作為8位雙向移位寄存器的左移串行輸出端,同時將74ls194(ii)的串行輸出端與74ls194(i)的左移串行輸入端相連。將兩片4位雙向移位寄存器的移位脈沖輸入端、清零端和工作狀態(tài)輸入端分別相連。這樣,就實現(xiàn)了用兩片4位雙向移位寄存器74ls19474ls194接成一個8位雙向移位寄存器。
圖4 例1的電路圖