單片機在復雜的應用中,片內的資源往往不能滿足實際需求,需要擴充較大的存儲容量和較多的 I/O 接口。所謂系統(tǒng)擴展,一般有兩項主要任務:
其一,是把系統(tǒng)所需的外設和單片機連接起來,使單片機系統(tǒng)能與外界進行信息交換。如通過鍵盤、A/D 轉換器等外部設備向單片機送入數(shù)據(jù)、命令等有關信息,去控制單片機運行;通過顯示器、發(fā)光二極管、打印機等設備把單片機處理的結果送出來,向人們提供各種信息或對外界設備提供控制信號,這項任務實際上就是單片機接口設計。
其二,是擴大單片機的存儲容量。由于單片機芯片的結構、集成工藝等關系,單片機內 ROM 、RAM 等容量不可能很大,在使用中有時不夠,需要在芯片外進行擴展。
因此,系統(tǒng)擴展和接口技術一般有以下幾方面內容:
(1) 外部總線的擴展;
(2) 外部存儲器的擴展;
(3) 輸入/輸出接口的擴展;
(4) 管理功能部件的擴展(如定時器/計數(shù)器、鍵盤/顯示器等);
(5) A/D 和 D/A 接口技術。
一、外部總線的擴展
MCS 51 芯片沒有對外專用的地址總線和數(shù)據(jù)總線,那么在進行對外擴展存儲器或 I/O 接口時,首先需要擴展對外總線。通過 MCS 51 引腳 ALE 可實現(xiàn)對外總線擴展。在 ALE 為有效高電平期間,P0 口上輸出 A7 ~A0 ,因而只需在 CPU 片外擴展一片地址鎖存器,用 ALE 的有效高電平邊沿作鎖存信號,即可將 P0 口上的地址信息鎖存,直到 ALE 再次有效。在 ALE 無效期間 P0 口傳送數(shù)據(jù),即作數(shù)據(jù)總線口。這樣就可將 P0 口 的地址線和數(shù)據(jù)線分開。圖 7.1 為 MCS 51 擴展的外部三總線示意圖。
圖 7.1 MCS 51 外部三總線示意圖
通常用作單片機地址鎖存器的芯片有 74LS273 、74LS377 、74LS373 、8282 等,圖 7.2 的(a)、(b) 和(c) 給出了 74LS373 、8282 和 74LS273 的引腳,以及它們用做地址鎖存器的接法。
圖 7.2 地址鎖存器的引腳和接口
74LS373 和 8282 是帶三態(tài)輸出的 8 位鎖存器,兩者的結構和用法類似。以 74LS373 為例,當三態(tài)端 OE有效,使能端 G 為高電平時,輸出跟隨輸入變化;當 G 端由高變低時,輸出端 8 位信息被鎖存,直到 G 端再次有效。
74LS273 為 8D 觸發(fā)器 ,當時鐘上升沿到來時,將 D 端輸入的數(shù)據(jù)鎖存。作為地址鎖存器使用時,可將 ALE 反相接 74LS273 的 CLK 端,CLK 端接+5V 。
二、總線驅動
在單片機應用系統(tǒng)中,擴展的三總線上掛接很多負載,如存儲器、并行接口、A/D 接口、顯示接口等,但總線接口的負載能力有限,因此常常 需要通過連接總線驅動器進行總線驅動。
總線驅動器對于單片機的 I/O 口只相當于增加了一個 TTL 負載,因此驅動器除了對后級電路驅動外,還能對負載的波動變化起隔離作用。在對 TTL 負載驅動時,只需考慮驅動電流的大小;在對 MOS 負載驅動時,MOS 負載的輸入電流很小,更多地要考慮對分布電容的電流驅動。
1. 常用的總線驅動器
系統(tǒng)總線中地址總線和控制總線是單向的,因此驅動器可以選用單向的,如 74LS244 。 74LS244 還帶有三態(tài)控制,能實現(xiàn)總線緩沖和隔離。
系統(tǒng)中的數(shù)據(jù)總線是雙向的,其驅動器也要選用雙向的,如 74LS245 。74LS245 也是三態(tài)的,有一個方向控制端 DIR,DIR=1 時輸 出 (An 一Bn ), DIR=0 時輸入(An ←Bn )。 74LS244 、74LS245 的引腳見圖 7.3 。
圖 7.3 總線驅動器芯片管腳
(a) 單 向驅動器; (b) 雙 向驅動器
2.總線驅動器的接口
圖 7.4 給出了總線驅動器 74LS244 和 74LS245 與 8051 管腳間的接口方法。
圖 7.4 8051 與總線驅動器的接口
(a) P2 口 的驅動; (b) P0 口 的驅動
由于 P2 口始終輸出地址高 8 位,接口時 74LS244 的三態(tài)控制端 1G 和 2G 接地,P2 口 與驅動器輸入線對應相連。
P0 口與 74LS245 輸入線相連,端接地,保證數(shù)據(jù)線暢通。8051 的 RD和 PSEN相與 后接 DIR,使得 RD或 PSEN有效時,74LS245 輸入,其它時間處于輸出狀態(tài)。