單片機SRAM擴展實例
擴展62C64靜態(tài)RAM電路的連接如圖8-3所示。
主要有下列控制信號。
存儲器輸入信號 接單片機 (P3.7)讀輸出信號。
存儲器寫輸入信號 接單片機 (P3.6)寫輸出信號。
ALE連接方法與程序存儲器相同。使用時應(yīng)注意,訪問內(nèi)部和外部存儲器時,應(yīng)分別使用MOV和MOVX指令。
外部數(shù)據(jù)存儲器的訪問:
圖8-3 擴展8KB SRAM 6264<?XML:NAMESPACE PREFIX = O />
讀(數(shù)據(jù)輸入)指令 MOVX A, @DPTR
MOVX A, @Ri
寫(數(shù)據(jù)輸出)指令 MOVX @DPTR , A
MOVX @Ri, A。
其中Ri為片內(nèi)R0或R1寄存器、CPU與外部數(shù)據(jù)存儲器間傳送數(shù)據(jù)時,先要把訪問的外部RAM高八位地址號送入P2中,然后才能執(zhí)行上述讀/寫指令。
80C51系列單片機數(shù)據(jù)存儲器的擴充與程序存儲器的擴充類似,即完成3總線的連接,且其地址總線、數(shù)據(jù)總線、片選信號的連接方式與程序存儲器完全相同。所不同的是數(shù)據(jù)存儲器比程序存儲器多了寫信號 ,且其讀信號 與程序存儲器的連接方法也不同。
1.線選尋址
所謂線選尋址是指不使用譯碼器,而直接用單片機地址線產(chǎn)生片選信號,F(xiàn)舉例如下:
例8-1 用線選尋址方式將80C51單片機與2片62C64的連接 。
解:(1)地址總線AB的連接:80C51的P0.0~P0.7經(jīng)74LS373與62C64(1)與62C64(2)的地址線低8位A0~A7相連。80C51的P2.0~P2.4與62C64(1)與62C64(2)的地址線高5位A8~A12相連。如圖8-4所示。
(2)數(shù)據(jù)線DB的連接:80C51的P0.0~P0.7與62C64(1)與62C64(2)的數(shù)據(jù)線D0~D7相連。如圖8-4所示。
(3)控制線CB的連接:80C51的讀信號 與62C64(1)、(2)的讀信號 連接。用P2.7與62C64(1)的片選信號 連接,用P2.7經(jīng)反相器后與62C64(2)的片選信號 連接。當(dāng)P2.7=0 時選中62C64(1),當(dāng)P2.7=1 時選中62C64(2)。見圖8-4。
(4)存儲器地址空間的分配
說明:線選連接后存儲器單元的地址往往是不唯一的;程序存儲器也可用類似方法擴展。
2.全譯碼尋址
全譯碼尋址是指使用譯碼器產(chǎn)生片選信號。現(xiàn)舉例如下:
例8-2 用全譯碼尋址方式將80C51單片機與2片62C64的連接。
解:用P2.5、P2.6、P2.7與74LS 138譯碼器的輸入端A、B、C連接,而將其輸出端的 、 分別與62C64(1)、62C64(2)的片選信號 連接,見圖8-5。在圖8-5中,要使27C64(1)的片選信號有效,必須使 有效,要使 有效又必須使74LS138譯碼器輸入端輸入001,即P2.7P2.6P25=001,同樣要使62C64(2)被選中,則P2.7P2.6P25=010。由此可推出二個芯片的地址空間范圍如下:
存儲器地址空間的分配
說明:由于采用了全譯碼方式,2個芯片的地址是唯一的;程序存儲器也可用此方法擴展。
3.程序與數(shù)據(jù)存儲器的混合擴展
在實際使用的單片機系統(tǒng)中,既有程序存儲器又有數(shù)據(jù)存儲器,因此程序與數(shù)據(jù)存儲器的混合擴展是掌握單片機系統(tǒng)的重要技術(shù)之一,下面用例子來說明程序與數(shù)據(jù)存儲器混合擴展的方法。
例8-3 將80C51與1片程序存儲器27C64、2片數(shù)據(jù)存儲器62C64進(jìn)行全譯碼連接。解:連接圖如8-6三個芯片的地址空間范圍如下:
問題1 若要求存儲器的地址空間分配如下:
62C64(1) 0000H~1FFFH
27C64 2000H~3FFFH
62C64(2) 4000H~5FFFH 應(yīng)如何處理?
由此可見地址空間的分配,就是74LS 138譯碼器輸出端 與片選信號 的連接問題,方法是:
①根據(jù)存儲器芯片0號單元的二進(jìn)制地址算出P2.7P2.6P2.5的取值。
②由P2.7P2.6P2.5的取值確定74LS138譯碼器輸出信號 。
③將74LS138譯碼器輸出信號 連接到存儲器芯片的片選信號 即可 。
編輯:admin 最后修改時間:2018-05-08