51單片機程序存儲器擴展

2021-01-08 電子產品世界
單片機擴展中,要分別考慮程序存儲器及數據存儲器的擴展。

存儲器是單片機系統中使用最多的外擴晶片,對80C51系列單片機而言,由於程序存儲器與數據存儲器的空間在物理空間上的各自獨立性,使得兩者的擴展方法略有不同。在本節中,介紹目前常用的EPROM(Electrically Programmable Read-Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)等存儲器的擴展方法。

本文引用地址:http://www.eepw.com.cn/article/201611/318150.htm

程序存儲器用來存放編制好的始終保留的固定程序和表格常數。程序存儲器以程序計數器PC作為地址指針,通過16位地址總線,可尋址的地址空間為64KB。

在 80C51/87C51/89C51片內,分別內置最低地址空間的4KB ROM/EPROM程序存儲器(內部程序存儲器),而在8031片內,則沒有內部程序存儲器,必須外部擴展EPROM。80C51系列單片機中64KB 內、外程序存儲器的地址是統一編排的。8031單片機沒有內部程序存儲器,地址從0000H~FFFFH都是外部程序存儲空間。
應始終接地,對於內部有ROM的單片機(5l、52系列),該引腳接高電平,使程序從內部ROM開始執行。當PC值超出內部ROM的容量時,會自動轉向外部程序存儲器空間。外部程序存儲器地址空間為1000H~FFFFH,訪問程序存儲器使用MOVC指令。

目前典型的EPROM晶片為27系列產品:

型號 容量 型號 容量

27C16 2K×8位 27C128 16K×8位

27C32 4K×8位 27C256 32K×8位

27C64 8K×8位 27C512 64K×8位

.2.2 EPROM程序存儲器擴展實例

圖8-1為擴展8KB×8的程序存儲器27C64與單片機的連接電路。該電路也稱為8031的最小系統。要通過對這個系統的分析,掌握存儲器擴展電路的連接與單片機外部程序存儲器操作時序的關係,即單片機的數據總線D0~D7、地址總線A0~A15和控制信號

、ALE與外擴EPROM、74LS373的信號連接關係以及74LS373在電路中的作用。

圖中74LS373是帶三態輸出的8D鎖存器,三態控制接地。G端與8031的ALE連接,每當ALE下跳變時,74LS373鎖存低8位地址信號,並輸出供系統使用。

27C64是8KB×8位EPROM器件,有13根地址線A0~A12輸入,它能區分13位二進位地址信息。這13根地址線分別與8031的P2口和 P2.0~P2.4連接,當8031系統發出 13位地址信息時,分別選中27C64片內8KB存儲器中的各單元。

數據線的連接:存儲器的8位數據線D0~D7接P0口(P0.0~P0.7)。單片機規定指令碼和數據都由P0口讀入,數位對應相連即可。

27C64的引腳為片選信號輸入端,低電平有效,表示選中該27C64晶片。該片選信號決定了27C64這塊晶片的8KB存儲器在整個8031擴展程序存儲器64KB空間中的位置。該系統中只有一片27C64,現將
接地,表示常有效。根據上述電路接法,27C64佔有的擴展程序存儲器空間為0000H~1FFFH地址空間。

控制線的連接:


(外部程序存儲器取指信號)接(存儲器讀信號)。

ALE地址鎖存允許信號,通常接至地址鎖存器鎖存信號。

(單片機內/外程序存儲器選擇信號)當採用8031、8032時,而應接地。

此外,27C64的和Vpp端及端可組合成27C64的各種工作方式(讀、待機、寫即編程、校對等),圖中的方式處於讀和待機兩種狀態。當選通信號為低電平,選通27C64,即讀27C64中的程序或常數,當選通信號為高電平,即無效,則27C64處於低功耗待機狀態。

 

<>擴展實例

電改寫EEPROM晶片既可像RAM一樣修改其存儲單元中的內容,又可像ROM一樣在斷電後保持存儲單元中程序與數據內容不變,因而電改寫EEPROM在各種場合得到廣泛應用。下面以Intel公司生產的EEPROM2864A晶片為例介紹電改寫EEPROM。

2864A是電擦除可編程的只讀存儲器晶片。單一+5V供電,最大工作電流為160mA,維 持電流為60mA。讀出時間最大為250ns,寫入時間約為16ms,由此可見2864A的讀寫速度是較慢的。由於片內設有編程所需高壓脈衝電路,因而無 需外加編程電壓與寫入脈衝即可工作。2864A的容量為8K×8位,因此該晶片有8根數據線與13根地址線。

2864A的讀操作與普通EPROM的讀出相同,所不同的是可以在線進行字節的寫入。2864A在寫一個字節的指令或數據之前,自動將要寫入單元進行擦除,因而無需專門的擦除操作。可見使用2864A就如同使用RAM一樣方便。

當向2864A發出字節寫命令後,2864A便鎖存地址、數據及控制信號,從而啟動一次寫操作。2864A的寫入時間約為16m左右,在此期間,2864A的信號處於低電平0狀態,表示目前正在進行寫入數據的操作。其數據線處於高阻狀態與總線斷開,禁止CPU在此期間寫入新的數據,但允許CPU執行其它操作。一旦一次字節寫入操作完畢,2864A便將信號升為高電平1,用此信號通知CPU可以寫入新的數據。此時,CPU可對2864A進行新字節的讀寫操作。

(1)數據線的連接

8031的P0.0~P0.7與2864A的IO0~IO7直接連接。

(2)地址線的連接

8031的P0.0~P0.7經過74LS373鎖存器與2864A地址線的低8位A0~A7連接。8031的P2.0~P2.4與2864A地址線的高5位A8~A12直接連接。

(3)控制線的連接

2864A的片選信號與8031的P2.7連接,讀信號由8031的、相與後產生,如圖8-2所示。這種連接可使2864A既作為程序存儲器使用,又作為數據存儲器使用。8264A的忙閒信號與8031的P1.0連接,用於判斷是否開始新字節的寫入操作。若將信號線與8031的中斷線INT1連接,則可通過中斷方式查詢2864A的忙閒狀態,有關中斷的知識在第7章中介紹。

相關焦點

  • STC15系列51單片機的存儲器結構
    8位的51單片機在教學(或者自學時)領域發揮著重要作用,對於單片機的編程即是對特殊功能寄存器的編程。所以研究單片機的寄存器十分必要。STC15系列單片機的存儲器分3種,分別是程序存儲器ROM、數據存儲器RAM和特殊功能寄存器(SFRs),其中程序存儲器和數據存儲器是各自獨立編制的。
  • 51單片機訪問大容量存儲器的實現
    1 引言  MCS-51系列單片機有著優越的性價比,因此應用面寬,使用量也非常大;然而它只有16位地址線,最大能訪問的存儲空間為64K,且擴展接口與存儲器統一編址,擴展接口會佔用大量的地址空間,致使該系列單片機在數據量大的數據採集系統中,存儲空間明顯不足
  • 單片機數據存儲器RAM的擴展實例
    RAM是用來存放各種數據的,MCS-51系列8位單片機內部有128 B RAM存儲器,CPU對內部RAM具有豐富的操作指令。但是,當單片機用於實時數據採集或處理大批量數據時,僅靠片內提供的RAM是遠遠不夠的。
  • 51單片機存儲器結構介紹(1)
    > 3、片內數據存儲器 4、片外數據存儲器但在邏輯上,即從用戶的角度上,8051單片機有三個存儲空間:1、片內外統一編址的64K的程序存儲器地址空間(MOVC)下圖是8051單片機存儲器的空間結構圖那麼設計人員編寫的程序就存放在微處理器的程序存儲器中,俗稱只讀程序存儲器(ROM)。程序相當於給微處理器處理問題的一系列命令。其實程序和數據一樣,都是由機器碼組成的代碼串。只是程序代碼則存放於程序存儲器中。
  • 51單片機擴展外部RAM
    .htm單片機擴展外部RAM一、擴展總線1、簡介(這種擴展是基於總線擴展的,所以,P0、P2口就已經不可以再做它用了)1)數據總線寬度為8位,由P0口提供;2)地址總線寬度為16位,可尋址範圍2的16次,也就是64K。
  • 51單片機程序存儲器和數據存儲器
    CPU訪問存儲器時,一個地址對應唯一的存儲單元,可以是ROM也可以是RAM,並用同類訪問指令。此種存儲器結構稱普林斯頓結構。 8051的存儲器在物理結構上分程序存儲器空間和數據存儲器空間。有四個存儲空間:片內程序存儲器和片外程序存儲空間以及片內數據存儲器和片外數據存儲器。
  • 程序存儲器和數字存儲器區別是什麼?
    CPU訪問存儲器時,一個地址對應惟一的一個存儲單元,可以是ROM,也可以是RAM,用同類的訪問指令。另一種是將程序存儲器和數據存儲器截然分開,分別尋址的結構,稱為哈佛(Harvard)結構。CPU用不同的指令訪問不同的存儲器空間。由於單片機實際應用中「面向控制」的特點,一般需要較大的程序存儲器。目前,包括MCS-51和80C51系列的單片機均採用程序存儲器和數據存儲器截然分開的哈佛結構。
  • 51單片機資源擴展:擴展片外RAM
    51單片機資源擴展:從片內ROM跳轉到片外ROM 一文中擴展了單片機的程序存儲器,4KB存儲空間提升到64KB。其實,4K的代碼空間還湊合,但是51自帶的256B數據存儲空間使用起來還真緊張,其中留給用戶的連128B都不到,所以不得不擴展片外RAM。擴展RAM方法和擴展ROM差不多,都是佔用P0/P2口做地址線,同時P0用鎖存器74373分時復用地址和數據信號。
  • 單片機下程序RAM, ROM ,Flash
    擴展EEPROM(現常用256K~1M),或擴展基於SPI總線的flash memory(主流32M~128M),此兩個總線驅動程序簡單,方便擴展。單片機FLASH主要用作程序存貯器,就是替代以前的ROM,最大的有有點是降低了晶片的成本並且可以做到電擦寫,目前市場上單片機的FALSH壽命相差比較大,擦寫次數從1000~10萬的都有,但存儲時間可以保證40年,在選用時要注意.還有一些廉價的單片機為了集成可掉電的數據存儲器,沒有選用價格昂貴的EEPROM,而用FALSH來做的,但要注意其壽命最多就10萬次,而且擦寫不能字節擦寫,這要注意使用的場合其壽命是否滿足要求
  • 51單片機基礎(5)
    256位元組而沒有更高位的地址線需要給定;(3)程序存儲空間,地址範圍0~65535,(僅可)使用MOVC指令配合作為基地址的存於DPTR中的16位地址或當前PC中的16位地址和事先傳送到累加器A中的8位變地址進行基址變址方式的只讀訪問;2、內部和外部數據存儲器的區分不在於數據存儲器位於單片機內部或外部,而是在於數據存儲器與
  • 51單片機、STM32單片機、PIC單片機性能對比
    很多的八位單片機都不具備乘法功能,作乘法時還得編上一段子程序調用,十分不便。 缺點(雖然是經典但是缺點還是很明顯的): 1. AD、EEPROM等功能需要靠擴展,增加了硬體和軟體負擔 2.
  • 工作後才理解的那些51單片機存儲原理
    對於電子設計類的學生來說,其實在學校很難通過實例來理解51單片機的存儲原理。因為學校的課程很少用到外擴ROM/RAM,大多會採用C語言來進行語言編程。很多人是在工作後才實際接觸到51單片機的IP核,才對存儲原理以及數據空間有了較為清晰的認識。
  • 現在還有必要學習51單片機了嗎
    51單片機的蛻變此「51」並非彼「51」,總所周知,從1980年第一款INTEL MCS-8051單品就問世,到後來的AT89C51,AT89C52,「51」單片機除了內部的程序存儲器從EPROM發展成了FLASH之外,其餘的無論是時鐘系統,還是RAM容量,ROM容量,幾乎沒有任何改變。
  • 51單片機練習題
    1、填空題1.1、MCS-51系統中,當PSEN信號有效時,表示CPU要從(外部程序存儲器)存儲器讀取信息。本文引用地址:http://www.eepw.com.cn/article/201611/321808.htm1.2、PSW中的RS1RS0=10時,R2的地址為(12H),RS1RS0=11時,R2的地址為(1AH)。
  • Proteus軟體仿真與Keil的51單片機系統設計
    圖1 傳統的單片機系統設計流程  圖2 基於Proteus的單片機系統設計流程  2 基於Proteus的單片機系統設計與仿真  Proteus支持51、PIC、AVR、ARM7等多個系列的單片機晶片它的界面簡潔友好,可利用該軟體提供的數千種數字/模擬仿真元器件以及豐富的仿真設備,使得在程序調試、系統仿真時不僅能觀察到程序執行過程中單片機寄存器和存儲器等內容變化,還可從工程的角度直觀地看到外圍電路工作情況,非常接近工程應用。另外Proteus還能與第三方集成開發環境(如Keil的μVision)進行聯合仿真調試,給予開發人員莫大便利。
  • 51單片機指令快速記憶方法總結
    我們建議你選擇8051單片機開始學習的原因還在於8051家族的派生品很多,例如ATMEL公司的AT89C51系列單片機就是完全兼容MSC-51 8051系列的(也就是說,AT89C51的指令、管腳、內部主要結構,以及用法與MSC-51相同),他不但兼容,而且還有不少創新,比如他的程序存儲器可以電擦、寫,一片IC就擁有了過去單片機的最小系統,不需要以前所謂的373和EPROM元件;所以
  • 51單片機 P0口工作原理詳細講解
    下面一個是讀引腳的緩衝器,要讀取P0.X引腳上的數據,也要使標號為『讀引腳』的這個三態緩衝器的控制端有效,引腳上的數據才會傳輸到我們單片機的內部數據總線上。D鎖存器:構成一個鎖存器,通常要用一個時序電路,時序的單元電路在學數字電路時我們已知道,一個觸發器可以保存一位的二進位數(即具有保持功能),在51單片機的32根I/O口線中都是用一個D觸發器來構成鎖存器的。
  • 基於proteus的51單片機開發實例37-DAC0832
    基於proteus的51單片機開發實例37-DAC08321.1. 實驗目的之前我們學習了數模轉換晶片DAC0808,今天我們繼續學習另一種D/A轉換晶片DAC0832。設計思路圖1 DAC0832電路本例中使用51單片機控制D/A
  • pic單片機教程之13位程序計數器存儲器的組成
    [導讀]本節主要講解PICMicro中檔系列單片機13位程序計數器的程序存儲器構成。包括存儲器尋址方式、存儲器分頁、程序存儲器頁之間的跳轉實現及相關跳轉指令、技術原理。本文引用地址:http://www.eepw.com.cn/article/201608/295777.htm關鍵詞:程序存儲器PIC單片機單片機的兩種存儲器模塊:程序存儲器與數據存儲器。每個存儲模塊都有自己的數據總線,能在同一時間戳內對模塊同時進行數據存儲與指令操作。
  • 單片機中的數據存儲器ram
    存儲器是由許多的存儲單元集合所成,按照單元號順序進行排列。每個單元由若干三進位位構成,以表示存儲單元中所存放的數值,這種結構和數組的結構非常相似,故在VHDL語言中,通常是由數組描述存儲器。存儲器是用來存儲程序和各種數據信息的記憶部件。