描述
鎖存器,Latch,是數(shù)字電路中的一產(chǎn)品種具有記憶功能的邏輯元件。鎖存,就是把信號(hào)暫存以維持某種電平狀態(tài),在數(shù)字電路中則可以記錄二進(jìn)制數(shù)字信號(hào)“0”和“1”。
只有在有鎖存信號(hào)時(shí)輸入的狀態(tài)被保存到輸出,直到下一個(gè)鎖存信號(hào)。通常只有0和1兩個(gè)值。
邏輯結(jié)構(gòu)與功能表
8位鎖存器74LS373的邏輯圖如圖所示。其中使能端G加入CP信號(hào),D為數(shù)據(jù)信號(hào)。輸出控制信號(hào)為0時(shí),鎖存器的數(shù)據(jù)通過(guò)三態(tài)門進(jìn)行輸出。
累加Latch:
微處理器中運(yùn)算器部分主要電路結(jié)構(gòu)。
作用是防止算術(shù)邏輯單元(Arithmetic Logic Unit, ALU) 的輸出通過(guò)累加器(A)直接反饋到ALU的輸入端。
原理
CMOS反相器的功能是可以使輸出獲得跟輸入相反的邏輯值,那如果把兩個(gè)反相器的輸入跟輸出連接在一起會(huì)出現(xiàn)什么情況呢?我們來(lái)看下圖,假設(shè)某個(gè)時(shí)刻反向器A的輸入是1,那么其輸出會(huì)是0;因?yàn)锳的輸出連接到B的輸入端,即反相器B的輸入為0,那么其輸出會(huì)變?yōu)?;又因?yàn)锽的輸出連接到A的輸入端,即B輸出的1反饋回A的輸入,對(duì)剛才假設(shè)的“A的輸入為1”進(jìn)行了確認(rèn)和加強(qiáng)。此時(shí)A的輸入確實(shí)為1,按A和B的輸入輸出連接關(guān)系,又走了一遍剛才的路程,如此循環(huán),結(jié)果是反相器A的輸出穩(wěn)定為0,反相器B的輸出穩(wěn)定為1。這個(gè)結(jié)構(gòu)的電路有兩個(gè)穩(wěn)定的狀態(tài),一般稱之為雙穩(wěn)態(tài)電路??梢婎愃频碾p穩(wěn)態(tài)電路可以穩(wěn)定地保持其節(jié)點(diǎn)中的值(數(shù)據(jù)),具有記憶功能,這就是鎖存器工作的原理。
鎖存器原理1
從上面介紹可看出,首尾相接的兩個(gè)反相器構(gòu)成了互相反饋耦合的形態(tài),這就是鎖存器的基本電路結(jié)構(gòu)。但是這里是基于一個(gè)假設(shè),假設(shè)反相器A的輸入為1,那么它的輸出為0,兩個(gè)反相器連在一起通過(guò)互相反饋加強(qiáng),則能保持0和1兩個(gè)值。如果沒(méi)有這個(gè)假設(shè),它能保存的值將是不確定的。這類似于“雞生蛋還是蛋生雞”的謎局,要將此電路當(dāng)鎖存器使用,就必須打破這個(gè)“是輸入先有0,還是輸出先反饋回1”的僵局。于是給它加了兩個(gè)輸入端,由于反相器只有1個(gè)輸入,因此改用或非門來(lái)代替。電路結(jié)構(gòu)如下圖,根據(jù)或非門“只要有一個(gè)輸入為1,其輸出就為0”的特性,當(dāng)R為1時(shí),雖然有反饋存在,也可以強(qiáng)制輸出Q=0;當(dāng)S為1時(shí),則強(qiáng)制輸出Q=1。這就是R-S鎖存器,R意為Reset,清零的意思;S意為Set,置1的意思。
鎖存器原理2
R-S鎖存器的結(jié)構(gòu)是最基本的鎖存結(jié)構(gòu),實(shí)際應(yīng)用中一般會(huì)進(jìn)行各種改造和擴(kuò)展,至少會(huì)加一個(gè)輸入端作為控制信號(hào),該信號(hào)有效時(shí),鎖存器能持續(xù)地輸入、輸出數(shù)據(jù)。其控制信號(hào)一般為高電平,因此鎖存器是一種對(duì)脈沖電平敏感的存儲(chǔ)單元電路,可以在特定輸入脈沖電平作用下改變狀態(tài)。鎖存器的最主要作用是緩存,除了特殊用途如異步電路或很簡(jiǎn)單的邏輯,其他場(chǎng)合已經(jīng)很少直接應(yīng)用鎖存器,因?yàn)槠浣Y(jié)構(gòu)簡(jiǎn)單而且對(duì)電平敏感,不適合在主流的對(duì)時(shí)鐘敏感的集成電路中應(yīng)用。一般都是使用以鎖存器為基礎(chǔ)的觸發(fā)器或寄存器。
應(yīng)用場(chǎng)合
所謂鎖存器,就是輸出端的狀態(tài)不會(huì)隨輸入端的狀態(tài)變化而變化,僅在有鎖存信號(hào)時(shí)輸入的狀態(tài)才被保存到輸出,直到下一個(gè)鎖存信號(hào)到來(lái)時(shí)才改變。
鎖存器多用于集成電路中,在數(shù)字電路中作為時(shí)序電路的存儲(chǔ)元件,在某些運(yùn)算器電路中有時(shí)采用鎖存器作為數(shù)據(jù)暫存器。
封裝為獨(dú)立的產(chǎn)品后也可以單獨(dú)應(yīng)用,數(shù)據(jù)有效延遲于時(shí)鐘信號(hào)有效。這意味著時(shí)鐘信號(hào)先到,數(shù)據(jù)信號(hào)后到。
在某些應(yīng)用中,單片機(jī)的I/O 口上需要外接鎖存器。例如,當(dāng)單片機(jī)連接片外存儲(chǔ)器時(shí),要接上鎖存器,這是為了實(shí)現(xiàn)地址的復(fù)用。假設(shè),MCU端口其中的 8 路的 I/O 管腳既要用于地址信號(hào)又要用于數(shù)據(jù)信號(hào),這時(shí)就可以用鎖存器先將地址鎖存起來(lái)。
8051訪問(wèn)外部存儲(chǔ)器時(shí)P0口和P2口共同做為地址總線,P0口常接鎖存器再接存儲(chǔ)器。以防止總線間的沖突。而P2口直接接存儲(chǔ)器。因?yàn)閱纹瑱C(jī)內(nèi)部時(shí)序只能鎖住P2口的地址,如果用P0口傳輸數(shù)據(jù)時(shí)不用鎖存器的話,地址就改變了。
看看8051單片機(jī)總線操作的時(shí)序圖對(duì)我們很有幫助。由于數(shù)據(jù)總線、地址總線共用P0口,所以要分時(shí)復(fù)用。先送地址信息,由ALE使能鎖存器將地址信息鎖存在外設(shè)的地址端,然后送數(shù)據(jù)信息和讀寫使能信號(hào),在指定的地址進(jìn)行讀寫操作。
使用鎖存器來(lái)區(qū)分開單片機(jī)的地址和數(shù)據(jù),8051系列的單片機(jī)用的比較多,也有一些單片機(jī)內(nèi)部有地址鎖存功能,如8279就不用鎖存器了。
注意事項(xiàng)
并不是一定要接鎖存器,要看其地址線和數(shù)據(jù)線的安排,只有數(shù)據(jù)和地址線復(fù)用的情況下才會(huì)需要鎖存器,其目的是防止在傳數(shù)據(jù)時(shí),地址線被數(shù)據(jù)所影響! 這是由單片機(jī)數(shù)據(jù)與地址總線復(fù)用造成的,接 RAM 時(shí)加鎖存器是為了鎖存地址信號(hào)。
如果單片機(jī)的總線接口只作一種用途,不需要接鎖存器;如果單片機(jī)的總線接口要作兩種用途,就要用兩個(gè)鎖存器。例如:一個(gè)口要控制兩個(gè) LED,對(duì)第一個(gè) LED 送數(shù)據(jù)時(shí),“打開”第一個(gè)鎖存器而“鎖住”第二個(gè)鎖存器,使第二個(gè) LED 上的數(shù)據(jù)不變。對(duì)第二個(gè) LED 送數(shù)據(jù)時(shí),“打開”第二個(gè)鎖存器而“鎖住”第一個(gè)鎖存器,使第一個(gè) LED 上的數(shù)據(jù)不變。如果單片機(jī)的一個(gè)口要做三種用途,則可用三個(gè)鎖存器,操作過(guò)程相似。然而在實(shí)際應(yīng)用中,我們并不這樣做,只用一個(gè)鎖存器就可以了,并用一根 I/O 口線作為對(duì)鎖存器的控制之用(接 74373 的LE,而OE可恒接地)。所以,就這一種用法而言,可以把鎖存器視為單片機(jī)的 I/O 口的擴(kuò)展器。
內(nèi)容來(lái)自百科網(wǎng)