鎖存器應(yīng)用辨析
所謂鎖存器,就是輸出端的狀態(tài)不會(huì)隨輸入端的狀態(tài)變化而變化,僅在有鎖存信號(hào)時(shí)輸入的狀態(tài)被保存到輸出,直到下一個(gè)鎖存信號(hào)到來時(shí)才改變。典型的鎖存器邏輯電路是 D 觸發(fā)器電路。
鎖存,就是把信號(hào)暫存以維持某種電平狀態(tài)。鎖存器的最主要作用是緩存,其次完成高速的控制其與慢速的外設(shè)的不同步問題,再其次是解決驅(qū)動(dòng)的問題,最后是解決一個(gè) I/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í)就可以用鎖存器先將地址鎖存起來。
8051訪問外部存儲(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)行讀寫操作。
使用鎖存器來區(qū)分開單片機(jī)的地址和數(shù)據(jù),8051系列的單片機(jī)用的比較多,也有一些單片機(jī)內(nèi)部有地址鎖存功能,如8279就不用鎖存器了。
注意,并不是一定要接鎖存器,要看其地址線和數(shù)據(jù)線的安排,只有數(shù)據(jù)和地址線合用的情況下才會(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è)鎖存器,操作過程相似。然而在實(shí)際應(yīng)用中,我們并不這樣做,只用一個(gè)鎖存器就可以了,并用一根 I/O 口線作為對(duì)鎖存器的控制之用(接 74373 的LE,而OE可恒接地)。所以,就這一種用法而言,可以把鎖存器視為單片機(jī)的 I/O 口的擴(kuò)展器。
擴(kuò)展閱讀:51單片機(jī)調(diào)試
編輯:admin 最后修改時(shí)間:2018-05-19