第7章MCS-51單片機的外部擴展技術(一)(徐進老師制作)_第1頁
第7章MCS-51單片機的外部擴展技術(一)(徐進老師制作)_第2頁
第7章MCS-51單片機的外部擴展技術(一)(徐進老師制作)_第3頁
第7章MCS-51單片機的外部擴展技術(一)(徐進老師制作)_第4頁
第7章MCS-51單片機的外部擴展技術(一)(徐進老師制作)_第5頁
已閱讀5頁,還剩133頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第7章 MCS-51單片機的外部擴展技術(一)單片機中雖然已經(jīng)集成了CPU、I/O口、定時器、中斷系統(tǒng)、存儲器等計算機的基本部件(即系統(tǒng)資源),但是對一些較復雜應用系統(tǒng)來說有時感到以上資源中的一種或幾種不夠用,這就需要在單片機芯片外加相應的芯片、電路,使得有關功能得以擴充,我們稱為系統(tǒng)擴展。MCS-51單片機系統(tǒng)擴展主要包括外部并行系統(tǒng)總線、外部存儲器、外部I/O接口、外部中斷系統(tǒng)、管理功能部件(如定時/計數(shù)器、鍵盤/顯示器/打印機等)、模擬通道(A/D和D/A)等的擴展技術。系統(tǒng)擴展方法有并行擴展法和串行擴展法兩種,本章將介紹并行的外部總線、外部程序存儲器、外部數(shù)據(jù)存儲器、外部I/O接口的擴

2、展技術以及簡單的串行擴展方法。本章的重點是并行擴展方法中常用的存儲器芯片、I/O接口芯片與MCS-51單片機的接口設計和編程,特別是高位地址線的幾種譯碼連接方式以及芯片的地址計算,本章的難點是外部擴展芯片如何與MCS-51單片機正確連接、地址譯碼方式選擇及地址計算、可編程I/O接口8155 / 8255的初始化及其編程等。7.1 并行擴展方法的概述 MCS-51單片機的特點就是體積小,功能全,系統(tǒng)結(jié)構緊湊,硬件設計靈活。對于簡單的應用,最小應用系統(tǒng)(簡稱最小系統(tǒng))即能滿足要求。所謂最小系統(tǒng)是指在最少的外部電路條件下,形成一個可獨立工作的單片機應用系統(tǒng)。無ROM的單片機芯片(如8031)至少必須

3、擴展ROM,復位、晶振電路才能構成最小系統(tǒng),外接ROM后,P3口、P2口、P0口均被占用只剩下P1口作I/O口用,其它功能不變;而帶ROM單片機芯片(如8051、8751等)可能不必擴展ROM和RAM,只要有復位、晶振電路等就能構成最小系統(tǒng)。 圖7-1為MCS51單片機最小系統(tǒng)示意圖。1. MCS-51單片機的最小應用系統(tǒng)圖7-1 MCS-51單片機最小系統(tǒng)2. MCS-51單片機并行擴展的三總線結(jié)構圖7-2 MCS-51單片機的三總線結(jié)構形式。并行擴展三總線分別為地址總線AB、數(shù)據(jù)總線DB和控制總線CB。1)地址總線AB,由P0口提供低8位A7 A0、P2口提供高8位A15 A8,共16位,

4、可尋址范圍達216=64K。由于P0口是數(shù)據(jù)、地址分時復用,所以P0口輸出的低8位地址必須采用地址鎖存器進行鎖存,地址鎖存器一般選用帶三態(tài)緩沖器輸出的8D鎖存器74LS373;3)控制總線CB,包括 、 、 、ALE 、 等信號組成,它們用于讀/寫控制、地址鎖存控制和片內(nèi)、片外ROM選擇。PSENWRRDEA2)數(shù)據(jù)總線DB,P0口提供8位的D7 D0,共8位;3. 三總線結(jié)構中的地址鎖存器 在單片機擴展三總線結(jié)構中需要采用地址鎖存器,常用的地址鎖存器有74LS273、Intel 8282和74LS373。圖7-3 常用3種地址鎖存器的引腳結(jié)構1) 74LS273是具有異步清零的TTL上升沿鎖

5、存器。每一位都是一個D觸發(fā)器,8個D觸發(fā)器的控制端連接在一起。由于此芯片內(nèi)部無三態(tài)鎖存器,因此其輸出只有高、低兩種狀態(tài)。2) Intel 8282是帶有三態(tài)輸出的TTL電平鎖存器。它的內(nèi)部除了具有類似74LS273的8個D觸發(fā)器外,還集成了8位的三態(tài)門,為三態(tài)門的輸出允許引腳,當=0時三態(tài)門打開,允許輸出,否則三態(tài)門禁止輸出,因此其每一位都是一個三態(tài)鎖存器。8個三態(tài)鎖存器的控制端STB連在一起,當電平鎖存引腳STB =1時,鎖存器的數(shù)據(jù)輸出端Q的狀態(tài)與數(shù)據(jù)輸入端D相同;而當STB=0時,輸入端的數(shù)據(jù)就被鎖存在鎖存器中,數(shù)據(jù)輸入端D的變化不再影響Q端輸出。 3) 74LS373也是帶有三態(tài)輸出的

6、TTL電平鎖存器。74LS373與Intel 8282功能完全一樣,它們僅是引腳分布位置不同而已。G為電平鎖存引腳, 為輸出允許引腳。當G為高電平時,鎖存器的數(shù)據(jù)輸出端Q的狀態(tài)與數(shù)據(jù)輸入端D相同。當G端從高電平返回到低電平時(下降沿后),輸入端的數(shù)據(jù)就被鎖存在鎖存器中,數(shù)據(jù)輸入端D的變化不再影響Q端輸出。圖 7-4 地址鎖存器74LS373的內(nèi)部結(jié)構及與MCS-51單片機的連接引腳示意圖。4. 并行擴展三總線的驅(qū)動在單片機應用系統(tǒng)中, 擴展的三總線上掛接很多負載, 如存儲器、并行接口、A/D接口、顯示接口等, 但總線接口的負載能力有限, 因此常常需要通過連接總線驅(qū)動器進行總線驅(qū)動。總線驅(qū)動器對

7、于單片機的I/O口只相當于增加了一個TTL或CMOS負載,因此驅(qū)動器除了對后級電路驅(qū)動外,還能對負載的波動變化起隔離作用。當P0口總線負載達到或超出P0口最大負載能力8個TTL門時,必須接入總線驅(qū)動器。因P0口傳送數(shù)據(jù)是雙向的,因此要擴展的數(shù)據(jù)總線驅(qū)動器也必須具有雙向三態(tài)功能。除雙向數(shù)據(jù)總線外,單片機有可能擴展的還有、ALE等控制總線和P2口高8位地址總線,它們屬于單向總線。當這些引腳的總線負載達到或超出它們的最大負載能力34個TTL門時,也必須接入總線驅(qū)動器。在對TTL負載驅(qū)動時,只需考慮驅(qū)動電流的大??;在對MOS負載驅(qū)動時,MOS負載的輸入電流很小,更多地要考慮電平的兼容和分布電容的電流。

8、一般TTL電平和CMOS 電平是不兼容的,CMOS電路能驅(qū)動TTL電路,而TTL電路一般不能驅(qū)動CMOS電路,在TTL電路和CMOS電路混用的系統(tǒng)中,應特別注意。74245是8同相三態(tài)雙向總線收發(fā)器,可雙向傳輸,有一個方向控制端DIR。當 1時,AB為高阻;當 0,DIR1時,AB;當0,DIR0時,BA。CECE1)常用的總線驅(qū)動器圖7-5 74LS245引腳圖、邏輯圖和功能表 系統(tǒng)中的數(shù)據(jù)總線是雙向的,其驅(qū)動器也要選用雙向的。(如74LS245)74244是8同相三態(tài)緩沖驅(qū)動器,片內(nèi)有兩組三態(tài)緩沖器,每組4個,分別由一個門控端控制。即第1組的輸入1A11A4,輸出1Y11Y4,門控端 ;第

9、2組的輸入2A12A4,輸出2Y12Y4,門控端 。門控端 、 為低電平(有效)時,輸入端信號A從輸出端Y輸出,即Y=A,而門控端 、 高電平(無效)時,輸出端Y呈高阻態(tài)。2G1G2G1G1G2G系統(tǒng)總線中地址總線和控制總線是單向的, 因此驅(qū)動器可以選用單向的。(如74LS244)圖7-6 單向驅(qū)動器74LS244的引腳圖、邏輯圖和功能表PSENRDWRCEPSENRDPSENRDPSENRDWRWRWR控制DIR可用 或 或 ,片選端 直接接地,始終有效。圖7-7(a)用 或 控制DIR,A0A7接P0口,B0B7接外RAM 或外設。當 或 有效時,DIR=0,數(shù)據(jù)從B到A; 和 無效時,D

10、IR=1,數(shù)據(jù)從A到B;圖7-7(b)用 控制DIR,B0B7接P0口,A0A7接外RAM 或外設。當 有效時,DIR=0,數(shù)據(jù)從B到A; 無效時,DIR=1,數(shù)據(jù)從A到B。2)典型的三總線驅(qū)動電路 圖7-7 采用74LS245實現(xiàn)P0口雙向總線的驅(qū)動電路(a) 采用 或 控制DIR PSENRD(b) 采用 控制DIR WR圖7-8 采用74LS244的單向總線驅(qū)動電路(a) 控制總線的驅(qū)動電路 (b) P2口的驅(qū)動電路 若需擴展P2口(高8位地址總線,單向)或 、 、 、ALE 等單向控制總線,就不必用74LS245,可用74LS244。圖為74LS244與MCS-51單片機連接的典型應用

11、電路。因這些地址信號或控制信號是單向傳輸,且不允許鎖存, 、 接地始終有效。 PSENWRRD1G2G7.2 MCS-51單片機的外部存貯器擴展 根據(jù)MCS-51單片機的地址總線AB的寬度(16位),片外可擴展的存儲器最大容量為216=64 KB,地址范圍為0000HFFFFH。 因為MCS-51單片機對片內(nèi)、外程序存儲器ROM和片外數(shù)據(jù)存儲器RAM的操作使用不同的指令和控制信號,所以允許兩者的地址空間重疊,故片內(nèi)、外可擴展的程序存儲器與片外數(shù)據(jù)存儲器分別為64 KB。為了配置外部設備而需要擴展的I/O口與片外數(shù)據(jù)存儲器RAM統(tǒng)一編址,即占據(jù)相同的地址空間。因此,片外數(shù)據(jù)存儲器RAM連同I/O

12、口一起總的擴展容量是64 KB。 如果系統(tǒng)需要用到的存儲器超過了單片機本身具有的容量,就要進行片外程序存儲器或者數(shù)據(jù)存儲器的擴展。7.2.1 存儲器擴展概述1. MCS-51單片機的擴展能力計算機系統(tǒng)中的存儲器根據(jù)存儲元件的材料來分,可分為半導體存儲器、磁存儲器及光存儲器。按工作時與CPU聯(lián)系的密切程度分,存儲器可分為主存和輔存,或稱為內(nèi)存和外存。主存存放當前運行的程序和數(shù)據(jù),它和CPU直接交換信息,且按存儲單元進行讀寫數(shù)據(jù),其特點主要是存取速度快,容量相對要小;輔存則作為主存的后援,存放暫時不執(zhí)行的程序和數(shù)據(jù),它只是在需要時調(diào)入內(nèi)存后CPU才能訪問,因此輔存通常容量大,但存取速度慢。由于半導

13、體存儲器是以集成電路的形式出現(xiàn),當今微型計算機系統(tǒng)中的主存幾乎全部是使用的半導體存儲器,而磁和光等存儲器主要用作大容量輔存,如磁盤、磁帶、光盤等。2. 存儲器的種類(1)半導體存儲器分類大規(guī)模集成電路技術的發(fā)展使得半導體存儲器的價格大大降低,現(xiàn)代單片機的主存儲器已普遍采用半導體存儲器。半導體存儲器按存取方式可分為兩大類:隨機存取存儲器RAM(Random Access Memory)和只讀存儲器ROM(Read Only Memory)。RAM中任何存儲單元都能隨機讀寫,即存取操作與時間、存儲單元的物理位置順序無關,其存儲的內(nèi)容可隨時寫入和修改,但掉電后RAM中的內(nèi)容會全部丟失,一般計算機系統(tǒng)

14、中的RAM主要用來存放當前運行的程序、各種輸入輸出數(shù)據(jù)、中間結(jié)果及堆棧等,而在MCS-51單片機中用于數(shù)據(jù)存儲器的擴展。而ROM在計算機中的存儲的內(nèi)容是固定不變的,聯(lián)機工作時只能讀出不能寫入,掉電以后信息不會丟失,常被一般用于存放一些固定的程序如監(jiān)控程序、BIOS程序等,而在MCS-51單片機中用于程序存儲器的擴展。ROM又可分為掩膜ROM、可編程ROM(PROM)、光可擦除ROM(EPROM)、電可擦除EEPROM(也稱E2PROM)和閃存FLASH。其中掩膜ROM在信息制作在芯片中,不可更改;PROM僅允許一次編程,此后不可更改;EPROM采用紫外光擦除,擦除后可編程,并允許用戶多次擦除和

15、編程;EEPROM (E2PROM)采用加電方法在線進行擦除和編程,也可多次擦寫;Flash Memory (閃存)能夠快速擦寫的EEPROM,但只能按塊(Block)擦除。由于用戶編寫的單片機程序都需要反復多次進行修改與調(diào)試,因此,單片機外部擴展的程序存儲器只用EPROM 、E2PROM和FLASH等可多次擦除的ROM。(2)ROM分類(3)RAM分類RAM按采用器件可分為雙極性存儲器和MOS型存儲器,而MOS型存儲器按存儲原理又可分為靜態(tài)讀寫存儲器(SRAM)和動態(tài)讀寫存儲器(DRAM)兩種。其中SRAM的基本存儲電路(存儲元)通常是由6個MOS管組成的雙穩(wěn)態(tài)觸發(fā)器電路,在沒有信號觸發(fā)的情

16、況下,只要電路不掉電,雙穩(wěn)態(tài)觸發(fā)器電路的狀態(tài)就不會變化,也就是說存儲的內(nèi)容不丟失。SRAM讀寫速度高,使用方便,但成本高,功耗大;而DRAM是靠MOS電路中的柵極電容來存儲信息的。由于電容上的電荷會逐漸泄漏,在沒有信號觸發(fā)的情況下,一段時間后電路的狀態(tài)就會變化,也就是說存儲的內(nèi)容要丟失,所以需要定時充電以維持存儲內(nèi)容不丟失(稱為動態(tài)刷新),因此DRAM需要設置刷新電路,相應外圍電路就較為復雜(也有刷新電路做在芯片內(nèi)的),DRAM的刷新定時間隔一般為幾ms。DRAM特點為集成度高(存儲容量大,可達1Gbit/片以上)、功耗低、價格低,但速度慢(10ns左右),需要刷新電路,附加另外的成本。DRA

17、M應用非常廣泛,如微機中的內(nèi)存條、顯卡上的顯存幾乎都是用DRAM制造的。由于MCS-51單片機內(nèi)部沒有集成刷新電路,采用DRAM需要外部連接相應的刷新電路,連接成本較高,因此,單片機外部擴展的數(shù)據(jù)存儲器一般只用SRAM。3. 存儲器的字、位擴展 由于任何存儲芯片的存儲容量都是有限的,故要構成一定容量的內(nèi)存,單個存儲芯片往往不能滿足字長或者存儲單元個數(shù)的要求,甚至字長、存儲單元數(shù)都不能滿足要求。這時就需要多個存儲芯片進行組合,以滿足對存儲容量的要求。這種組合稱為存儲器的擴展,擴展時要解決的問題包括位擴展、字擴展和字位擴展。1)位擴展位擴展是指增加存儲的字長。一塊實際的存儲芯片,其每個單元的位數(shù)往

18、往與實際內(nèi)存單元字長并不相等。存儲芯片可以是1、4位或8位,如DRAM芯片Intel 2164為64K1bit,SRAM芯片Intel 2114為1K4bit,Intel 6264為8K8bit,而計算機內(nèi)存一般是按字節(jié)(如MCS-單片機字長為8)來進行組織的,若要使用2164、2114這樣的存儲芯片來構成內(nèi)存,單個存儲芯片字長(位數(shù))就不能滿足要求,這時就需要進行位擴展,以滿足內(nèi)存單元字長的要求。一般位擴展構成的存儲器系統(tǒng)中一個內(nèi)存單元中的內(nèi)容被分別存儲在不同的芯片上。例如用2片4K4bit的存儲器芯片經(jīng)位擴展構成4KB的存儲器中,每個單元中的8位二進制數(shù)被分別存在兩個芯片上,即一個芯片存該

19、單元內(nèi)容的高4位,另一個芯片存該單元內(nèi)容的低4位??梢钥闯?,位擴展保持總的地址單元數(shù)(存儲單元個數(shù))不變,但每個單元中的位數(shù)增加。位擴展電路的連接方法是:將每個存儲芯片的地址線和控制線(包括選片信號線、讀寫信號線等)全部并聯(lián)在一起,而將它們的數(shù)據(jù)線分別引出至數(shù)據(jù)總線的不同位上。(2)字擴展 字擴展是對存儲器容量的擴展(或存儲空間的擴展)。此時存儲器芯片上每個存儲單元的字長已滿足要求(如字長已為8位),而只是存儲單元的個數(shù)不夠,需要的是增加存儲單元的數(shù)量,這就是字擴展,即用多片字長為8位的存儲芯片構成所需要的存儲空間。 例如,用1K8bit的存儲器芯片組成2KB的內(nèi)存儲器。在這里,字長已滿足要求

20、,只是容量不夠,所以需要進行字擴展,顯然需兩片1K8bit的存儲器芯片來實現(xiàn)。 字擴展電路的連接方法是將每個芯片的地址信號、數(shù)據(jù)信號和讀寫信號等控制信號按信號名稱全部并聯(lián)在一起,只將片選端分別引出到地址譯碼器的不同輸出端,即用片選信號來區(qū)別各個芯片的地址。(3)字位擴展 在構成一個實際的存儲器時,往往需同時進行位擴展和字擴展才能滿足存儲容量的要求。微機中內(nèi)存的構成就是字位擴展的一個很好的例子。首先,存儲器芯片生產(chǎn)廠制造出一個個單獨的存儲芯片,如64M1位、128M1位等;然后,內(nèi)存條生產(chǎn)廠將若干個芯片用位擴展的方法組裝成內(nèi)存模塊(即內(nèi)存條),如用8片128M1位的芯片組成128MB的內(nèi)存條;最

21、后,用戶根據(jù)實際需要購買若干個內(nèi)存條插到主板上構成自己的內(nèi)存系統(tǒng),即字擴展。一般來講,最終用戶做的都是字擴展(即增加內(nèi)存地址單元)的工作。 進行字位擴展時,一般先進行位擴展,構成字長滿足要求的內(nèi)存模塊,然后再用若干個這樣的模塊進行字擴展,使總?cè)萘繚M足要求。(4)擴展存儲器所需芯片數(shù)目的確定 若所選存儲器芯片字長與單片機字長一致,則只需擴展容量。此時,所需芯片數(shù)目按下式確定: 芯片數(shù)目=系統(tǒng)擴展容量/存儲器芯片容量 若所選存儲器芯片字長與單片機字長不一致,則不僅需擴展容量,還需字擴展。若要構成一個容量為MN位的存儲器,并采用LK位的芯片(LM,KN),則構成這個存儲器需要這樣的存儲器芯片數(shù)量為:

22、 芯片數(shù)目=系統(tǒng)擴展容量M/存儲器芯片容量L系統(tǒng)字長N/存儲器芯片字長K=M/LN/K 由于MCS-51單片機應用系統(tǒng)一般需要擴展存儲器的規(guī)模較小,因此,一般不會使用單片大容量存儲器芯片,而為使擴展電路簡單,通常選用字長已滿足要求的芯片,存儲器擴展一般只進行字擴展,即作容量擴展。4. 擴展存儲器的一般連接方法 存儲器芯片有多種。即使是同一種類的存儲器芯片,容量的不同,其引腳數(shù)目也不同。盡管如此,存儲器芯片與單片機擴展連接具有共同的規(guī)律。不論何種存儲器芯片,其引腳也都呈三總線結(jié)構,而單片機擴展是采用三總線結(jié)構,一般兩者的三總線時序要求是基本一致的,因此,只有把兩者的三總線對接起來就可以了。當然,

23、電源線也應接對應的電源線。因此,系統(tǒng)的擴展歸結(jié)為三總線的連接。存儲器芯片的三總線與單片機擴展三總線連接原則為: 對于程序存儲器ROM,一般來說,具有讀操作控制線,它與單片機的信號線相連。除此之外,對于EPROM芯片還有編程脈沖輸入線、編程狀態(tài)線(READY/BUSY)。應與單片機在編程方式下的編程脈沖輸出線相接;READY/BUSY在單片機查詢輸入/輸出方式下,與一根I/O口線相接;在單片機中斷工作方式下,與一個外部中斷信號輸入線相接。對于數(shù)據(jù)存儲器RAM,一般來說,具有讀操作控制線和寫操作控制線,它與單片機的、信號線相連。(1)存儲器芯片的控制線 (2)存儲器芯片的數(shù)據(jù)線 數(shù)據(jù)線的數(shù)目由芯片

24、的字長決定。1位、4位、8位字長的芯片數(shù)據(jù)線分別有1根、4根、8根。由于單片機的數(shù)據(jù)總線為8位,若存儲器芯片的數(shù)據(jù)線不足8但,還需進行位擴展;一般擴展的存儲器芯片的數(shù)據(jù)線也應選為8位,此時它們只需與單片機的8位數(shù)據(jù)總線DB(D0D7)按由低位到高位的順序順次對接即可。(3)存儲器芯片的地址線存儲器芯片的地址線數(shù)目由芯片的存儲容量決定,存儲容量Q與地址線數(shù)目N滿足關系式:Q=2N。存儲器芯片的地址線用于選擇片內(nèi)的存儲單元或端口,稱為字選或片內(nèi)選擇,它們與單片機的地址總線AB(A0A15)按由低位到高位的順序順次相接。一般來說,存儲器芯片的地址線數(shù)目總是少于單片機地址總線的數(shù)目,如此相接后,單片機

25、的高位地址線總有剩余。剩余地址線一般作為譯碼線,譯碼輸出與存儲器芯片的片選信號線相接。存儲器芯片一般都有1根(或幾根)片選信號線(或)。對存儲器芯片訪問時,片選信號必須有效,即選中存儲器芯片。片選信號線與單片機系統(tǒng)的譯碼輸出相接后,就決定了存儲器芯片的地址范圍。一個芯片的某個單元或某個端口的地址由片選的地址和片內(nèi)字選擇地址共同組成,因此字選和片選引腳均應接到單片機的地址線上。連線的方法是:字選:外圍芯片的字選(片內(nèi)選擇)地址線引腳直接接單片機的從A0開始的低位地址線;片選:外圍芯片的片選(芯片選擇)采用剩余的高位地址線經(jīng)譯碼后的輸出來選擇,一般作為譯碼線片選引腳的連接方法有線選譯碼、譯碼器譯碼

26、、直接接地3種,在單片機中常采用線選譯碼法。因此,單片機的剩余高位地址線的譯碼及譯碼輸出與存儲器芯片的片選信號線的連接,是存儲器擴展連接的關鍵問題。(4)其他注意問題 例如,單片機三總線的時序與存儲器的讀寫時序的匹配問題,如果兩者時序不一致,還需通過中間的接口電路使兩者時序基本一致后,才能對接;再如,單片機三總線的負載能力問題等。單片機三總線一般只能帶38個TTL負載。當擴展的芯片超過其負載能力時,系統(tǒng)三總線需驅(qū)動與隔離,此時數(shù)據(jù)總線DB要74LS245雙向驅(qū)動,地址總線AB與控制總線CB則需74LS244單向驅(qū)動,驅(qū)動器的輸出再連至外擴的存儲器或I/O電路。5存儲器芯片的選片方式存儲器芯片的

27、字選(片內(nèi)選擇)地址線引腳直接接單片機的從A0開始的低位地址線;而片選引腳的連接方法主要有線選譯碼、譯碼器譯碼(包含部分譯碼和全譯碼)、直接接地3種。高位地址線不經(jīng)過譯碼,直接(或經(jīng)反相器)分別接各存儲器芯片的片選端來區(qū)別各芯片的地址。它的優(yōu)點是電路最簡單, 但缺點是也會造成地址重疊,且各芯片地址不連續(xù)。此法適用于外圍芯片不多的情況,它是一種最簡單,最低廉的連接方法。圖7-9為線選譯碼法的連接示意圖。(1)線選法(或稱線譯碼)圖7-9 線選譯碼法的連接示意圖其中:部分譯碼用片內(nèi)尋址外的高位地址的一部分(而不是全部)作為譯碼產(chǎn)生片選信號。部分譯碼優(yōu)點是較全譯碼簡單,但缺點是存在地址重疊區(qū);而全譯

28、碼法把全部高位地址線都作為譯碼信號來參加譯碼,譯碼輸出作為片選信號。全譯碼的優(yōu)點是每個芯片的地址范圍是唯一確定,而且各片之間是連續(xù)的。缺點是譯碼電路比較復雜。(2)譯碼器譯碼片選引腳接到高位地址線經(jīng)譯碼器譯碼后的輸出線,這種通過譯碼器的譯碼方式又可分為部分譯碼、全譯碼法兩種。(a) 全譯碼 (b) 部分譯碼 對于部分譯碼,參與譯碼的地址線對于選中某一存儲器芯片有一個確定的狀態(tài),而與不參加譯碼的地址線無關,即只要參加譯碼的地址線處于對某一存儲器芯片的選中狀態(tài),不參加譯碼的地址線的任意狀態(tài)都可以選中該芯片。正因如此,部分譯碼使存儲器芯片的地址空間有重疊,所謂重疊的地址就是同一存儲單元有多個不同的地

29、址,也就是說一個存儲單元占據(jù)多個地址,因而會造成地址浪費,這是部分譯碼的缺點。 圖7-11 為某一2KB容量的存儲器與51單片機的地址線連接關系圖。由于2K=211,存儲器芯片需要11根地址線,圖中與存儲器芯片連接的低11位地址線的地址變化范圍為全“0” 全“1”。剩余的5根高位地址線僅4根地址線參加譯碼,只有這4根地址線狀態(tài)為0100時譯碼器的輸出信號才為0,才能用于片選該芯片,也就是說它們是唯一確定的。但不參加譯碼的A15位地址線任何狀態(tài)(有兩種狀態(tài))都會選中該存儲器芯片。當A15=0時,占用的地址是0010000000000000B0010011111111111B,即2000H27FF

30、H;當A15=1時,占用的地址是1010000000000000B1010011111111111B,即A000HA7FFH。同理,若有N條高位地址線不參加譯碼,則有2N個重疊的地址范圍。當然,部分譯碼的優(yōu)點是譯碼電路比較簡單。圖7-11 某2KB容量的存儲器與MCS-51單片機的地址線連接關系當接入單片機的外部擴展RAM或ROM存儲器芯片僅1片時,存儲器的片選端可直接接地,使外擴的存儲器始終處于選中狀態(tài)。圖7-12為直接接地法的連接示意圖。(3) 片選端可直接接地圖7-12 直接接地法的連接示意圖6存儲器芯片的譯碼電路 74LS138是3-8譯碼器,它有3個輸入端、3個控制端及8個輸出端,引

31、線及功能如圖7-13所示。74LS138譯碼器只有當控制端G1、 、 為 1 0 0 時,才會在輸出的某一端(由輸入端C、B、A的狀態(tài)決定)輸出低電平信號,其余的輸出端仍為高電平。G2A G2B 譯碼電路用于地址譯碼,它將輸入的一組二進制編碼變換為一個特定的控制信號,即將輸入的一組高位地址信號通過變換,產(chǎn)生一個有效的控制信號,用于選中某一個存儲器芯片,從而確定該存儲器芯片在內(nèi)存中的地址范圍。 譯碼電路可用普通的邏輯芯片或?qū)iT的譯碼器芯片實現(xiàn)。常用的譯碼器芯片有雙2-4譯碼器74LS139、3-8譯碼器74LS138和 4-16譯碼器74LS154等。下面僅介紹目前最常用的74LS138譯碼器。

32、圖7-13 74LS138引腳圖和譯碼邏輯關系7單片機擴展系統(tǒng)的分類 根據(jù) MCS-51單片機系統(tǒng)所擴展的規(guī)模,可分為最?。⊿mall)系統(tǒng)、緊湊(Compact)系統(tǒng)、大(Large)系統(tǒng)和海量(Vast)系統(tǒng)的4種。 最小系統(tǒng)前面已述。 最小系統(tǒng)一般不需擴展外部芯片,若需擴展的話,一般僅需擴展1片RAM或ROM或I/O接口芯片,此時譯碼方式一般都采用直接接地方式。(1) 緊湊擴展系統(tǒng) 緊湊系統(tǒng)擴展總線的地址總線寬度為8位,可擴展的單元的最大容量為256B,地址為00HFFH。 在緊湊系統(tǒng)中,P0口輸出的地址信息也必須由ALE打入外部的地址鎖存器,控制總線只有外部數(shù)據(jù)存貯器的讀信號線、寫信號

33、線。 由于單片機內(nèi)部資源種類和數(shù)量的增加,目前大多數(shù)的單片機應用系統(tǒng)不需要大規(guī)模擴展外部存貯器,尤其是不需要擴展程序存貯器ROM,對于只擴展少量數(shù)據(jù)存貯器RAM和I/O接口的系統(tǒng),我們稱之為緊湊系統(tǒng)。在緊湊系統(tǒng)中,只用P0 口作為擴展總線口,P2口可以作為第一功能的準雙向口使用接I/O設備,也可以將部分口線作為地址線。這種系統(tǒng)中,為了不影響P2口所連的設備,CPU訪問外部數(shù)據(jù)存貯器時,不能用DPTR作地址指針,只能用R0、 R1作地址指針,即只使用(MOVX A,Ri)和(MOVX Ri,A)指令操作。圖7-13 緊湊系統(tǒng)的擴展總線圖線選法適用于只擴展少量I/O接口芯片的應用系統(tǒng)。對于I/O接

34、口芯片,內(nèi)部的寄存器一般不大于8個,可以用A0A2作為芯片中寄存器的地址選擇線,A3A7作為選片信號線,則可以外接5個I/O接口芯片。按線選法的地址分配方法,這5個芯片的地址分別為:01111 000B01111 111B(即78H7FH)、 10111 000B10111 111B(即B8HBFH)、 11011 000B11011 111B(即D8HDFH)、11101 000B11101 111B(即E8HEFH)、11110 000B11110 111B(即F0HF7H)。緊湊系統(tǒng)的地址譯碼方法同樣有線選法和譯碼法兩種,而譯碼法種又有全地址譯碼和部分地址譯碼。緊湊系統(tǒng)的地址譯碼方法1)

35、線選法2)地址譯碼法若A0A3作為芯片中寄存器地址選擇線,A4A7用416譯碼器產(chǎn)生選片信號線,則最多可以接16片I/O接口芯片,地址分別為00000000B00001111B(即00FH)、00010000B00011111B(即101FH)、11110000B11111111B(即F0HFFH)。3)P2口部分口線作為地址線的譯碼方法對于擴展256字節(jié)RAM和I/O口的系統(tǒng),可以用P2口的部分口線作為地址線,剩余的P2口線連I/O設備,這種系統(tǒng)也稱為緊湊系統(tǒng)。在訪問外部數(shù)據(jù)存貯器時,先對作為地址線的P2口口線操作,選中外部數(shù)據(jù)存貯器某一頁,然后用R0或R1作為頁內(nèi)地址指針,對外部數(shù)據(jù)存貯器

36、進行讀或?qū)?。圖7-15 P2口部分口線作為地址線的一種譯碼方法 【例7-1】圖7-15所示的是一種把P2.0、P2.1作為地址線的地址譯碼方法,圖中采用了線選法和譯碼法相結(jié)合的方法。 、 用線選法產(chǎn)生,在 、 都為高電平時,3-8譯碼器輸出的 、 、 、 中有一個選片信號線有效,這樣可外接 6個芯片。CS0CS1CS2 CS3 CS4 CS5CS0CS1(2) 大擴展系統(tǒng) 對于硬件需求量大,外部存貯器空間被充分利用的應用系統(tǒng),其系統(tǒng)結(jié)構規(guī)模大,我們稱之為大系統(tǒng)。在大系統(tǒng)中,P0 口和P2 口都作為總線口使用,不能作為第一功能的I/O接口連接外部設備。DPTR、 R0、 R1都可以作為訪問外部數(shù)

37、據(jù)存貯器的地址指針。 大系統(tǒng)擴展總線中P0 口、P2 口作為擴展總線的地址總線AB口時,P2口輸出高8位地址A8A15, P0口通過地址鎖存器輸出低8位地址A0A7,P0口同時作為雙向數(shù)據(jù)總線DB D0D7,控制總線CB有外部程序存貯器ROM讀選通信號線,外部數(shù)據(jù)存貯器RAM的讀信號線、寫信號線,以及低8位地址A0A7的鎖存信號線ALE。大系統(tǒng)擴展構成的片外總線結(jié)構圖(圖7-2) 并行擴展的核心問題是的編址問題。單片機中CPU是根據(jù)地址訪問外部存貯器的,即由地址總線上地址信息選中某一芯片的某個單元進行讀或?qū)憽4笙到y(tǒng)擴展總線的地址總線寬度為16位,可擴展的單元的最大容量為64KB,地址為0000

38、HFFFFH。 在實際的應用系統(tǒng)中,MCS-51單片機有時需要擴展多片外圍芯片,這時一般通過芯片選擇信號線(片選線)來識別不同的外圍芯片,通常片選方式還是線選法和譯碼法。 因為大系統(tǒng)擴展總線的地址總線寬度為16位,所以要使用MCS-51單片機指令中具有16位地址尋址功能的操作指令,MCS-51單片機對外操作的指令有6條,它們是:MOVX Ri,A;MOVX A,DPTR;MOVX A,DPTR;MOVC A,A+DPTR;MOVC A,A+PCMOVX A,Ri;其中:、指令使用P0端口輸出8位地址信號(P2端口不用);當使用、指令時,P0端口輸出DPIR提供的DPL低8位地址信號,P2端口輸

39、出DPIR提供的DPH高8位地址信號;、指令操作外部數(shù)據(jù)存貯器的讀信號線 (P3.7)或?qū)懶盘柧€ (P3.6)。當使用、指令時,P0端口輸出A+DPTR或A+PC提供的低8位地址信號,P2端口輸出A+DPTR或A+PC提供的高8位地址信號,但指令操作外部程序存貯器讀選通信號線 。PSENRDWR(3)海量擴展系統(tǒng)在報站器、屏幕顯示等一些特殊應用中,需超過64KB的存貯器,則可以用P1的口線作為區(qū)開關來實現(xiàn)。如擴展1片128KB SRAM 628128和I/O口的系統(tǒng),可以采用圖7-16 的一種譯碼方法。圖中,628128占0區(qū)和1區(qū)的64KB存貯空間,I/O接口占2區(qū)存貯空間,每個區(qū)為64KB

40、。在訪問外部RAM/IO時,先對P1.1、P1.0操作選擇一個區(qū),然后用DPTR作指針,對所選中的區(qū)中的單元操作。也可以用擴展I/O口作為地線(如3個8位口產(chǎn)生24位地址),將地址寫入擴展口以后再對存貯器讀寫。圖7-16 海量存貯器的一種譯碼方法 目前在單片機應用中,已很少擴展程序存貯器。如89C52芯片內(nèi)部已有8K的Flash程序存貯器,只有在需要大量常數(shù)存貯器(如字庫)等特殊應用中,才在外面擴展1片只讀存貯器ROM。這樣的系統(tǒng)都是大系統(tǒng),P0口、P2口都作為擴展總線口使用。 7.2.2 MCS-51片外程序存儲器的擴展前面已述,擴展片外程序存儲器所用的芯片一般采用ROM存儲器芯片,它們可以

41、是EPROM、EEPROM、 FLASH等類型的芯片。1常見的程序存儲器ROM的芯片(1)EPROM存儲器 EPROM是紫外線可擦除電可編程的只讀存貯器,掉電以后信息不會丟失。用EPROM作為單片機外部程序存儲器是經(jīng)典的程序存儲器擴展方法,雖然目前已基本不用EPROM,但目前使用的EEROM和Flash ROM的儲器擴展方法與EPROM的擴展方法是一樣的。 EPROM芯片上有一個玻璃窗口,在紫外線照射下,存儲器中的各位信息均變?yōu)?,即處于擦除干凈的狀態(tài)。擦除干凈的EPROM可以通過編程器將應用程序固化到芯片中,稱為“寫入”或“燒”程序。固化的過程就是按要求把芯片的“1”便為“0”,信息是“1”

42、的保持不變。 圖7-17為常用的6種EPROM存儲器的引腳圖。其中:2716(2K8bit)、2732(4K8bit)均為24腳, 而2764(8K8bit)、27128(16K8bit)、27256(32K8bit)、 27512(64K8bit)均為28腳。圖7-17 常用的6種EPROM芯片引腳(2)EEPROM存儲器 EEPROM芯片有如下共同特點:單+5V供電,電可擦除可改寫;使用次數(shù)為1萬次,信息保存時間為10年;讀出時間為ns級,寫入時間為ms級;芯片引腳信號與相應的RAM和EPROM芯片兼容,見表7-1。 EEPROM的使用非常簡單方便。不用紫外線擦除,在單一的+5V電壓下寫入

43、的新數(shù)據(jù)可覆蓋舊數(shù)據(jù)。 常用的EEPROM芯片有2816 、2817(2K8bit)、2864(8K8bit)等 ,圖7-18為常用的3種EEPROM芯片引腳圖。在芯片的引腳設計上,2KB的E2PROM 2816與EPROM 2716和RAM 6116兼容,8KB的E2PROM 2864A與EPROM 2764和RAM 6264兼容,2816、2817和2864A的讀出時間均為250ns,寫入時間10ms。電可擦除只讀存儲器EEPROM可像EPROM那樣長期非易失地保存信息,又可像RAM那樣隨時用電改寫,近年來出現(xiàn)了快擦FLASH EEPROM,它們被廣泛用作單片機的程序存儲器和數(shù)據(jù)存儲器。圖

44、7-18 常用的 3 種EEPROM芯片引腳表7-1 常用的EEPROM芯片與相應的RAM和EPROM芯片兼容情況 2817A為2KB EEPROM維持電流為60mA,典型讀出時間為200350ns,字節(jié)編程寫入時間為1020s,芯片內(nèi)有電壓提升電路,編程時不必增高壓,單一+5V供電。引腳和6116,2716 兼容。8031單片機擴展2817A的硬件電路如圖7-19所示。圖中的2817A既可作為數(shù)據(jù)存儲器RAM,又可作為程序存儲器ROM。通過P1.0查詢2817A的RDY/ 狀態(tài),來完成對2817A的寫操作。片選信號由P2.7提供。BUSYMCS-51 系列單片機中的數(shù)據(jù)存儲器和程序存儲器在邏

45、輯上是嚴格分開的,但在實際設計和開發(fā)單片機系統(tǒng)時,程序和數(shù)據(jù)若放在EEPROM或FLASH 或 SRAM,可方便程序和數(shù)據(jù)調(diào)試和修改,為此需將程序存儲器和數(shù)據(jù)存儲器混合使用。在硬件上將 信號和 相“與”后連到RAM的讀選通端 即可以實現(xiàn),見圖7-19。當執(zhí)行MOVX 指令時產(chǎn)生 讀選通信號使 有效,當執(zhí)行該RAM中的程序時,由 信號也使 有效,選通 RAM,讀出其中的機器碼。注意, 信號依然連接 RAM的 端。PSENRDOERDOEPSENOEWRWE2817A EEPROM和單片機的連接說明。(圖7-19)圖7-19 8031單片機與2817A EEPROM的連接電路(3) FLASH 存

46、貯器(閃速存儲器) FLASH存貯器又稱閃速存貯器或PEROM(Programmable Erasable ROM),它是在EPROM工藝的基礎上增添了芯片整體電擦除和可再編程功能,使其成為性價比高可靠性高、快擦寫、非易失的EEPROM存貯器(后面簡稱Flash)。很多Flash內(nèi)部集成有DC/DC變換器,使讀、擦除、編程使用單一電壓(根據(jù)不同型號,有的是單一5V,也有的是單一3V低壓),從而使在系統(tǒng)編程(ISP)成為可能,目前很多單片機內(nèi)均采用FLASH作為程序存儲器。 FLASH的擴展方法和EEPROM一樣。2程序存儲器ROM的操作時序 單片機的地址總線為16位,擴展的片外ROM的最大容量

47、為64KB,地址為0000HFFFFH。擴展的片外RAM的最大容量也為64KB,地址為0000HFFFFH。由于MCS-51單片機采用不同的控制信號和指令,盡管ROM與RAM共享數(shù)據(jù)總線和地址總線,ROM與RAM的地址重疊,但由于兩者的控制總線不同,因此不會發(fā)生混亂。 圖7-20 為MCS-51單片機訪問ROM時序。單片機的CPU在訪問或片外ROM的一個機器周期內(nèi),信號ALE出現(xiàn)兩次正脈沖,ROM選通信號 也兩次有效, 這說明在一個機器周期內(nèi),CPU兩次訪問片外ROM,也即在一個機器周期內(nèi)可以處理兩個字節(jié)的指令代碼,所以MCS-51單片機指令系統(tǒng)中有很多單周期、雙字節(jié)的指令。PSEN圖7-20

48、 MCS-51單片機訪問 ROM 時序 程序存儲器擴展電路的安排應滿足單片機從外存取指令的時序要求。從時序圖中,可分析ALE、 、P0和P2怎樣配合使程序存儲器完成取指操作,從而得出擴展程序存儲器的方法。單片機一直處于不斷的取指令碼執(zhí)行取指令碼執(zhí)行的工作過程中,在取指令碼時和執(zhí)行MOVC指令時 會變?yōu)橛行В推渌盘柵浜贤瓿蓮某绦虼鎯ζ髯x取數(shù)據(jù)。PSENPSEN3片外程序存儲器ROM的擴展方法 程序存儲器ROM的擴展是使用P0、P2端口作為地址總線、數(shù)據(jù)總線。 MCS-51 單片機對片內(nèi)、片外 ROM 的訪問使用相同的指令MOVC,兩者的選擇是由硬件實現(xiàn)的。在時序中將產(chǎn)生 信號,因此,將 信號

49、與片外ROM相應的讀 相連接,就能夠?qū)崿F(xiàn)系統(tǒng)對片外ROM的讀控制。外部程序存儲器ROM的擴展方法如圖7-21所示。片外ROM芯片擴展時,芯片選擇多采用線選法或直接接地法,地址譯碼法用的漸少。PSENPSENOE圖7-21 單片機擴展程序存儲器ROM電路由于本電路也只擴展1片程序存儲器,可直接接地。由于剩余的高4位地址為任意值,因此本電路擴展存儲器的地址有24=16個重疊的地址空間,它們分別是0000H0FFFH、1000H1FFFH、2000H2FFFH、3000H3FFFH、4000H4FFFH、5000H5FFFH、6000H6FFFH、7000H7FFFH、8000H8FFFH、9000

50、H9FFFH、A000HAFFFH、B0000HBFFFH、C000HCFFFH、D000HDFFFH、E000HEFFFH、F000HFFFFH。地址計算如表7-2所示。(1)不用片外譯碼器的單片程序存儲器的擴展【例7-2】MCS-51單片機擴展1片EPROM2732程序存儲器的電路如圖7-22所示。EPROM 2732的容量為4KB8位。4KB表示有41024=4096=212個存儲單元,8位表示每個單元存儲數(shù)據(jù)的寬度是8位。前者確定了地址線的位數(shù)是12位(A0A11),后者確定了數(shù)據(jù)線的位數(shù)是8位(O0O7)。EPROM的讀選通 信號與單片機的 相連,如果要從EPROM中讀出程序中定義的

51、數(shù)據(jù),需使用指令:MOVC A,A+DPTR或MOVC A,A+PC。OEPSEN圖7-22 單片機擴展2732 EPROM電路表7-2 2732 EPROM的地址范圍計算(2)采用線選法的多片程序存儲器的擴展【例例7-37-3】使用兩片2764擴展16 KB的程序存儲器,采用線選法選中芯片。擴展連接圖如圖7-23所示。以P2.7作為片選,當P2.7=0時,選中2764(1);當P2.7=1時,選中2764(2)。因兩根線(A13、A14)未用,故兩個芯片各有22=4個重疊的地址空間。圖7-23 用兩片2764 EPROM的擴展連接電路 兩片2764的地址范圍如下:左片: 0000000000

52、00000000001111111111111,即0000H1FFFH; 001000000000000000011111111111111,即2000H3FFFH; 010000000000000000101111111111111,即4000H5FFFH; 011000000000000000111111111111111,即6000H7FFFH;右片: 100000000000000001001111111111111,即8000H9FFFH; 101000000000000001011111111111111,即A000HBFFFH; 1100000000000000011011111

53、11111111,即C000HDFFFH; 111000000000000001111111111111111,即E000HFFFFH。(3)采用地址譯碼器的多片程序存儲器的擴展【例7-5】 要求用2764芯片擴展8031的片外程序存儲器,分配的地址范圍為0000H3FFFH。本例要求的地址空間是唯一確定的,所以要采用全譯碼方法。由分配的地址范圍知:擴展的容量為3FFFH-0000H+1=4000H=16KB,2764為8K8位,故需要兩片。第1片的地址范圍應為0000H1FFFH;第2片的地址范圍應為2000H3FFFH。由地址范圍可確定譯碼器的連接方式,譯碼關系表見表7-3。表7-3 27

54、64的地址范圍計算圖7-24為單片機擴展2片EPROM 2764程序存儲器的電路圖。2764共有13根地址線和8根數(shù)據(jù)線,分別與單片機相連,單片機剩余的3根地址線通過譯碼器輸出端,分別控制兩個存儲器的片選線,這就保證了每個存儲單元只有唯一的地址。圖7-24 全譯碼、2片2764 EPROM的擴展連接電路 7.2.3 MCS-51片外數(shù)據(jù)存儲器RAM的擴展RAM是用來存放各種數(shù)據(jù)的,MCS-51單片機內(nèi)部有128B (51子系列)/256B (52子系列)的RAM存儲器,CPU對內(nèi)部RAM具有豐富的操作指令。但當單片機用于實時數(shù)據(jù)采集或處理大批量數(shù)據(jù)時,僅靠片內(nèi)提供的RAM是遠遠不夠的。此時,可

55、以采用外部的RAM來擴展單片機的數(shù)據(jù)存儲器。由于單片機的引腳無動態(tài)刷新功能,因此,單片機一般僅采用靜態(tài)RAM (即SRAM)來擴展數(shù)據(jù)存儲器。(1)常見的數(shù)據(jù)存儲器RAM的芯片常用的SRAM芯片有 2114(1K4bit)、6116(2K8bit)6264(8K8bit) 62256(32K8bit)等。圖7-25為常用SRAM芯片的引腳圖。(a) 2114 (b) 6116、6264、62128、62256 (2)片外數(shù)據(jù)存儲器RAM的操作時序擴展RAM和擴展ROM類似,由P2口提供高8位地址,P0口分時地作為低8位地址線和8位雙向數(shù)據(jù)總線。1)外部RAM的讀時序圖7-26為片外RAM讀時序

56、圖。當執(zhí)行指令 MOVX A,Ri或 MOVX A,DPTR 時進入外部數(shù)據(jù)RAM是的讀周期。在第一個機器周期的第一個ALE的上升沿,把外部程序存儲器的指令MOVX讀入后就開始了對片外RAM的讀過程。第一個機器周期的第一個ALE高電平期間,在P0處于高阻三態(tài)后,根據(jù)指令間址提供的地址,P2口輸出外部RAM的高8位地址A15A8 ,P0端口輸出低8位地址A7A0;在第一個機器周期的第一個ALE下跳沿,P0輸出的低8位地址被鎖存在鎖存器中,隨后P0又進入高阻三態(tài),信號有效后,被選中的RAM的數(shù)據(jù)在第二個機器周期出現(xiàn)在數(shù)據(jù)總線上,P0 處于輸入狀態(tài),CPU從P0 讀入外部RAM的數(shù)據(jù)。圖7-26 片

57、外RAM的讀時序 2)外部RAM的寫時序圖7-27為片外RAM寫時序圖。當執(zhí)行MOVX Ri,A 或 MOVX DPTR,A指令時進入外部數(shù)據(jù)存儲器的寫周期。寫外部RAM的操作時序與讀外部RAM的時序差別在于:有效代替有效,以表明這是寫數(shù)據(jù)RAM的操作; 在P0輸出低8位地址A0A7后,P0立即處于輸出狀態(tài),提供要寫入外部RAM的數(shù)據(jù)供外部RAM取走。圖7-27 外部RAM的寫時序由以上時序分析可見,訪問外部數(shù)據(jù)RAM的操作與從外部程序存儲器ROM取指令的過程基本相同,只是前者有讀有寫,而后者只有讀而無寫;前者用或選通,而后者用選通;前者一個機器周期中ALE兩次有效,后者則只有一次有效。因此,

58、不難得出MCS-51單片機與外部RAM的連接方法。(3)片外數(shù)據(jù)存儲器RAM的擴展方法與程序存儲器ROM擴展原理相同,數(shù)據(jù)存儲器RAM的擴展也是使用P0、P2端口作為地址總線、數(shù)據(jù)總線。當使用MOVX A,Ri或MOVX Ri,A指令時,系統(tǒng)使用P0端口輸出地址信號(P2端口不用);當使用MOVX A,DPTR或MOVX DPTR,A指令時,P0端口輸出DPTR提供的低8位地址信號,P2端口輸出DPTR提供的高8位地址信號。與ROM擴展不同,訪問外部RAM的指令是MOVX,在時序中將產(chǎn)生 或 信號,因此,將 、 信號分別與片外RAM相應的讀 、寫 相連接,就能夠?qū)崿F(xiàn)系統(tǒng)對片外RAM的讀/寫控制

59、。外部數(shù)據(jù)存儲器的擴展方法如圖7-28所示。RDWRRDWROEWE圖7-28 單片機擴展數(shù)據(jù)存儲器RAM電路 由于數(shù)據(jù)存儲器的擴展方法和程序存儲器的擴展方法相同,只是控制信號不同,在此就不多舉例了,讀者可根據(jù)選用芯片數(shù)據(jù)手冊連接電路,然后根據(jù)連接好的電路,確定地址范圍。下面僅舉例說明當存儲器RAM芯片不足8位時,它們?nèi)绾闻c單片機相連接?!纠?-5】 采用2114(1K4bit)芯片在8031片外擴展1 KB數(shù)據(jù)存儲器。由于2114芯片的容量為1K4bit,每片2114共有1K個存儲單元,但每個單元僅有4位,而8031的數(shù)據(jù)總線為8位,因此,需要進行位擴展。兩片2114并聯(lián)連接起來后每個單元正

60、好為8位,此時兩片的第1片數(shù)據(jù)線作為低4位數(shù)據(jù),而第2片數(shù)據(jù)線作為高4位數(shù)據(jù),而兩片的其他引腳只需對應連接在一起即可,這樣兩片并接后就可得到 1K8bit=1KB 的數(shù)據(jù)存儲器。圖7-29為采用兩片2114 EPROM的擴展連接電路圖。另外,2114芯片的為讀、寫復用引腳,當 =0、1時分別處于寫、讀狀態(tài)。WE圖7-29 兩片2114 EPROM的擴展連接電路7.2.4 兼有片外程序存儲器和片外數(shù)據(jù)存儲器的擴展前面分別討論了MCS-51型單片機擴展外部程序存儲器和數(shù)據(jù)存儲器的方法,但在實際的應用系統(tǒng)設計中,往往既需要擴展程序存儲器,又需要擴展數(shù)據(jù)存儲器,同時還需要擴展I/O接口芯片,而且有時需

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論