三總線的擴展設計方法

基本思路

51系列單片機採用總線結構,使擴展易於實現,其擴展結構如圖4-3所示。

三總線的擴展設計方法

圖4-3 AT89S51單片機系統擴展結構圖

由圖4-3可以看出,系統擴展主要包括存儲器擴展和I/O接口部件擴展。51系列單片機的存儲器擴展既包括程序存儲器擴展又包括數據存儲器擴展。51系列單片機採用程序存儲器空間和數據存儲器空間截然分開的哈佛結構。擴展後,系統形成了兩個並行的外部存儲器空間。系統擴展是以51單片機為核心,通過總線把單片機與各擴展部件連接起來。因此,要進行系統擴展,首先要構造系統總線。系統總線按功能通常分為3組,如圖4-3所示。

51單片機有4個8位的並行口,已佔用了32條引線,而51單片機總共只有40條引腳,這8根數據線和16根地址線必須採用引腳複用的方法,也就是一根引腳必須有兩種或更多種功能才能滿足需要,某一根引腳究竟作何用,則需要根據硬件的要求進行設計,從而使用其不同的功能。

如何構造系統的三總線

1. 數據總線

如圖4-4所示為單片機的三總線結構形式。51單片機的P0口是一個多功能口,如果擴展外圍芯片,P0口就可以作為數據總線和低8位的地址總線來使用。CPU先從P0口送出低8位地址,然後從P0口送出數據或接收數據。

三總線的擴展設計方法

圖4-4 單片機的三總線結構形式

2. 地址總線

在51單片機訪問外部存儲器或I/O口時,可能需要超過8位的地址線,這時就用P2作為高8位的地址線。在P0口出現低8位地址信號時,P2口也出現高8位的地址線,這樣共有16根地址線。

3. 控制總線

除地址線和數據線外,還要有系統的控制總線。這些信號有的是單片機引腳的第一功能信號,有的則是P3口第二功能信號。包括:

(1)作為外擴程序存儲器的讀選通控制信號。

(2)作為外擴數據存儲器和I/O的讀、寫選通控制信號。

(3)ALE作為P0口發出的低8位地址鎖存控制信號。

(4)為片內、片外程序存儲器的選擇控制信號。

可見,AT89S51的4個並行I/O口,由於系統擴展的需要,真正作為數字I/O使用,就剩下P1和P3的部分口線了。

4. 地址、數據分離電路

單片機的P0口作為數據總線和低8位的地址總線使用,如果直接將P0口接到擴展芯片的數據總線和低8位地址線是行不通的,例如,單片機選定了外部存儲器的0000H單元,P0、P2口就應當輸出00H,這樣才能選中0000H單元,在選中0000H單元后,就從這個單元讀取數據,這個數據的值是隨機的,假設這個數據是10H,P0口就變成了10,但這樣就不再是選中0000H單元,而是選中了0010H單元,顯然,這從邏輯上是講不通的,所以P0口送出地址和接收或更新出數據是分時進行的,一定要把地址和數據區分開。

如圖4-5所示是P0口的地址/數據複用關係,從圖中可以看出,在每一個週期裡,P2口始終是輸出高8位的地址信號,而P0口卻被分成兩個時段,第一個時段輸出低8位的地址,而第二個時段則是傳輸數據,為了要把低8位的地址信號提取出來,要用到一個鎖存器芯片。從圖4-5中還可以看出,在ALE的上升沿到來時,P0口是處於“浮空”狀態,也說“高阻”狀態,即構成P0口輸出的兩個晶體管均處於“截止”的狀態,這樣不會影響到鎖存器。ALE信號就是MCS-51單片機提供的專用於數據/地址分離的一個引腳。

三總線的擴展設計方法

圖4-5 P0口地址、數據複用示意圖

對於片外數據存儲器,單片機使用了與訪問片內數據存儲器不同的指令進行訪問。此外,如果擴展了其他連接如I/O等芯片,也要佔用RAM空間。


分享到:


相關文章: