單片機(jī)原理及應(yīng)用 蔡啟仲 第8章 51單片機(jī)的系統(tǒng)擴(kuò)展_第1頁(yè)
單片機(jī)原理及應(yīng)用 蔡啟仲 第8章 51單片機(jī)的系統(tǒng)擴(kuò)展_第2頁(yè)
單片機(jī)原理及應(yīng)用 蔡啟仲 第8章 51單片機(jī)的系統(tǒng)擴(kuò)展_第3頁(yè)
單片機(jī)原理及應(yīng)用 蔡啟仲 第8章 51單片機(jī)的系統(tǒng)擴(kuò)展_第4頁(yè)
單片機(jī)原理及應(yīng)用 蔡啟仲 第8章 51單片機(jī)的系統(tǒng)擴(kuò)展_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第8章51單片機(jī)的系統(tǒng)擴(kuò)展

2第8章目錄內(nèi)容概要8.1三總線與地址編碼

8.1.151單片機(jī)應(yīng)用系統(tǒng)總線

8.1.251單片機(jī)系統(tǒng)總線的構(gòu)成8.1.3單片機(jī)系統(tǒng)總線驅(qū)動(dòng)能力擴(kuò)展

8.1.451單片機(jī)系統(tǒng)擴(kuò)展外部部件的地址空間分配8.2程序存儲(chǔ)器的擴(kuò)展及應(yīng)用

8.2.1常用EPROM芯片介紹

8.2.2EPROM芯片的工作方式

8.2.3程序存儲(chǔ)器的擴(kuò)展

8.2.4程序存儲(chǔ)器的讀控制與時(shí)序38.3數(shù)據(jù)存儲(chǔ)器的擴(kuò)展及應(yīng)用

8.3.1常用的靜態(tài)數(shù)據(jù)存儲(chǔ)器芯片介紹

8.3.2RAM芯片的工作方式

8.3.3數(shù)據(jù)存儲(chǔ)器的擴(kuò)展

8.3.4數(shù)據(jù)存儲(chǔ)器的讀寫(xiě)控制與時(shí)序8.4程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的綜合擴(kuò)展4內(nèi)容概要許多情況,片內(nèi)的存儲(chǔ)器資源還不能滿足需要,為此需要51單片機(jī)進(jìn)行外部程序存儲(chǔ)器和外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展。由于有時(shí)需要擴(kuò)展多片芯片,首先介紹51單片機(jī)的兩個(gè)外部存儲(chǔ)器空間的地址分配的兩種方法,即線選法和譯碼法。最后介紹擴(kuò)展外部程序存儲(chǔ)器和外部數(shù)據(jù)存儲(chǔ)器的具體設(shè)計(jì)。8.1三總線與地址編碼

51單片機(jī)采用總線結(jié)構(gòu),具有很強(qiáng)的擴(kuò)展外部部件的功能,對(duì)于常見(jiàn)的外部擴(kuò)展集成電路芯片,能夠按照典型的電路連接。如果擴(kuò)展兩個(gè)以上的部件,需要編制每個(gè)擴(kuò)展部件的地址,能方便地構(gòu)成各種不同需求的51單片機(jī)應(yīng)用系統(tǒng)。58.1.151單片機(jī)應(yīng)用系統(tǒng)總線6所謂總線,是單片機(jī)與擴(kuò)展的各種外部部件連接的公共信號(hào)線。在進(jìn)行系統(tǒng)擴(kuò)展時(shí),單片機(jī)的公共信號(hào)線可定義為地址總線(AB)、數(shù)據(jù)總線(DB)和控制總線(CB)的三總線結(jié)構(gòu),參見(jiàn)圖8–1。圖8-151單片機(jī)系統(tǒng)擴(kuò)展時(shí)的三總線結(jié)構(gòu)由圖8-1可以看出,單片機(jī)各種擴(kuò)展電路的外部部件(芯片)通過(guò)該三總線與單片機(jī)連接。學(xué)習(xí)和掌握單片機(jī)的三總線結(jié)構(gòu)是掌握單片機(jī)系統(tǒng)擴(kuò)展的關(guān)鍵。

(1)地址總線(AddressBus,AB):用于傳送單片機(jī)發(fā)出的地址信號(hào),以便進(jìn)行存儲(chǔ)單元和I/O接口芯片中的寄存器單元的選擇。(2)數(shù)據(jù)總線(DataBus,DB):用于單片機(jī)與外部存儲(chǔ)器之間或與I/O接口之間傳送數(shù)據(jù),數(shù)據(jù)總線是雙向的。(3)控制總線(ControlBus,CB):控制總線是單片機(jī)發(fā)出的各種控制信號(hào)線。78.1.251單片機(jī)系統(tǒng)總線的構(gòu)成8由于單片機(jī)要兼顧最小系統(tǒng)和系統(tǒng)擴(kuò)展的應(yīng)用,其引腳數(shù)目受到限制,多數(shù)引腳處于多功能復(fù)用狀態(tài),為此,當(dāng)必須進(jìn)行系統(tǒng)擴(kuò)展時(shí),首先要重新構(gòu)造系統(tǒng)總線,然后再往系統(tǒng)總線上“掛”接各種存儲(chǔ)器、I/O接口、A/D、D/A等功能部件,從而實(shí)現(xiàn)單片機(jī)系統(tǒng)的擴(kuò)展。1.地址總線構(gòu)造

951單片機(jī)的P0口是數(shù)據(jù)總線和低8位地址總線分時(shí)復(fù)用的端口,當(dāng)構(gòu)造地址總線時(shí),要增加一個(gè)8位的地址鎖存器用于分離地址信號(hào)和數(shù)據(jù)信號(hào)。如圖8–2所示,單片機(jī)向P0口送出的低8位地址在ALE控制信號(hào)的上升沿同步出現(xiàn),74LS373的G端在ALE信號(hào)的下降沿實(shí)現(xiàn)地址鎖存。74LS373的引腳接地,輸出三態(tài)門(mén)一直處于導(dǎo)通狀態(tài),74LS373的Q7~Q0端口輸出低8位地址總線。圖8–2

低8位地址總線擴(kuò)展電路

51單片機(jī)的P2口具有準(zhǔn)雙向I/O口和提供高8位地址的功能,當(dāng)單片機(jī)需要擴(kuò)展高8位地址,直接從P2口獲得高8位地址信號(hào)線A15~A8,與圖8–2的地址鎖存器輸出的低8位地址A7~A0一道構(gòu)成51單片機(jī)的16位地址總線。使單片機(jī)系統(tǒng)的尋址范圍達(dá)到64KB。P0、P2口用作地址線后,一般不能再作為I/O接口使用。實(shí)際應(yīng)用中,如果只需要8位地址總線,P2口可以作為準(zhǔn)雙向I/O口使用。2.數(shù)據(jù)總線構(gòu)造

P0口直接構(gòu)成8位數(shù)據(jù)總線,外部擴(kuò)展部件與數(shù)據(jù)總線連接的數(shù)據(jù)端口與P0口連接即可。

103.控制信號(hào)線除地址線和數(shù)據(jù)線外,還要有系統(tǒng)的控制總線。這些信號(hào)有的就是單片機(jī)引腳的第一功能信號(hào),有的則是P3口第二功能信號(hào)。包括:(1)

作為外擴(kuò)程序存儲(chǔ)器的讀選通控制信號(hào)。(2)

為外擴(kuò)數(shù)據(jù)存儲(chǔ)器和I/O的讀、寫(xiě)選通控制信號(hào)。(3)ALE作為P0口發(fā)出的低8位地址鎖存控制信號(hào)。(4)

為片內(nèi)、片外程序存儲(chǔ)器的選擇控制信號(hào)。可見(jiàn),51單片機(jī)的4個(gè)并行I/O口,由于系統(tǒng)擴(kuò)展的需要,真正作為數(shù)字I/O用,就剩下P1和P3的部分口線了。1112

8.1.3單片機(jī)系統(tǒng)總線驅(qū)動(dòng)能力擴(kuò)展

(1)

總線的驅(qū)動(dòng)能力在51單片機(jī)應(yīng)用系統(tǒng)中,所有擴(kuò)展的外部部件都要通過(guò)單片機(jī)的三總線驅(qū)動(dòng),由于總線的驅(qū)動(dòng)電流總是有限的,當(dāng)應(yīng)用系統(tǒng)規(guī)模過(guò)大,擴(kuò)展所接的外部芯片多,超過(guò)了系統(tǒng)總線的驅(qū)動(dòng)能力時(shí),就必須進(jìn)行總線驅(qū)動(dòng)。

(2)

總線的驅(qū)動(dòng)擴(kuò)展方法所謂總線驅(qū)動(dòng),通常是指通過(guò)外接一些相應(yīng)的驅(qū)動(dòng)電路,在電路邏輯不變的前提下,增加總線驅(qū)動(dòng)負(fù)載的能力。由于地址總線和控制總線是單向的,擴(kuò)展驅(qū)動(dòng)能力時(shí),可采用單向總線驅(qū)動(dòng)器。而數(shù)據(jù)總線是雙向的,必須采用雙向三態(tài)驅(qū)動(dòng)器進(jìn)行數(shù)據(jù)總線驅(qū)動(dòng)能力的擴(kuò)展。

常用的單向總線驅(qū)動(dòng)器有74LS244、74LS240(帶反向輸出)等。74LS244的內(nèi)部有8個(gè)三態(tài)驅(qū)動(dòng)器,分成兩組,每組4個(gè),分別由控制端和控制。圖8–3中,由于P2口只作地址輸出口,74LS244的驅(qū)動(dòng)門(mén)控制端和接地。對(duì)于其它擴(kuò)展的單向控制總線、等的驅(qū)動(dòng)擴(kuò)展方法與此相同。13圖8–3單向總線驅(qū)動(dòng)能力擴(kuò)展電路14

74LS245雙向總線驅(qū)動(dòng)器內(nèi)部有16個(gè)三態(tài)驅(qū)動(dòng)器,分成兩組,共八對(duì),每對(duì)由不同方向的驅(qū)動(dòng)器組成,驅(qū)動(dòng)方向由和DIR兩個(gè)控制端控制,=1,雙向端口位高阻態(tài);=0,DIR控制端控制總線驅(qū)動(dòng)器的驅(qū)動(dòng)方向,當(dāng)DIR=0,驅(qū)動(dòng)方向從B至A,當(dāng)DIR=1則從A至B。圖中的74LS245的控制端接地,保證驅(qū)動(dòng)器芯片始終處于工作狀態(tài)。而驅(qū)動(dòng)方向則由51單片機(jī)控制總線的“讀”控制線()和程序存儲(chǔ)器的取指控制線()通過(guò)邏輯與后,控制總線驅(qū)動(dòng)器的DIR引腳實(shí)現(xiàn)。這種邏輯連接方法保證了無(wú)論單片機(jī)是“讀”擴(kuò)展部件的數(shù)據(jù),還是從程序存儲(chǔ)器取指,都能保證數(shù)據(jù)總線P0口的輸入驅(qū)動(dòng),而其余時(shí)間DIR=1,保證P0口的輸出驅(qū)動(dòng),數(shù)據(jù)自P0口經(jīng)總線驅(qū)動(dòng)器74LS245向外輸出。圖8–4

雙向總線驅(qū)動(dòng)能力擴(kuò)展電路8.1.451單片機(jī)系統(tǒng)擴(kuò)展外部部件的地址空間分配

本節(jié)討論如何進(jìn)行存儲(chǔ)器空間的地址分配,并介紹用于輸出低8位地址的常用的地址鎖存器。1.51單片機(jī)的擴(kuò)展能力

51單片機(jī)按照哈佛結(jié)構(gòu)設(shè)計(jì),即程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的地址空間是物理分開(kāi),分別尋址的結(jié)構(gòu),允許二者的地址空間重疊。因此51單片機(jī)片外可擴(kuò)展的程序存儲(chǔ)器的存儲(chǔ)容量是64KB;可擴(kuò)展的數(shù)據(jù)存儲(chǔ)器和其它外部部件的容量共計(jì)64KB,占用同一個(gè)地址空間,統(tǒng)一編址。51單片機(jī)應(yīng)用系統(tǒng)形成了兩個(gè)并行的64KB的地址空間,地址范圍都是0000H~FFFFH。1516

如何把片外的兩個(gè)64KB地址空間分配給各個(gè)程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器芯片,使一個(gè)存儲(chǔ)單元只對(duì)應(yīng)一個(gè)地址,避免單片機(jī)發(fā)出一個(gè)地址時(shí),同時(shí)訪問(wèn)兩個(gè)單元,發(fā)生數(shù)據(jù)沖突。這就是存儲(chǔ)器地址空間分配問(wèn)題。從硬件上看:它們應(yīng)用控制總線中不同的控制線,讀片外程序存儲(chǔ)器的控制信號(hào)為(取指),讀、寫(xiě)外部數(shù)據(jù)存儲(chǔ)器和外部擴(kuò)展部件的控制信號(hào)分別為和;從軟件上看:

MOVC:讀片外程序存儲(chǔ)器的指令

MOVX:讀、寫(xiě)外部數(shù)據(jù)存儲(chǔ)器和外部擴(kuò)展部件的指令17

2.一般擴(kuò)展方法

所有擴(kuò)展的外部部件與51單片機(jī)的連接都是按三總線的方式連接。以存儲(chǔ)器為例,存儲(chǔ)器芯片數(shù)據(jù)線的數(shù)目由存儲(chǔ)器芯片的字長(zhǎng)決定。常用的數(shù)據(jù)存儲(chǔ)器芯片字長(zhǎng)為8位,對(duì)應(yīng)有8根數(shù)據(jù)線,8位數(shù)據(jù)線(D0~D7)與單片機(jī)數(shù)據(jù)總線(P0.0~P0.7)按低位到高位的順序依次連接即可。也有極少數(shù)存儲(chǔ)器芯片是4位字長(zhǎng)的,應(yīng)用兩塊芯片組成8位字長(zhǎng)的存儲(chǔ)器,一塊芯片作為低4位數(shù)據(jù)存儲(chǔ)器,一塊芯片作為高4位數(shù)據(jù)存儲(chǔ)器,低4位和高4位數(shù)據(jù)線分別與單片機(jī)數(shù)據(jù)總線的低4位(P0.3~P0.0)和高4位(P0.7~P0.4)連接,而兩塊芯片的地址線和控制線并聯(lián)連接。18

存儲(chǔ)器芯片的控制線:對(duì)于程序存儲(chǔ)器,一般來(lái)說(shuō),其控制線為“指令讀”信號(hào)(,也稱為輸出使能端),它與單片機(jī)的

信號(hào)線相連。對(duì)于數(shù)據(jù)存儲(chǔ)器和其它外部部件,一般而言,其控制線為“讀”()、“寫(xiě)”(),分別與單片機(jī)的

、

信號(hào)線相連。

存儲(chǔ)器芯片的地址線:存儲(chǔ)器芯片地址線的數(shù)目由該芯片的容量決定。

其它各種外部擴(kuò)展部件的地址線:通常擴(kuò)展部件的芯片地址線較少,根據(jù)擴(kuò)展部件的功能而定。

對(duì)于程序和數(shù)據(jù)存儲(chǔ)器的擴(kuò)展,如果選用多片存儲(chǔ)器芯片來(lái)滿足系統(tǒng)所需要的存儲(chǔ)器容量時(shí),芯片的數(shù)目要根據(jù)選用的芯片容量和字長(zhǎng)位數(shù)以及待擴(kuò)展的存儲(chǔ)容量來(lái)確定。19

若所選存儲(chǔ)器芯片字長(zhǎng)與單片機(jī)字長(zhǎng)一致,則只需擴(kuò)展容量。所需芯片數(shù)目和芯片的片選信號(hào)數(shù)量相等,按下式確定:

若所選存儲(chǔ)器芯片字長(zhǎng)與單片機(jī)字長(zhǎng)不一致(比如為4位字長(zhǎng)),則此時(shí)不僅需要擴(kuò)展存儲(chǔ)器容量,還需要擴(kuò)展字長(zhǎng)。所需芯片數(shù)目按下式確定:

對(duì)于4位字長(zhǎng)的存儲(chǔ)器,片選信號(hào)數(shù)量恰好是芯片數(shù)目的一半。3.地址分配與編址方法

51單片機(jī)發(fā)出的地址碼用于選擇某個(gè)存儲(chǔ)器單元,外擴(kuò)多片存儲(chǔ)器芯片中,單片機(jī)必須進(jìn)行兩種選擇:一是選中該存儲(chǔ)器芯片,這稱為“片選”,未被選中的芯片不能被訪問(wèn)。二是在“片選”的基礎(chǔ)上再根據(jù)單片機(jī)發(fā)出的地址碼來(lái)對(duì)“選中”芯片的某一單元進(jìn)行訪問(wèn),即“單元選擇”。為實(shí)現(xiàn)片選,存儲(chǔ)器芯片都有片選引腳。同時(shí)也都有多條地址線引腳,以便進(jìn)行單元選擇。

注意:“片選”和“單元選擇”都是單片機(jī)通過(guò)地址線一次發(fā)出的地址信號(hào)來(lái)完成選擇。2021通常把單片機(jī)系統(tǒng)的地址線籠統(tǒng)地分為低位地址線和高位地址線,“片選”都是使用高位地址線。實(shí)際上,16條地址線中的高、低位地址線的數(shù)目并不是固定的,只是習(xí)慣上把用于“單元選擇”的地址線,都稱為低位地址線,其余的為高位地址線。常用的存儲(chǔ)器地址空間分配方法有兩種:線性選擇法(簡(jiǎn)稱線選法)和地址譯碼法(簡(jiǎn)稱譯碼法),下面介紹。1.線選法是直接利用系統(tǒng)的某一高位地址線作為存儲(chǔ)器芯片(或I/O接口芯片)的“片選”控制信號(hào)。為此,只需要把用到的高位地址線與存儲(chǔ)器芯片的“片選”端直接連接即可。線選法優(yōu)點(diǎn)是電路簡(jiǎn)單,不需要另外增加地址譯碼器硬件電路,體積小,成本低。缺點(diǎn)是可尋址的芯片數(shù)目受到限制。另外,地址空間不連續(xù),每個(gè)存儲(chǔ)單元的地址不唯一,這會(huì)給程序設(shè)計(jì)帶來(lái)不便,只適用于外擴(kuò)芯片數(shù)目不多的單片機(jī)系統(tǒng)的存儲(chǔ)器擴(kuò)展。2.譯碼法使用譯碼器對(duì)51單片機(jī)的高位地址進(jìn)行譯碼,譯碼輸出作為存儲(chǔ)器芯片的片選信號(hào)。這種方法能夠有效地利用存儲(chǔ)器空間,適用于多芯片的存儲(chǔ)器擴(kuò)展。若全部高位地址線都參加譯碼,稱為全譯碼;若僅部分高位地址線參加譯碼,稱為部分譯碼。部分譯碼存在著部分存儲(chǔ)器地址空間相重疊的情況。224.地址譯碼電路常用的譯碼器芯片有74LS138(3線-8線譯碼器)、74LS139(雙2線-4線譯碼器)和74LS154(4線-16線譯碼器)。74LS138是一種3線-8線譯碼器,有3個(gè)數(shù)據(jù)輸入端,經(jīng)譯碼產(chǎn)生8種狀態(tài)。引腳如圖8-5所示,真值表見(jiàn)表8-1。由表8-1可見(jiàn),當(dāng)譯碼器的輸入為某一固定編碼時(shí),其輸出僅有一個(gè)固定的引腳輸出為低電平,其余的為高電平。輸出為低電平的引腳就作為某一存儲(chǔ)器芯片的片選信號(hào)。圖8-5為74LS138地址譯碼電路。23

、和

是3個(gè)使能輸入端,A、B、C三個(gè)輸入信號(hào)經(jīng)譯碼產(chǎn)生8種狀態(tài)輸出,輸出端中只有一個(gè)引腳輸出狀態(tài)為低電平。24圖8–574LS138引腳圖圖8–674LS138地址譯碼電路2526如圖8–6所示,單片機(jī)高8位地址線的最高3位P2.7(A15),P2.6(A14),P2.5(A13)分別與74LS138譯碼器的3個(gè)數(shù)據(jù)輸入端C、B、A連接。74LS138譯碼器的輸出端通常分別與單片機(jī)擴(kuò)展的外部存儲(chǔ)器和其它各種接口部件的片選(使能)端連接,74LS138譯碼器的輸出端對(duì)應(yīng)的譯碼輸出的64KB地址空間范圍分別為::1FFFH~0000H(P2.7、P2.6、P2.5=000):3FFFH~2000H(P2.7、P2.6、P2.5=001):5FFFH~4000H(P2.7、P2.6、P2.5=010):7FFFH~6000H(P2.7、P2.6、P2.5=011):9FFFH~8000H(P2.7、P2.6、P2.5=100):BFFFH~A000H(P2.7、P2.6、P2.5=101):DFFFH~C000H(P2.7、P2.6、P2.5=110):FFFFH~E000H(P2.7、P2.6、P2.5=111)這里采用全地址譯碼方式。存儲(chǔ)器的地址空間分配,實(shí)際上就是將單片機(jī)的地址總線與存儲(chǔ)器芯片的地址引腳按一定規(guī)律連接,最終達(dá)到一個(gè)物理存儲(chǔ)單元對(duì)應(yīng)一個(gè)單元地址的要求。278.2程序存儲(chǔ)器的擴(kuò)展及應(yīng)用程序存儲(chǔ)器采用只讀存儲(chǔ)器,因?yàn)檫@種存儲(chǔ)器在電源關(guān)斷后,仍能保存程序(我們稱此特性為非易失性),在系統(tǒng)上電后,CPU可取出這些指令重新執(zhí)行。只讀存儲(chǔ)器簡(jiǎn)稱ROM(ReadOnlyMemory)。ROM中的信息一旦寫(xiě)入,就不能隨意更改,特別是不能在程序運(yùn)行過(guò)程中寫(xiě)入新的內(nèi)容,故稱為只讀存儲(chǔ)器。向ROM中寫(xiě)入信息稱為ROM編程。根據(jù)編程方式不同,分為以下幾種。(1)

掩模ROM。在制造過(guò)程中編程,是以掩模工藝實(shí)現(xiàn)的,因此稱為掩模ROM。由于掩模工藝成本較高,因此只適合于大批量生產(chǎn)。(2)可編程ROM(PROM)。芯片出廠時(shí)沒(méi)有任何程序信息,用獨(dú)立的編程器寫(xiě)入。但PROM只能寫(xiě)一次,寫(xiě)入內(nèi)容后,就不能再修改。(3)EPROM。用紫外線擦除,電信號(hào)編程:編程器將調(diào)試完畢的程序?qū)懭搿?8(4)E2PROM(EEPROM)。電信號(hào)編程,電信號(hào)擦除的ROM芯片。對(duì)E2PROM的讀寫(xiě)操作與RAM存儲(chǔ)器幾乎沒(méi)有什么差別,只是寫(xiě)入的速度慢一些,但斷電后仍能保存信息。(5)FlashROM。又稱閃速存儲(chǔ)器(簡(jiǎn)稱閃存),是在EPROM、E2PROM的基礎(chǔ)上發(fā)展起來(lái)的一種電擦除型只讀存儲(chǔ)器。特點(diǎn)是可快速在線修改其存儲(chǔ)單元中的數(shù)據(jù),改寫(xiě)次數(shù)可達(dá)1萬(wàn)次,其讀寫(xiě)速度很快,存取時(shí)間可達(dá)70ns,成本比E2PROM低得多,大有取代E2PROM的趨勢(shì)。目前許多公司生產(chǎn)的8051內(nèi)核的單片機(jī),在芯片內(nèi)部大多集成了數(shù)量不等的FlashROM。8.2.1常用EPROM芯片介紹EPROM的典型芯片是是INTEL公司的27系列產(chǎn)品,例如,2764(8KB)、27128(16KB)、27256(32KB)、27512(64KB)。型號(hào)“27”后面的數(shù)字表示其位存儲(chǔ)容量。如果換算成字節(jié)容量,只需將該數(shù)字除以8即可。例如,“27128”中的“27”后的數(shù)字“128”,128/8

=16KB隨著大規(guī)模集成電路技術(shù)的發(fā)展,大容量存儲(chǔ)器芯片產(chǎn)量劇增,售價(jià)不斷下降,性價(jià)比明顯增高,且由于小容量芯片停止生產(chǎn),使市場(chǎng)某些小容量芯片價(jià)格反而比大容量芯片還貴。所以,應(yīng)盡量采用大容量芯片。它們的引腳功能基本類似,均向下兼容。2930圖8-7常用的EPROM芯片引腳圖27系列EPROM芯片的引腳如圖8-7。芯片引腳功能:A0~A15:地址線引腳。它的數(shù)目由芯片的存儲(chǔ)容量決定,用于進(jìn)行單元選擇。D7~D0:數(shù)據(jù)線引腳。

:片選控制端。

:輸出允許控制端。

:編程時(shí),編程脈沖的輸入端。VPP:編程時(shí),編程電壓(+12V或+25V)輸入端。VCC:+5V,芯片的工作電壓。GND:數(shù)字地。NC:無(wú)用端。318.2.2EPROM芯片的工作方式5種工作方式,由

、、

信號(hào)的組合確定。5種工作方式如表8-2。表8–2中,×表示為任意狀態(tài),可以是“0”,也可以是“1”32(1)

讀出方式。工作在該方式的條件是使片選控制線為低電平,同時(shí)讓輸出允許控制線

為低電平,VPP為+5V,就可把指定地址單元的內(nèi)容從D7~D0上讀出。(2)未選中方式。當(dāng)片選控制線

為高電平時(shí),芯片未選中方式,數(shù)據(jù)輸出為高阻抗懸浮狀態(tài),不占用數(shù)據(jù)總線。EPROM處于低功耗的維持狀態(tài)。(3)編程方式。VPP端加上規(guī)定好的高壓,

為高電平,

端加上合適的電平脈沖(不同芯片要求不同),能將數(shù)據(jù)寫(xiě)入到指定的地址單元。編程地址和編程數(shù)據(jù)分別由系統(tǒng)的A15~A0和D7~D0提供。33(4)編程校驗(yàn)方式。VPP端保持相應(yīng)的編程電壓(高壓),再按讀出方式操作,讀出固化好的內(nèi)容,校驗(yàn)寫(xiě)入內(nèi)容是否正確。(5)編程禁止方式。為高電平,

為高電平。348.2.3程序存儲(chǔ)器的擴(kuò)展

程序存儲(chǔ)器的擴(kuò)展同樣是按三總線模式來(lái)進(jìn)行設(shè)計(jì)。

(1)

數(shù)據(jù)總線:D7~D0;(2)

地址總線:A15~A0(根據(jù)程序存儲(chǔ)器的不同容量,應(yīng)用地址總線的數(shù)量有所不同)

;(3)

控制總線:ALE—用于低8位地址鎖存控制;—外部程序存儲(chǔ)器取指控制信號(hào),與EPROM的端連接;—訪問(wèn)外部程序存儲(chǔ)器接地。1.單片程序存儲(chǔ)器的擴(kuò)展

圖8–8是28引腳的EPROM2764與51單片機(jī)的連接電路,擴(kuò)展8K的EPROM程序存儲(chǔ)器。8K×8位的2764芯片的地址引腳線有13條,順次和單片機(jī)的地址總線A12~A0相接。因?yàn)橹粩U(kuò)展一片程序存儲(chǔ)器,所以將2764芯片的片選信號(hào)直接接地。由于不采用地址譯碼器,所以高3位地址線P2.7、P2.6、P2.5懸空,也稱P2.7、P2.6、P2.5(A15、A14、A13)為無(wú)關(guān)地址線(位),故有23=8個(gè)重疊的8KB地址空間。35圖8–8單片EPROM2764與51單片機(jī)的擴(kuò)展電路3637圖8–8所示擴(kuò)展電路中,8個(gè)重疊的8KB地址范圍為:0000000000000000~0001111111111111,即0000H~1FFFH;0010000000000000~0011111111111111,即2000H~3FFFH;0100000000000000~0101111111111111,即4000H~5FFFH;0110000000000000~0111111111111111,即6000H~7FFFH;1000000000000000~1001111111111111,即8000H~9FFFH;1010000000000000~1011111111111111,即A000H~BFFFH;1100000000000000~1101111111111111,即C000H~DFFFH;1110000000000000~1111111111111111,即E000H~FFFFH。通常在應(yīng)用中,根據(jù)個(gè)人習(xí)慣將無(wú)關(guān)地址線全部取0,或全部取1。無(wú)關(guān)地址線全部取0,地址為:0000H~1FFFH;無(wú)關(guān)地址線全部取1,地址為:E000H~FFFFH。如果擴(kuò)展8K的存儲(chǔ)容量不夠,可將2764改為27128或27256等容量更大的EPROM,在只擴(kuò)展1片EPROM的情況下,每增加一倍的存儲(chǔ)容量,增加一根地址線。2.采用線選法的多片程序存儲(chǔ)器的擴(kuò)展

例8–1

使用兩片2764擴(kuò)展16KB的程序存儲(chǔ)器,采用線選法編地址選擇存儲(chǔ)器芯片。與單片EPROM擴(kuò)展電路相比,多片EPROM的擴(kuò)展除片選線以外,其它的三總線均與單片EPROM擴(kuò)展電路相同。38圖8–9兩片EPROM2764與51單片機(jī)連接的擴(kuò)展電路39圖8–9給出了應(yīng)用2片2764擴(kuò)展16KB程序存儲(chǔ)器的方法。圖8–9中采用線選法連接,以P2.5作為片選,P2.5=0:選中2764(1);P2.5=1:選中2764(2)。因兩根地址線P2.7、P2.6未用,故兩塊芯片各有22=4個(gè)重疊的地址空間。若無(wú)關(guān)地址線P2.7、P2.6全部取0,2764(1)的地址為:0000H~1FFFH;2764(2)的地址為:2000H~3FFFH。若無(wú)關(guān)地址線P2.7、P2.6全部取1,2764(1)的地址為:C000H~DFFFH;2764(2)的地址為:E000H~FFFFH。在多片程序存儲(chǔ)器擴(kuò)展時(shí)還可以采用譯碼法編地址,這與本節(jié)介紹的擴(kuò)展電路的主要區(qū)別在于程序存儲(chǔ)器片選端的連接,采用譯碼法編地址方法將在數(shù)據(jù)存儲(chǔ)器和其它外部擴(kuò)展芯片擴(kuò)展的章節(jié)中進(jìn)行介紹。8.2.4程序存儲(chǔ)器的讀控制與時(shí)序1.訪問(wèn)程序存儲(chǔ)器的控制信號(hào)51單片機(jī)訪問(wèn)片外擴(kuò)展的程序存儲(chǔ)器時(shí),應(yīng)用了3根控制線。(1)ALE:低8位地址鎖存控制。(2)

:片外程序存儲(chǔ)器“讀選通”控制信號(hào)。它與擴(kuò)展的EPROM的引腳連接。(3)

:片內(nèi)、片外程序存儲(chǔ)器訪問(wèn)的控制信號(hào)。當(dāng)=1,單片機(jī)發(fā)出的地址值小于片內(nèi)程序存儲(chǔ)器最大地址值時(shí),訪問(wèn)片內(nèi)程序存儲(chǔ)器;當(dāng)=0,只訪問(wèn)片外程序存儲(chǔ)器。如果從片外EPROM中讀取指令,除了ALE用于低8位地址鎖存信號(hào)之外,控制信號(hào)還有,接片外EPROM的引腳。此外,P0口分時(shí)用作低8位地址總線和數(shù)據(jù)總線,P2口用作高8位地址線。2.操作時(shí)序AT89S51對(duì)片外ROM的操作時(shí)序分兩種,即執(zhí)行非MOVX指令的時(shí)序和執(zhí)行MOVX指令的時(shí)序,如圖8-10和圖8-11所示。40(1)應(yīng)用系統(tǒng)中無(wú)片外RAM系統(tǒng)無(wú)片外RAM(或I/O)時(shí),不用執(zhí)行MOVX指令。在執(zhí)行非MOVX指令時(shí),時(shí)序如圖8-10所示。P0口作為地址/數(shù)據(jù)復(fù)用的雙向總線,用于輸入指令或輸出程序存儲(chǔ)器的低8位地址PCL。P2口專門(mén)用于輸出程序存儲(chǔ)器的高8位地址PCH。P0口分時(shí)復(fù)用,故首先要將P0口輸出的低8位地址PCL鎖存在鎖存器中,然后P0口再作為數(shù)據(jù)口。在每個(gè)機(jī)器周期中,允許地址鎖存兩次有效,ALE在下降沿時(shí),將P0口的低8位地址PCL鎖存在鎖存器中。4142圖8-10無(wú)MOVX指令的執(zhí)行時(shí)序同時(shí),

也是每個(gè)機(jī)器周期中兩次有效,用于選通片外程序存儲(chǔ)器,將指令讀入片內(nèi)。系統(tǒng)無(wú)片外RAM(或I/O)時(shí),此ALE信號(hào)以振蕩器頻率的1/6出現(xiàn)在引腳上,它可用作外部時(shí)鐘或定時(shí)脈沖信號(hào)。(2)應(yīng)用系統(tǒng)中接有片外RAM在執(zhí)行訪問(wèn)片外RAM(或I/O)的MOVX指令時(shí),16位地址應(yīng)轉(zhuǎn)而指向數(shù)據(jù)存儲(chǔ)器,時(shí)序如圖8-11。在指令輸入以前,P2口輸出的地址PCH、PCL指向程序存儲(chǔ)器;在指令輸入并判定是MOVX指令后,ALE在該機(jī)器周期S5狀態(tài)鎖存的是P0口發(fā)出的片外RAM(或I/O)低8位地址。4344圖8-11執(zhí)行MOVX指令的時(shí)序若執(zhí)行的是“MOVX

A,@DPTR”或“MOVX

@DPTR,A”指令,則此地址就是DPL(數(shù)據(jù)指針低8位);同時(shí),在P2口上出現(xiàn)的是DPH(數(shù)據(jù)指針的高8位)。若執(zhí)行的是“MOVXA,@Ri”或“MOVX@Ri,A”指令,則Ri的內(nèi)容為低8位地址,而P2口線上將是P2口鎖存器的內(nèi)容。在同一機(jī)器周期中將不再出現(xiàn)有效取指信號(hào),下一個(gè)機(jī)器周期中ALE的有效鎖存信號(hào)也不再出現(xiàn);當(dāng)/有效時(shí),P0口將讀/寫(xiě)數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)。判定是MOVX指令后,ALE在該機(jī)器周期S5狀態(tài)鎖存的是P0口發(fā)出的片外RAM(或I/O)低8位地址。若執(zhí)行的是“MOVX

A,@DPTR”或是“MOVX

@DPTR,A”指令,則此地址就是DPL(數(shù)據(jù)指針低8位);同時(shí),在P2口上出現(xiàn)的是DPH(數(shù)據(jù)指針的高8位)。45若執(zhí)行的是“MOVXA,@Ri”或“MOVX@Ri,A”指令,則Ri內(nèi)容為低8位地址,而P2口線將是P2口鎖存器內(nèi)容。在同一機(jī)器周期中將不再出現(xiàn)有效取指信號(hào),下一個(gè)機(jī)器周期中ALE的有效鎖存信號(hào)也不再出現(xiàn);而當(dāng)/有效時(shí),P0口將讀/寫(xiě)數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)。由圖8-11可以看出:(1)

將ALE用作定時(shí)脈沖輸出時(shí),執(zhí)行一次MOVX指令就會(huì)丟失一個(gè)ALE脈沖;(2)

只有在執(zhí)行MOVX指令時(shí)的第二個(gè)機(jī)器周期中,才對(duì)數(shù)據(jù)存儲(chǔ)器(或I/O)讀/寫(xiě),地址總線才由數(shù)據(jù)存儲(chǔ)器使用。4647

8.3數(shù)據(jù)存儲(chǔ)器的擴(kuò)展及應(yīng)用擴(kuò)展數(shù)據(jù)存儲(chǔ)器是設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)的基本技能,本節(jié)僅討論靜態(tài)數(shù)據(jù)存儲(chǔ)器與51單片機(jī)的接口與編制地址的方法。

8.3.1常用的靜態(tài)數(shù)據(jù)存儲(chǔ)器芯片介紹51單片機(jī)擴(kuò)展靜態(tài)數(shù)據(jù)存儲(chǔ)器的芯片主要有6116(2K×8位)、6264(8K×8位)、62128(16K×8位)、62256(32K×8位)等,其雙列直插封裝的引腳如圖8–12所示。它們都使用單一的+5V電源,6116為24腳封裝,6264、62128、62256為28腳封裝。這些RAM芯片的引腳如圖8-12所示。48圖8-12

常用的RAM引腳圖各引腳功能:A0~A14:地址輸入線。D0~D7:雙向三態(tài)數(shù)據(jù)線。

:片選信號(hào)輸入線。對(duì)6264芯片,當(dāng)24腳(CS)為高電平且

為低電平時(shí)才選中該片。

:讀選通信號(hào)輸入線,低電平有效。

:寫(xiě)允許信號(hào)輸入線,低電平有效。VCC

—工作電源+5V。GND—地。4950

8.3.2RAM芯片的工作方式靜態(tài)RAM存儲(chǔ)器有3種工作方式,分別是輸出、輸入和維持。3種工作方式如表8–3所示。對(duì)于6264芯片,有兩個(gè)片選控制端和,只有當(dāng)為低電平和為高電平時(shí)才能選中該芯片。:讀選通信號(hào)輸入線。:寫(xiě)允許信號(hào)輸入線。8.3.3數(shù)據(jù)存儲(chǔ)器的擴(kuò)展

與程序存儲(chǔ)器擴(kuò)展類似,靜態(tài)數(shù)據(jù)存儲(chǔ)器擴(kuò)展依然是三總線的擴(kuò)展,它們分別是:數(shù)據(jù)總線:D7~D0地址總線:A15~A0(根據(jù)不同容量,地址總線數(shù)量有所不同)控制總線:—用于低8位地址鎖存控制;—外部數(shù)據(jù)存儲(chǔ)器“讀”控制信號(hào),接RAM的端;—外部數(shù)據(jù)存儲(chǔ)器的“寫(xiě)”控制信號(hào),接RAM的端。在擴(kuò)展數(shù)據(jù)存儲(chǔ)器時(shí),除了“讀”、“寫(xiě)”控制信號(hào)外,其它信號(hào)線與單片機(jī)的連接方法和程序存儲(chǔ)器與單片機(jī)的連接方法完全相同。訪問(wèn)片外數(shù)據(jù)存儲(chǔ)器可采用低8位地址線尋址,此時(shí)可尋址空間為256B,具體指令為: MOVX A,@Ri ;(i=0,1) MOVX @Ri,A ;(i=0,1)當(dāng)采用16位地址線尋址時(shí),可尋址空間為64KB,具體指令為:

MOVX A,@DPTR MOVX @DPTR,A

51例8–2

采用全譯碼方式用4片62128芯片擴(kuò)展64KB數(shù)據(jù)存儲(chǔ)器。用全譯碼法擴(kuò)展64K外部數(shù)據(jù)存儲(chǔ)器的電路如圖8–13所示。數(shù)據(jù)存儲(chǔ)器62128為16K容量,該芯片地址線為A0~A13,順次和單片機(jī)的地址總線A0~A13相接,剩余的高2位地址線P2.6、P2.7提供給74LS139譯碼器譯碼,譯碼后輸出的4個(gè)譯碼信號(hào)作為片選,分別提供給4個(gè)存儲(chǔ)器芯片。各個(gè)62128芯片地址分配見(jiàn)表8–4。由表8–4可見(jiàn),譯碼法進(jìn)行地址分配,各芯片的地址空間是連續(xù)的。5253圖8–13多片數(shù)據(jù)存儲(chǔ)器擴(kuò)展電路(全譯碼方式)548.3.4數(shù)據(jù)存儲(chǔ)器的讀寫(xiě)控制與時(shí)序?qū)ζ釸AM讀和寫(xiě)兩種操作時(shí)序的基本過(guò)程相同。1.讀片外RAM操作時(shí)序若外擴(kuò)一片RAM,應(yīng)將

腳與RAM的

腳連接,

腳與芯片

腳連接。51單片機(jī)讀片外RAM操作時(shí)序如圖8–14所示。在第一個(gè)機(jī)器周期的S1狀態(tài),ALE信號(hào)由低變高(①處),讀RAM周期開(kāi)始。在S2狀態(tài),CPU把低8位地址送到P0口總線上,把高8位地址送上P2口(在執(zhí)行“MOVXA,@DPTR”指令階段才送高8位;若執(zhí)行“MOVXA,@Ri”則不送高8位)。ALE下降沿(②處)用來(lái)把低8位地址信息鎖存到外部鎖存器74LS373內(nèi)。而高8位地址信息一直鎖存在P2口鎖存器中(③處)。在S3狀態(tài),P0口總線變成高阻懸浮狀態(tài)④。在S4狀態(tài),執(zhí)行指令“MOVXA,@DPTR”后使

信號(hào)變有效(⑤處),

信號(hào)使被尋址的片外RAM過(guò)片刻后把數(shù)據(jù)送上P0口總線(⑥處),當(dāng)

回到高電平后(⑦處),P0總線變懸浮狀態(tài)(⑧處)。5556圖8-1451單片機(jī)讀片外RAM操作時(shí)序圖572.寫(xiě)片外RAM操作時(shí)序向片外RAM寫(xiě)數(shù)據(jù),單片機(jī)執(zhí)行“MOVX@DPTR,A”指令。指令執(zhí)行后,51單片機(jī)的

信號(hào)為低有效,此信號(hào)使RAM的

端被選通。寫(xiě)片外RAM的時(shí)序如圖8-15所示。開(kāi)始的過(guò)程與讀過(guò)程類似,但寫(xiě)的過(guò)程是CPU主動(dòng)把數(shù)據(jù)送上P0口總線,故在時(shí)序上,CPU先向P0口總線上送完8位地址后,在S3狀態(tài)就將數(shù)據(jù)送到P0口總線(③處)。此間,P0總線上不會(huì)出現(xiàn)高阻懸浮現(xiàn)象。在S4狀態(tài),寫(xiě)信號(hào)

有效(⑤處),選通片外RAM,稍過(guò)片刻,P0口上的數(shù)據(jù)就寫(xiě)到RAM內(nèi)了,然后寫(xiě)信號(hào)

變?yōu)闊o(wú)效(⑥處)。58圖8-1551單片機(jī)寫(xiě)片外RAM操作時(shí)序圖8.4程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的綜合擴(kuò)展

例8–3

設(shè)在一個(gè)51單片機(jī)應(yīng)用系統(tǒng)中,應(yīng)用了2片2764芯片和2片6264芯片擴(kuò)展16KB程序存儲(chǔ)器和16KB數(shù)據(jù)存儲(chǔ)器。這是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的綜合擴(kuò)展電路,由于數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器的地址空間是各自獨(dú)立,能夠分別獨(dú)立的進(jìn)行編址,二者的綜合擴(kuò)展可以理解為各自獨(dú)立擴(kuò)展的簡(jiǎn)單“并聯(lián)”,具體擴(kuò)展電路如圖8–16所示,圖8–16中4塊芯片的地址范圍見(jiàn)表8–5。圖8–16中,數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器的數(shù)據(jù)總線和地址總線公用,在控制總線中,2片2764芯片應(yīng)用51單片機(jī)的2片6264芯片應(yīng)用51單片機(jī)的、,2片6264的CE2

直接與+5V電源連接為高電平,由為低電平來(lái)選中6264芯片。5960圖8-16采用譯碼法的數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器綜合擴(kuò)展電路采用全譯碼方式進(jìn)行編址,應(yīng)用74LS138譯碼器對(duì)P2.7、P2.6、P2.5譯碼得到8個(gè)片選信號(hào),,…,,由于只擴(kuò)展2片2764和2片6264,片選信號(hào)可以只使用2根,圖8–16中使用了和。其中同時(shí)與2764(1)的和6264(1)的連接,同時(shí)與2764(2)的和6264(2)的連接。從表8–5中可以看出,2片2764芯片和2片6264芯片的地址范圍相同,這樣2764(1)和6264(1)芯片相互之間、2764(2)和6264(2)芯片相互之間都存在一個(gè)地址相同的兩個(gè)單元,將會(huì)同時(shí)被選通,但兩個(gè)地址相同的單元一個(gè)在程序存儲(chǔ)器中,另一個(gè)在數(shù)據(jù)存儲(chǔ)器中,其控制信號(hào)不同,控制程序存儲(chǔ)器的數(shù)據(jù)讀出,而信號(hào)控制數(shù)據(jù)存儲(chǔ)器的數(shù)據(jù)讀出,信號(hào)控制數(shù)據(jù)存儲(chǔ)器寫(xiě)入。而和、信號(hào)在任何時(shí)刻不會(huì)同時(shí)有效,所以,即使兩個(gè)相同

溫馨提示

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

評(píng)論

0/150

提交評(píng)論