51單片機(jī)程序存儲器擴(kuò)展
存儲器是單片機(jī)系統(tǒng)中使用最多的外擴(kuò)芯片,對80C51系列單片機(jī)而言,由于程序存儲器與數(shù)據(jù)存儲器的空間在物理空間上的各自獨(dú)立性,使得兩者的擴(kuò)展方法略有不同。在本節(jié)中,介紹目前常用的EPROM(Electrically Programmable Read-On
程序存儲器用來存放編制好的始終保留的固定程序和表格常數(shù)。程序存儲器以程序計(jì)數(shù)器PC作為地址指針,通過16位地址總線,可尋址的地址空間為64KB。
在 80C51/87C51/89C51片內(nèi),分別內(nèi)置最低地址空間的4KB ROM/EPROM程序存儲器(內(nèi)部程序存儲器),而在8031片內(nèi),則沒有內(nèi)部程序存儲器,必須外部擴(kuò)展EPROM。80C51系列單片機(jī)中64KB 內(nèi)、外程序存儲器的地址是統(tǒng)一編排的。8031單片機(jī)沒有內(nèi)部程序存儲器,地址從0000H~FFFFH都是外部程序存儲空間。
應(yīng)始終接地,對于內(nèi)部有ROM的單片機(jī)(5l、52系列),該引腳接高電平,使程序從內(nèi)部ROM開始執(zhí)行。當(dāng)PC值超出內(nèi)部ROM的容量時(shí),會自動(dòng)轉(zhuǎn)向外部程序存儲器空間。外部程序存儲器地址空間為1000H~FFFFH,訪問程序存儲器使用MOVC指令。
目前典型的EPROM芯片為27系列產(chǎn)品:
型號 容量 型號 容量
27C16 2K×8位 27C128 16K×8位
27C32 4K×8位 27C256 32K×8位
27C64 8K×8位 27C512 64K×8位
.2.2 EPROM程序存儲器擴(kuò)展實(shí)例
圖8-1為擴(kuò)展8KB×8的程序存儲器27C64與單片機(jī)的連接電路。該電路也稱為8031的最小系統(tǒng)。要通過對這個(gè)系統(tǒng)的分析,掌握存儲器擴(kuò)展電路的連接與單片機(jī)外部程序存儲器操作時(shí)序的關(guān)系,即單片機(jī)的數(shù)據(jù)總線D0~D7、地址總線A0~A15和控制信號
、
、ALE與外擴(kuò)EPROM、74LS373的信號連接關(guān)系以及74LS373在電路中的作用。
圖中74LS373是帶三態(tài)輸出的8D鎖存器,三態(tài)控制接地。G端與8031的ALE連接,每當(dāng)ALE下跳變時(shí),74LS373鎖存低8位地址信號,并輸出供系統(tǒng)使用。
27C64是8KB×8位EPROM器件,有13根地址線A0~A12輸入,它能區(qū)分13位二進(jìn)制地址信息。這13根地址線分別與8031的P2口和 P2.0~P2.4連接,當(dāng)8031系統(tǒng)發(fā)出 13位地址信息時(shí),分別選中27C64片內(nèi)8KB存儲器中的各單元。
數(shù)據(jù)線的連接:存儲器的8位數(shù)據(jù)線D0~D7接P0口(P0.0~P0.7)。單片機(jī)規(guī)定指令碼和數(shù)據(jù)都由P0口讀入,數(shù)位對應(yīng)相連即可。
27C64的引腳為片選信號輸入端,低電平有效,表示選中該27C64芯片。該片選信號決定了27C64這塊芯片的8KB存儲器在整個(gè)8031擴(kuò)展程序存儲器64KB空間中的位置。該系統(tǒng)中只有一片27C64,現(xiàn)將
接地,表示常有效。根據(jù)上述電路接法,27C64占有的擴(kuò)展程序存儲器空間為0000H~1FFFH地址空間。
控制線的連接:
(外部程序存儲器取指信號)接(存儲器讀信號)。
ALE地址鎖存允許信號,通常接至地址鎖存器鎖存信號。
(單片機(jī)內(nèi)/外程序存儲器選擇信號)當(dāng)采用8031、8032時(shí),而應(yīng)接地。
此外,27C64的和Vpp端及端可組合成27C64的各種工作方式(讀、待機(jī)、寫即編程、校對等),圖中的方式處于讀和待機(jī)兩種狀態(tài)。當(dāng)選通信號為低電平,選通27C64,即讀27C64中的程序或常數(shù),當(dāng)選通信號為高電平,即無效,則27C64處于低功耗待機(jī)狀態(tài)。
<>擴(kuò)展實(shí)例
電改寫EEPROM芯片既可像RAM一樣修改其存儲單元中的內(nèi)容,又可像ROM一樣在斷電后保持存儲單元中程序與數(shù)據(jù)內(nèi)容不變,因而電改寫EEPROM在各種場合得到廣泛應(yīng)用。下面以Intel公司生產(chǎn)的EEPROM2864A芯片為例介紹電改寫EEPROM。
2864A是電擦除可編程的只讀存儲器芯片。單一+5V供電,最大工作電流為160mA,維 持電流為60mA。讀出時(shí)間最大為250ns,寫入時(shí)間約為16ms,由此可見2864A的讀寫速度是較慢的。由于片內(nèi)設(shè)有編程所需高壓脈沖電路,因而無 需外加編程電壓與寫入脈沖即可工作。2864A的容量為8K×8位,因此該芯片有8根數(shù)據(jù)線與13根地址線。
2864A的讀操作與普通EPROM的讀出相同,所不同的是可以在線進(jìn)行字節(jié)的寫入。2864A在寫一個(gè)字節(jié)的指令或數(shù)據(jù)之前,自動(dòng)將要寫入單元進(jìn)行擦除,因而無需專門的擦除操作??梢娛褂?864A就如同使用RAM一樣方便。
當(dāng)向2864A發(fā)出字節(jié)寫命令后,2864A便鎖存地址、數(shù)據(jù)及控制信號,從而啟動(dòng)一次寫操作。2864A的寫入時(shí)間約為16m左右,在此期間,2864A的信號處于低電平0狀態(tài),表示目前正在進(jìn)行寫入數(shù)據(jù)的操作。其數(shù)據(jù)線處于高阻狀態(tài)與總線斷開,禁止CPU在此期間寫入新的數(shù)據(jù),但允許CPU執(zhí)行其它操作。一旦一次字節(jié)寫入操作完畢,2864A便將信號升為高電平1,用此信號通知CPU可以寫入新的數(shù)據(jù)。此時(shí),CPU可對2864A進(jìn)行新字節(jié)的讀寫操作。
(1)數(shù)據(jù)線的連接
8031的P0.0~P0.7與2864A的IO0~IO7直接連接。
(2)地址線的連接
8031的P0.0~P0.7經(jīng)過74LS373鎖存器與2864A地址線的低8位A0~A7連接。8031的P2.0~P2.4與2864A地址線的高5位A8~A12直接連接。
(3)控制線的連接
2864A的片選信號與8031的P2.7連接,讀信號由8031的、相與后產(chǎn)生,如圖8-2所示。這種連接可使2864A既作為程序存儲器使用,又作為數(shù)據(jù)存儲器使用。8264A的忙閑信號與8031的P1.0連接,用于判斷是否開始新字節(jié)的寫入操作。若將信號線與8031的中斷線INT1連接,則可通過中斷方式查詢2864A的忙閑狀態(tài),有關(guān)中斷的知識在第7章中介紹。
評論