MCS-51單片數(shù)據(jù)存儲器RAM的擴展應用實例
RAM是用來存放各種數(shù)據(jù)的,MCS-51系列8位單片機內(nèi)部有128 B RAM存儲器,CPU對內(nèi)部RAM具有豐富的操作指令。但是,當單片機用于實時數(shù)據(jù)采集或處理大批量數(shù)據(jù)時,僅靠片內(nèi)提供的RAM是遠遠不夠的。此時,我們可以利用單片機的擴展功能,擴展外部數(shù)據(jù)存儲器。
常用的外部數(shù)據(jù)存儲器有靜態(tài)RAM(StatICRandom ACCess Memory—SRAM)和動態(tài)RAM(Dynamic Random Access Memory—DRAM)兩種。前者讀/寫速度高,一般都是8位寬度,易于擴展,且大多數(shù)與相同容量的EPROM引腳兼容,有利于印刷板電路設(shè)計,使用方便;缺點是集成度低,成本高,功耗大。后者集成度高,成本低,功耗相對較低;缺點是需要增加一個刷新電路,附加另外的成本。
MCS-51單片機擴展片外數(shù)據(jù)存儲器的地址線也是由P0口和P2口提供的,因此最大尋址范圍為64 KB(0000H~FFFFH)。
一般情況下,SRAM用于僅需要小于64 KB數(shù)據(jù)存儲器的小系統(tǒng),DRAM經(jīng)常用于需要大于64 KB的大系統(tǒng)。
實例:在一單片機應用系統(tǒng)中擴展2 KB靜態(tài)RAM。
芯片選擇
單片機擴展數(shù)據(jù)存儲器常用的靜態(tài)RAM芯片有6116(2K×8位)、6264(8K×8位)、62256(32K×8位)等。根據(jù)題目容量的要求,我們選用SRAM 6116。
6116的管腳與EPROM 2716管腳兼容,管腳如圖所示
硬件電路
單片機與6116的硬件連接如圖所示。
連線說明
6116與單片機的連線如下:
地址線:A0~A10連接單片機地址總線的A0~A10,即P0.0~P0.7、P2.0、P2.1、P2.2共11根。
數(shù)據(jù)線:I/O0~I/O7連接單片機的數(shù)據(jù)線,即P0.0~P0.7。
控制線:CE片選端連接單片機的P2.7,即單片機地址總線的最高位A15;OE讀允許線連接單片機的讀數(shù)據(jù)存儲器控制線RD;寫允許線WE連接單片機的寫數(shù)據(jù)存儲器控制線WR。
片外RAM地址范圍的確定及使用
按照上圖的連線,片選端直接與某一地址線P2.7相連,這種擴展方法稱為線選法。顯然,只有P2.7=0,才能夠選中該片6116,故其地址范圍確定如下:
如果與6116無關(guān)的管腳取0,那么,6116的地址范圍是0000H~07FFH;如果與6116無關(guān)的管腳取1,那么,6116的地址范圍是7800H~7FFFH。
單片機對RAM的讀寫除了可以如下指令:
MOVX @DPTR,A ;64 KB內(nèi)寫入數(shù)據(jù)
MOVX A,@DPTR ;64 KB內(nèi)讀取數(shù)據(jù)
外,還可以使用以下對低256 B的讀寫指令:
MOVX @Ri,A ;低256 B內(nèi)寫入數(shù)據(jù)
MOVXA,@Ri ;低256 B內(nèi)讀取數(shù)據(jù)