MCS 51 系列單片機具有 64KB 的程序存儲空間,其中 8051 、8071 片內(nèi)有 4KB 的程序存儲器,8031 片內(nèi)無程序存儲器 。當(dāng)采用 8051 、8071 型單片機而程序超過 4KB,或采用 8031 單片機時,就需對程序存儲器進行外部擴展。
MCS 51 系列單片機的數(shù)據(jù)存儲器與程序存儲器的地址空間相互獨立,其片外數(shù)據(jù)存儲器的空間也是 64KB,如果片內(nèi)的數(shù)據(jù)存儲器(僅 128B) 不夠用時,則需進行數(shù)據(jù)存儲器的外部擴展。
1. 外部程序存儲器的擴展原理及時序
MCS 51 單片機擴展外部程序存儲器的硬件電路如圖 7.5 所示。
圖 7.5 MCS 51 單片機程序存儲器的擴展原理
MCS 51 單片機訪問外部程序存儲器所使用的控制信號有:ALE(低 8 位地址鎖存控 制) 和 PSEN(外部程序存儲器“讀取”控制)。
在外部存儲器取指期間,P0 口和 P2 口輸 出地址碼(PCL 、PCH), 其中 P0 口信號由 ALE 選通進入地址鎖存器后,變成高阻態(tài)等待從程序存儲器讀出指令碼。從圖中可以看出 ,MCS 51 的 CPU 在一個機器周期 內(nèi),ALE 上出現(xiàn)兩個正脈沖,PSEN出現(xiàn)兩個負(fù)脈沖,說明 CPU 可以兩次訪問外部程序存儲器,再之單片機指令系統(tǒng)中又有很多雙字節(jié)單周期指令,使得程序的執(zhí)行速度大大提高。
外部程序存儲器可選用 EPROM 、E2 PROM 、PAGEDEPROM 和 KEPROM 等。 2.EPROM 擴展電路
紫外線擦除電可編程只讀存儲器 EPROM,典型產(chǎn)品有 Intel 公司的系列芯片 2716(2K ×8 位)、 2732A(4K×8 位)、 2764A(8K×8 位)、 27128A(16K×8 位)、 27256(32K×8 位) 和 27512(64K×8 位) 等,在這些芯片上均設(shè)有一個玻璃口,在紫外線下照射 20 分鐘 左右,存儲器中的各位信息均變?yōu)?1 。以后通過編程器可將程序固化到這些芯片中。
以下介紹 2716EPROM 。2716 的存儲容量為 2K×8 位,單一+5V 供 電,運行時的最大功耗為 252mW,維持功耗為 132mW,讀出時間最大為 450ns 。2716 為 24 線雙列直 插式封裝,其引腳如圖 7.6 所示。
2716 有五種工作方式,見表 7.1 。
2716 與 8031 接口主要解決兩個問題:一是硬件連接問題,二是根據(jù)實際連線確定芯片地址。硬件接口見圖 7.7。
由圖 7.7 可確定 2716 芯片的地址范圍 。方法是 A10 ~A0 從全 0 開始,然后從最低位開始依次加 1,最后變?yōu)槿?1,相當(dāng)于 211=2048 個單元地址依次選通,稱為字選。即
3.E2 PROM2864A 的擴展
E2 PROM 電擦除電可編程只讀存儲器是近年來被廣泛應(yīng)用的一種新產(chǎn)品 。其優(yōu)點是能使 CPU 在線修改其中的數(shù)據(jù),并可在斷電情況下保存數(shù)據(jù),集 EPROM 和 RAM 功能于一體。
Intel2864A 是 8K×8 位 E2 PROM,單一+5V 供電,最大工作電流為 140mA,維持電流 60mA,其 24 腳的管腳及原理框圖見圖 7.8 。由于片內(nèi)設(shè)有編程所需的高壓脈沖產(chǎn)生電路,因此無需外加編程電源和寫入脈沖。
圖 7.8 2864A 管腳及原理框圖
(a) 管腳; (b) 原理框圖
2864A 有 4 種工作方式,如表 7.2 所示。
(1) 維持和讀出方式:2864A 的維持和讀出方式與普通 EPROM 完全相同。
(2) 寫入方式:2864A 提供了兩種數(shù)據(jù)寫入操作方式,即字節(jié)寫入和頁面寫入。
(3) 數(shù)據(jù)查詢方式:數(shù)據(jù)查詢方式是指用軟件來檢測寫操作中的“頁存儲”周期是否完成。在“頁存儲”期間,如進行寫操作,讀出的是最后寫入的字節(jié),若芯片的轉(zhuǎn)儲工作未完成,則讀出數(shù)據(jù)的最高位是原來寫入字節(jié)最高位的反碼,據(jù)此,CPU 可判斷芯片的編程是否結(jié)束。
2864A 與 8031 的接口電路如圖 7.9 所示。
圖 7.9 2864A 與 8031 的接口電路
外部數(shù)據(jù)存儲器的擴展
8031 單片機內(nèi)部僅有 128 個字節(jié) RAM 存儲器,而 CPU 對 內(nèi)部的 RAM 具有豐富的操作指令。如在實時數(shù)據(jù)采集和處理時,僅靠片內(nèi)的 RAM 是遠遠不夠 的 ,因而必須擴展外部數(shù)據(jù)存儲器。常用的數(shù)據(jù)存儲器有靜態(tài) RAM 和動態(tài) RAM 兩種,下面主要討論靜態(tài) RAM 與 MCS 51 的接口。
1. 外部數(shù)據(jù)存儲器的擴展方法及時序
單片機擴展外部 RAM 的原理圖如圖 7.10 所示,數(shù)據(jù)存儲器只使用 WR 、RD擴展線而不用 PSEN 。因此,數(shù)據(jù)存儲器與程序存儲器地址可完全重疊,均為 0000H~0FFFFH ,但數(shù)據(jù)存儲器與 I/O 口及外圍設(shè)備是統(tǒng)一編址的,即任何擴展的 I/O 口以及外圍設(shè)備均占 用數(shù)據(jù)存儲器的地址。
圖 7.10 MCS 51 數(shù)據(jù)存儲器的擴展示意圖
MCS 51 單片機讀/寫外部數(shù)據(jù)存儲器的時序如圖 2.9 、2.10 所示。在圖 2.10 的外部RAM 讀周期中,P2 口輸出高 8 位地址,P0 口分時傳送低 8 位地址及數(shù)據(jù)。ALE 的下降沿將低 8 位地址打入地址鎖存器后,P0 口變?yōu)檩斎敕绞剑琑D有效選通外部 RAM,相應(yīng)存儲單元的內(nèi)容送到 P0 口上 ,由 CPU 讀入累加器 。
外部 RAM 寫操作時,ALE 下降為低電平后,WR才有效,P0 口上出現(xiàn)的數(shù)據(jù)寫入相 應(yīng)的 RAM 單元。
2 .靜態(tài) RAM 擴展
8031 單片機應(yīng)用系統(tǒng)中,靜態(tài) RAM 最為常用,因為這種存儲器無需考慮刷新問題。但與動態(tài) RAM 相比,需要消耗較大的功率,價格也較高 。下面以靜態(tài) 6264 為例,介紹靜態(tài) RAM 的擴展。
6264 是 8K×8 位的靜態(tài)隨機存儲器芯片,采用 CMOS 工藝制造,單一+5V 供電,額定功耗為 200mW,典型存取 時間為 200ns ,為 28 線雙列直插式封裝 ,管腳見 圖 7.11 。 各管腳含義如下:
A0 ~A12 :13 條地址線;
I/O0 ~I/O7 :雙向數(shù)據(jù)線;
CE1 :片選信號線 1 ;
CE2 :片選信號線 2 ;
OE:輸出允許信號;
WE:寫信號。
6264 的工作方式有 4 種,見表 7.3 。
圖 7.11 6264 管腳圖