




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
內(nèi)容提要
MCS-51系列單片機(jī)三總線總線擴(kuò)展電路常用器件簡(jiǎn)介
27系列EPROM型存儲(chǔ)器總線擴(kuò)展方法MCS-51外部數(shù)據(jù)存儲(chǔ)器總線擴(kuò)展系統(tǒng)
外部非易失性數(shù)據(jù)存儲(chǔ)器及總線擴(kuò)展方法MCS-51總線系統(tǒng)的地址譯碼技術(shù)
8.1MCS-51系列單片機(jī)的控制信號(hào)及三總線8.1.1
單片機(jī)的最小應(yīng)用系統(tǒng)及擴(kuò)展系統(tǒng)
1.最小應(yīng)用系統(tǒng) 由單片機(jī)自身資源(存儲(chǔ)器、定時(shí)計(jì)數(shù)器、中斷控制器、串行通信控制器、I/O接口等)構(gòu)成的系統(tǒng)。
向資源豐富的片上系統(tǒng)發(fā)展是當(dāng)代單片機(jī)產(chǎn)品發(fā)展的主流。
能否采用最小應(yīng)用系統(tǒng)方案,取決于系統(tǒng)的規(guī)模和機(jī)內(nèi)資源水平及設(shè)計(jì)者的設(shè)計(jì)思想。
51系列中,8051、8751或89C51等單片機(jī)有條件構(gòu)成最小應(yīng)用系統(tǒng)。
片內(nèi)無(wú)程序存儲(chǔ)器的芯片8031是一個(gè)特例,一定要用外接程序存儲(chǔ)器才可以工作。只擴(kuò)展外部程序存儲(chǔ)器的8031系統(tǒng),也屬于最小應(yīng)用系統(tǒng)。但8031
不是片上系統(tǒng)芯片。 8051、8751的最小應(yīng)用系統(tǒng),其特點(diǎn)如下:
(1)I/O量大:P0~P3都可作為I/O口使用。 (2)存儲(chǔ)器的容量有限:128BRAM和4KB的ROM。 (3)無(wú)數(shù)據(jù)、地址、控制總線。 只要為單片機(jī)供電,并將單片機(jī)接上時(shí)鐘電路和復(fù)位電路,同時(shí) 接高電平,系統(tǒng)就可以工作了。ALE、 信號(hào)線懸空即可。8.1.2構(gòu)建總線系統(tǒng)的條件與總線分類1.構(gòu)建總線系統(tǒng)的條件 單片機(jī)有外部總線是構(gòu)建總線系統(tǒng)的必要條件。2.單片機(jī)的I/O工作方式與總線工作方式
I/O方式:I/O是單片機(jī)與外部聯(lián)系唯一渠道,對(duì)外部對(duì)象的控制或數(shù)據(jù)交換,都是通過(guò)對(duì)I/O操作完成的。 總線方式:通過(guò)總線與外部器件構(gòu)成應(yīng)用系統(tǒng),系統(tǒng)在總線控制下協(xié)調(diào)工作。剩余的I/O操作方式不變。 51系列是有外部總線的單片機(jī),可以工作于I/O方式,也可以工作于總線方式。3.并行總線與串行總線 單片機(jī)總線系統(tǒng),分并行和串行總線兩種。它們具有不同的特點(diǎn)。單片機(jī)系統(tǒng)擴(kuò)展是以并行方式為主的,所以習(xí)慣術(shù)語(yǔ)中的總線,默認(rèn)為并行總線,以區(qū)別串行總線系統(tǒng)。8.1.2MCS-51系列單片機(jī)并行總線擴(kuò)展方法
1.并行總線基本成員及其作用 并行總線(簡(jiǎn)稱總線,下同)由數(shù)據(jù)總線、地址總線和控制總線構(gòu)成。 總線是開(kāi)放的,一切符合總線標(biāo)準(zhǔn)的器件都可以掛在總線上。數(shù)據(jù)在總線傳輸形成數(shù)據(jù)流,單片機(jī)是總線系統(tǒng)的調(diào)度,協(xié)調(diào)整個(gè)總線系統(tǒng)的有序運(yùn)行。 總線工作的原則是:任意時(shí)刻,數(shù)據(jù)總線只能被一個(gè)器件所占有。否則會(huì)造成數(shù)據(jù)“撞車”,程序“跑飛”,系統(tǒng)癱瘓的結(jié)果。
當(dāng)單片機(jī)對(duì)總線上器件操作時(shí),地址總線為其提供地址信號(hào)。 單片機(jī)是并行總線的主控制器,而總線上的其它器件均由單片機(jī)管理,實(shí)現(xiàn)對(duì)它們的控制。 另一方面,總線上的器件應(yīng)具有數(shù)據(jù)、地址和受控接口才能接受單片機(jī)的控制,所以將符合這個(gè)條件的器件統(tǒng)稱為接口器件。2.MCS-51并行總線的基本構(gòu)架
51機(jī)的I/O口除P1口外,都具有復(fù)用功能。在最小模式下,51機(jī)的并行口作為通用I/O口使用。在總線擴(kuò)展方式下,51機(jī)的并行總線(inter)是這樣構(gòu)成的:
數(shù)據(jù)總線:P0兼作數(shù)據(jù)和地址總線的低8位A0~A7。
地址總線:P0口兼作地址總線的低8位A0~A7,P2口為地址總線的高8位A8~A15。
控制總線: 外部程序存儲(chǔ)器讀選通信號(hào)輸出端;ALE地址鎖存信號(hào)輸出端。 (P3.7)為外部RAM讀選通輸出端;(P3.6)為外部數(shù)據(jù)存儲(chǔ)器寫選通輸出端。
51機(jī)并行總線擴(kuò)展方法是非常規(guī)范的,設(shè)計(jì)技巧是以單片機(jī)的三總線為核心,接口芯片與三總線對(duì)接。圖8-2為51機(jī)的三總線的基本構(gòu)架。
3.MCS-51并行總線系統(tǒng)設(shè)計(jì)思路 總線系統(tǒng)設(shè)計(jì)應(yīng)以51機(jī)三總線為核心,接口器件與總線并聯(lián)對(duì)接的方式進(jìn)行。電路設(shè)計(jì)時(shí)又有先易后難的原則:即先將接口芯片的數(shù)據(jù)和地址線接入總線,最后處理具有特殊性(差別很小)的控制線部分。此時(shí),要特別注意接口芯片的受控線(讀/寫、片選、輸出允許信號(hào)等)。 圖8-3是51機(jī)總線擴(kuò)展系統(tǒng)的一個(gè)典型電路圖。4.總線工作原理 (1)MCS-51采用地址/數(shù)據(jù)分時(shí)復(fù)用技術(shù),低8位地址A7~A0與數(shù)據(jù)總線D7~D0分時(shí)使用P0口引腳,因此需要在P0口上接一個(gè)地址鎖存器芯片,見(jiàn)圖8-3。 (2)總線的工作時(shí)序信號(hào)由51機(jī)產(chǎn)生,無(wú)需人的干預(yù)。 (3)總線工作的次序遵守先地址,后數(shù)據(jù)的原則,見(jiàn)圖8-4。5.總線設(shè)計(jì)時(shí)需考慮的幾個(gè)問(wèn)題 (1)總線的負(fù)載能力。51機(jī)的數(shù)據(jù)總線和控制總線,可直接驅(qū)動(dòng)8個(gè)LSTTL門電路;而地址總線可直接驅(qū)動(dòng)4個(gè)LSTTL門電路。目前,接口芯片多采用MOS工藝,直流阻抗大。但MOS負(fù)載的輸入電容較大,因此,負(fù)載問(wèn)題應(yīng)重點(diǎn)考慮交流負(fù)載能力。 (2)總線讀/寫時(shí)序與接口芯片的存取速度的匹配問(wèn)題。接口器件的讀/寫速度應(yīng)與總線相同或更快。8.2總線擴(kuò)展常用器件簡(jiǎn)介
51機(jī)的并行總線架構(gòu)需要一些特定功能的芯片才能實(shí)現(xiàn)。常見(jiàn)的芯片有:
1.地址鎖存器
51機(jī)的地址鎖存器常用8D鎖存器74LS373、74HC573等芯片。他們是帶輸出三態(tài)門的8D鎖存器,其外部引腳示意如圖11-4所示。其中:
1D~8D為8個(gè)輸入端;
1Q~8Q為8個(gè)輸出端;
G為數(shù)據(jù)鎖存端:當(dāng)G為“1”時(shí),鎖存器輸出狀態(tài)(1Q~8Q)同輸入狀態(tài)(1D~8D);當(dāng)G由“1”變“0”時(shí),數(shù)據(jù)打入鎖存器中。并且在G保持“0”時(shí)輸出保持不變,輸入為高阻。正好與51機(jī)的ALE信號(hào)功能吻合。
3.譯碼器 總線設(shè)計(jì)一個(gè)重要點(diǎn)就是地址譯碼。地址譯碼就是為總線上的芯片分配地址范圍,由于多數(shù)芯片都有多個(gè)連續(xù)的地址單元,所以每個(gè)芯片的地址,是一個(gè)連續(xù)的地址范圍。 此外I/O也可以參與譯碼,實(shí)現(xiàn)更靈活的譯碼。從本質(zhì)上講譯碼就是當(dāng)CPU訪問(wèn)該芯片時(shí),要輸出一個(gè)選片信號(hào)至預(yù)訪問(wèn)的芯片的選片輸入端。
譯碼電路的設(shè)計(jì)原則是:在任意時(shí)刻只有一個(gè)芯片的被選中,其他芯片的數(shù)據(jù)口均為高阻狀態(tài)。
學(xué)習(xí)譯碼技術(shù)要達(dá)到以下水平:
(1)電路的設(shè)計(jì)者要能指出系統(tǒng)上每個(gè)芯片的地址范圍。建筑設(shè)計(jì)工程師設(shè)計(jì)了一幢房子,但他自己不知道門、窗在哪里,這種笑話在單片機(jī)的學(xué)習(xí)中常見(jiàn)。 (2)在參考別人設(shè)計(jì)電路時(shí),只要硬件不加密,要能從譯碼電路看出系統(tǒng)上每個(gè)芯片的地址范圍。
總線系統(tǒng)設(shè)計(jì)中,常用的具有代表性的譯碼電路由3-8譯碼器74HC138構(gòu)成。它是一種常用的地址譯碼器芯片,其管腳圖如圖8-7所示。
表8-2為74LS138的真值表。其中G1、、三個(gè)控制端,只有當(dāng)G1為高電平且、均為低電平時(shí),譯碼器才能進(jìn)行譯碼輸出。否則譯碼器的8個(gè)輸出端均為高電平。
74CH138譯碼輸出時(shí),每次只有一個(gè)輸出端有效,為低電平。所以138適用于絕大多數(shù)低電平選通的接口芯片構(gòu)成的系統(tǒng)。8.227系列EPROM型存儲(chǔ)器 外部程序存儲(chǔ)器一般使用EPROM、EEPROM、FlashROM,他們的接口基本相同,以傳統(tǒng)的27系列芯片為例討論。
27系列為EPROM型存儲(chǔ)器,其上帶有一個(gè)石英窗,可透射紫外線擦除內(nèi)部數(shù)據(jù),反復(fù)使用。 直到電可擦除的閃存式存儲(chǔ)器出現(xiàn)后,EPROM型芯片才被取代。
8.3.1芯片的容量與地址線數(shù)目 早期有2716、2732,中期有2764、27128,后期普遍使用27256和27512。27后的數(shù)字為芯片的容量,單位為Kbit:如2716的容量為16Kbit,一個(gè)字節(jié)為8bit,所以用標(biāo)稱容量除以8,就是該芯片的字節(jié)量,2716為2K字節(jié)。 其封裝形式多樣,這里介紹28腳DIP封裝系列產(chǎn)品。圖8-8為2716、2764、27256的管腳圖,圖8-9為27系列芯片的簡(jiǎn)化結(jié)構(gòu)圖。
27系列芯片的引腳功能:A0~A15為地址線,O0~O7為數(shù)據(jù)線(雙向),正常工作時(shí)為輸出,只有在編程時(shí)才為輸入。控制線只有 、 兩線,其定義見(jiàn)表8-3。
8.3.227系列芯片的特性參數(shù)及時(shí)序
結(jié)論1:使器件工作的必要充分條件是, 、 上的電平均為低。 結(jié)論2:即使片選(或稱選片)端為低電平,只要輸出允許端為邏輯高電平,數(shù)據(jù)線仍保持高阻狀態(tài)。這一結(jié)論很重要,值得強(qiáng)調(diào)。
學(xué)習(xí)器件的設(shè)計(jì)與編程,要從、的操作時(shí)序入手。圖8-10為27系列芯片的讀時(shí)序示意圖。工作過(guò)程的解讀要點(diǎn)是:總線給出地址信號(hào)(數(shù)據(jù)), 、 依次拉低,存儲(chǔ)器數(shù)據(jù)送至總線上,被CPU讀取。
【例8-1】設(shè)計(jì)一個(gè)具有64K程序存儲(chǔ)器容量的8031系統(tǒng)。
解:8031構(gòu)成最小應(yīng)用系統(tǒng)時(shí),必須在片外擴(kuò)展程序存儲(chǔ)器,根據(jù)題意選用一片27512即能滿足要求。對(duì)一片程序存儲(chǔ)器系統(tǒng),可采用常選通方式,故將其選片端接地,片外地址譯碼完成。
8031的3片最小系統(tǒng),如圖8-11所示。
設(shè)計(jì)方法:直接將圖8-2、圖8-6、圖8-9組合起來(lái),最后將控制線(ALE和 )與27512的 端對(duì)接即可完成系統(tǒng)設(shè)計(jì)。 注意圖中的三個(gè)接地處理。為什么?
【例8-2】用多片2764構(gòu)成64KB程序存儲(chǔ)器的8031系統(tǒng),設(shè)計(jì)其接口電路。 外擴(kuò)兩片以上的程序存儲(chǔ)器,接口電路應(yīng)如何設(shè)計(jì)?譯碼、地址分配問(wèn)題,只有在多芯片系統(tǒng)中才能得到實(shí)踐。
問(wèn)題:擴(kuò)展64KB外部程序存儲(chǔ)器空間,需要多少片2764芯片?任務(wù):設(shè)計(jì)這個(gè)8031系統(tǒng)的電路,并為每個(gè)2764芯片分配的地址。
解:64KB正好是51機(jī)的最大程序存儲(chǔ)器的尋址范圍。因此,本例是完全譯碼的問(wèn)題:即所有地址線全部用于地址譯碼。這種譯碼方式,分配給每個(gè)存儲(chǔ)器單元只有1個(gè)唯一的地址。 (1)擴(kuò)展64K外部程序存儲(chǔ)器正好需要8片2764。
本例采用譯碼器芯片的設(shè)計(jì)方法。系統(tǒng)設(shè)計(jì)如圖8-12所示。
(2)確定每個(gè)2764芯片的地址范圍
片內(nèi)譯碼地址范圍的確定方法:每一地址位可為0、1兩種情況,用×表示。最低地址為各地址位均為0的編碼,最高地址是各地址位全為1的編碼,因此每個(gè)芯片的片內(nèi)地址變化范圍為從最低到最高地址編碼連續(xù)變化;片外譯碼由采用的譯碼電路決定,分析入手點(diǎn)是芯片的選片線是否有效。
(3)確定各個(gè)芯片的地址范圍 綜合(1)、(2)。圖8-12中8個(gè)2764芯片的地址范圍如表8-6所示。
【例8-3】用27128芯片設(shè)計(jì)一個(gè)32K外部程序存儲(chǔ)器的8031系統(tǒng),并為每個(gè)27128芯片分配地址。
解:32K空間沒(méi)有達(dá)到51機(jī)的最大程序存儲(chǔ)器的尋址范圍。因此,采用部分譯碼法分配地址。即用部分地址線譯碼方法。這種譯碼法為每個(gè)存儲(chǔ)器分配的地址范圍可以不止一個(gè),因此有地址范圍重復(fù)的情況,究其原因,是因?yàn)椴糠肿g碼空出了部分地址線而不用。部分譯碼的方法,只能用于小于64K存儲(chǔ)器空間的系統(tǒng)。
(1)擴(kuò)展32K外部程序存儲(chǔ)器正好需要2片27128。 (2)確定每個(gè)27128芯片的地址范圍: 本例譯碼方法是線選法,電路采用反相器7404設(shè)計(jì),如圖8-13所示。確定地址范圍如表8-7所示。
從表8-7看出,芯片的每個(gè)存儲(chǔ)單元都有兩個(gè)地址。邏輯上占用了他們?nèi)萘績(jī)杀兜牡刂?,但只?2K的物理空間,地址范圍不唯一,是部分譯碼的特點(diǎn)。當(dāng)A15確定后,兩個(gè)芯片的地址還是連續(xù)的。單片機(jī)上電復(fù)位后,PC從0000H開(kāi)始執(zhí)行程序,A15為0,系統(tǒng)程序存儲(chǔ)器的地址范圍為0000H~7FFFH。 讀取程序存儲(chǔ)器中表格數(shù)據(jù)的方法: 匯編用指令MOVCA,@A+PC和 指令MOVCA,@A+DPTR,兩條均為變址尋址。
C程序用code關(guān)鍵詞定義指針變量。如code*prt
外部程序存儲(chǔ)器擴(kuò)展小結(jié): (1)實(shí)現(xiàn)地址分配的譯碼電路多種多樣,可根據(jù)實(shí)際電路擇優(yōu)選用。 (2)程序存儲(chǔ)器的地址必須滿足從0000H開(kāi)始、連續(xù)這兩個(gè)要求。 (3) 、與程序存儲(chǔ)器操作無(wú)關(guān)。程序存儲(chǔ)區(qū)的64K空間是由控制信號(hào) 管理的。而數(shù)據(jù)存儲(chǔ)區(qū)64K空間是由控制信號(hào)、管理的,與 無(wú)關(guān)。這就是51機(jī)雙64K存儲(chǔ)空間的實(shí)現(xiàn)原理。
8.4外部數(shù)據(jù)存儲(chǔ)器總線擴(kuò)展 數(shù)據(jù)存儲(chǔ)器即隨機(jī)存取存儲(chǔ)器,簡(jiǎn)稱RAM。與ROM不同,單片機(jī)可對(duì)RAM可以進(jìn)行讀、寫兩種操作。RAM為易失性存儲(chǔ)器,斷電后信息消失。
8051單片機(jī)內(nèi)的128B的內(nèi)部RAM是十分珍貴的資源,應(yīng)該合理的分配并充分加以利用。然而在實(shí)際實(shí)用時(shí),僅片內(nèi)的128B的RAM往往不夠,因此需外擴(kuò)RAM
外部數(shù)據(jù)存儲(chǔ)器與程序存儲(chǔ)器擴(kuò)展設(shè)計(jì)方法基本相同。只是數(shù)據(jù)存儲(chǔ)器的控制是通過(guò) 和實(shí)現(xiàn)的。
數(shù)據(jù)存儲(chǔ)器的用途相當(dāng)于草稿紙,用戶應(yīng)有讀/寫自由空間和時(shí)間,不能受單片機(jī)內(nèi)在系統(tǒng)的控制,多個(gè)芯片的地址可以不連續(xù)(但?)。數(shù)據(jù)存儲(chǔ)器是單片機(jī)系統(tǒng)(指、信號(hào))和用戶指令(讀、寫型指令)共同控制的,用戶指令代碼為系統(tǒng)時(shí)序信號(hào)的產(chǎn)生提供依據(jù)。8.4.1常用數(shù)據(jù)存儲(chǔ)器
1.62系列靜態(tài)RAM的封裝與管腳排列
62系列芯片是靜態(tài)數(shù)據(jù)存儲(chǔ)器芯片,在單片機(jī)中常用的有6264(8K×8位)和62256(32K×8位,容量的算法與27系列相同)。其28引腳雙列直插式封裝管腳圖如圖8-14所示。其中I/O0~I/O7為三態(tài)雙向數(shù)據(jù)口,控制線為、、 三根,功能見(jiàn)表8-8。
圖8-15為62系列芯片簡(jiǎn)化接口電路圖。2.外部數(shù)據(jù)存儲(chǔ)器讀/寫操作時(shí)序
51機(jī)對(duì)XRAM的讀時(shí)序可參閱圖8-4。圖8-16是51機(jī)對(duì)XRAM的寫時(shí)序圖,對(duì)XRAM讀、寫操作建議只用如下兩條命令,即:
MOVX,A@DPTR 和
MOVX@DPTR,A8.4.262系列數(shù)據(jù)存儲(chǔ)器的接口設(shè)計(jì) 對(duì)內(nèi)部有程序存儲(chǔ)器的51機(jī)芯片來(lái)說(shuō),在數(shù)據(jù)存儲(chǔ)器需要量大時(shí),可只擴(kuò)展其外部數(shù)據(jù)存儲(chǔ)器,而不必?cái)U(kuò)展外部程序存儲(chǔ)器。在這種情況下,單片機(jī)對(duì)外部數(shù)據(jù)存儲(chǔ)器的操作可以是并行總線方式的,也可用I/O方式直接對(duì)其操作。兩者的電路結(jié)構(gòu)只有微小的差異,但驅(qū)動(dòng)程序卻大相徑庭。
【例8-4】用一片62256芯片為80C51外擴(kuò)32KB數(shù)據(jù)存儲(chǔ)器,設(shè)計(jì)電路并寫出對(duì)此62256中的任一單元進(jìn)行讀、寫操作的程序段。
解:系統(tǒng)電路設(shè)計(jì)如圖8-17所示。
ALE控制74HC573的鎖存控制端G,和分別與和相接。15根地址線與62256對(duì)接,完成片內(nèi)譯碼;地址線的最高位A15(P2.7)用于選片。當(dāng)A15為0時(shí),62256被選中:則0×××,××××,××××,××××為62256的地址范圍,即0000~7FFFH,共32K。
對(duì)62256內(nèi)部1000H單元進(jìn)行讀、寫一個(gè)字節(jié)的程序段分別為:
MOV DPTR,#1000H MOVX A,@DPTR ;對(duì)XRAM的讀操作
MOV DPTR,#1000H MOV A,#0AAH MOVX @DPTR,A ;對(duì)XRAM的寫操作
在CPU執(zhí)行這幾條指令時(shí),自動(dòng)產(chǎn)生相應(yīng)的動(dòng)作,軟件簡(jiǎn)練,指令效率極高。這是并行總線的優(yōu)勢(shì)。
總線方式,在電路設(shè)計(jì)滿足總線要求后,對(duì)數(shù)據(jù)存儲(chǔ)器類的接口器件的操作:地址輸入、芯片選通、操作時(shí)序、操作數(shù)據(jù)讀、寫,全都包含在幾條簡(jiǎn)練的指令中。
考慮:I/O方式電路和讀/寫程序如何? 對(duì)片內(nèi)有程序存儲(chǔ)器的51機(jī),可只作外部RAM擴(kuò)展,即將圖8-17與圖8-11所示的兩系統(tǒng)并接在一起。
【例8-5】編寫一個(gè)將外部RAM2000H~201FH單元,共32B傳送到以3000H為首址的外部RAM的子程序。
解:采用循環(huán)結(jié)構(gòu)。 標(biāo)準(zhǔn)51只有一個(gè)DPTR,將源頭數(shù)據(jù)直接移動(dòng)到目的地,循環(huán)結(jié)構(gòu)程序難以實(shí)現(xiàn)。 考慮數(shù)據(jù)指針(R0、R1),如果先將外部RAM中的源數(shù)據(jù),移到內(nèi)部RAM中,再將數(shù)據(jù)移到外部RAM的目標(biāo)區(qū)域,循環(huán)程序結(jié)構(gòu)的數(shù)據(jù)指針條件就滿足了。數(shù)據(jù)分布及移動(dòng)路線如圖8-18所示。 程序設(shè)計(jì)要考慮片內(nèi)RAM的容量。對(duì)本題來(lái)說(shuō),拿出32個(gè)字節(jié)空間應(yīng)不成問(wèn)題。參考子程序如下:MXRAMD: MOV R0,#30H ;內(nèi)部RAM數(shù)據(jù)區(qū)首址
MOV R7,#20H ;循環(huán)計(jì)數(shù)值
MOV DPTR,#2000H ;源數(shù)據(jù)首址LOOP1: MOVX A,@DPTR ;循環(huán)體頭
MOV @R0,A ;一次向內(nèi)轉(zhuǎn)移一個(gè)數(shù)據(jù)
INC DPTR ;片外指針加1,指向下一單元
INC R0 ;片內(nèi)指針加1,指向下一單元
DJNZ R7,LOOP1 ;循環(huán)體尾;再將暫存于內(nèi)部RAM30H~4FH中的數(shù)據(jù)送外部RAM地址中 MOV R0,#30H ;源數(shù)據(jù)首址
MOV R7,#20H MOV DPTR,#3000H ;目的數(shù)據(jù)首址LOOP2: MOV A,@R0
MOVX @DPTR,A INC DPTR INC R0 DJNZ R7,LOOP2
RET
【例8-6】編寫一個(gè)將外部RAM2000H~21FFH單元,共512B的數(shù)據(jù),傳送到以3000H為首址的外部RAM區(qū)的C程序。 解:很多增強(qiáng)型51單片機(jī),如STC系列,有兩個(gè)DPTR指針,外部RAM數(shù)據(jù)傳送的匯編程序要比用標(biāo)準(zhǔn)51簡(jiǎn)練且運(yùn)行快很多。有關(guān)雙DPTR的用法,請(qǐng)閱讀參考文獻(xiàn)[2]第4章相關(guān)內(nèi)容。本例只討論用C語(yǔ)言解決這類問(wèn)題的程序設(shè)計(jì)方法,C51參考源文件如下:#include"REG51series.H" //仿真對(duì)象為標(biāo)準(zhǔn)51#defineucharunsignedchar //無(wú)符號(hào)字符型變量#defineuintunsignedchar //定義無(wú)符號(hào)整型變量ucharxdata*wg_x,*wg_y; //定義變量位于外部RAMvoidgwrite(uintn) //定義函數(shù)名及類型{uinti;for(i=0;i<n;i++) *(wg_y+i)=*(wg_x+i); //數(shù)據(jù)移動(dòng)}voidmain(void) //主程序如下{ wg_x=0x022000; wg_y=0x023000; //0x02是格式
gwrite(512); //調(diào)用函數(shù)
while(1); //調(diào)試程序用}8.5外部非易失性數(shù)據(jù)存儲(chǔ)器及總線擴(kuò)展方法8.5.1EEPROM型非易失性存儲(chǔ)器概述 計(jì)算機(jī)系統(tǒng)中,常常需要一種即可讀寫又有掉電不丟失的非易失性存儲(chǔ)器,其中一大類稱為EEPROM。這種存儲(chǔ)器也分串行和并行接口兩種類型。 并行接口EEPROM其代表產(chǎn)品為28系列存儲(chǔ)器芯片。串行接口EEPROM是為I/O系統(tǒng)設(shè)計(jì)的產(chǎn)品,占用I/O少,適用于單片機(jī)最小應(yīng)用系統(tǒng)中,如智能儀器、儀表系統(tǒng)等。8.5.228系列并行接口EEPROM的一般特性
28系列芯片中28C64(8KB)、28C256(32KB)最具有代表性。在管腳排列與定義上,28系列與62系列完全一樣,操作時(shí)序也相同。因此,這兩個(gè)系列的芯片可以在硬件級(jí)互換。區(qū)別僅在于28系列在寫操作后,需要一個(gè)寫周期延時(shí),數(shù)據(jù)才能可靠寫入,時(shí)間一般在7~15ms之間。不同型號(hào)產(chǎn)品讀取時(shí)間一般在100~250ns之間。
51機(jī)與28系列芯片的接口電路如圖8-19所示。
型芯片都有全片擦除功能,以節(jié)省擦除時(shí)間。 為快速寫入,芯片具有頁(yè)寫功能,可連續(xù)對(duì)芯片內(nèi)若干連續(xù)地址單元進(jìn)行批量的寫操作。這就要求芯片內(nèi)部要有頁(yè)緩沖器支持,其大小也因型號(hào)而不同。
28系列的某些芯片,如28C64A有數(shù)據(jù)查詢功能。在寫周期中,讀取最后一個(gè)寫入單元中的內(nèi)容,其最高位是目標(biāo)值的反碼,由此可判斷寫周期是否結(jié)束。這種數(shù)據(jù)查詢方法對(duì)頁(yè)寫和字節(jié)寫都適用。8.5.328系列存儲(chǔ)器的數(shù)據(jù)安全措施 對(duì)儀器、儀表而言,非易失性存儲(chǔ)芯片內(nèi)的數(shù)據(jù)保護(hù)問(wèn)題特別重要。 由于EEPROM可以在系統(tǒng)改寫,惡劣環(huán)境條件的干擾,如雷擊等,可能導(dǎo)致數(shù)據(jù)的改寫或丟失,而且?guī)茁史浅4?,因此,必須采取措施加以防范?.EEPROM存儲(chǔ)器硬件寫保護(hù)措施 沒(méi)有SDP(軟件數(shù)據(jù)保護(hù))功能的EEPROM芯片,可采用硬件寫保護(hù)措施。在圖8-19中,51機(jī)的寫信號(hào)線與P1.4,通過(guò)二輸入或門后再控制2864的寫使能端。由于附加了P1.4的保險(xiǎn),數(shù)據(jù)的安全性在一定程序上得到了提高。2.EEPROM存儲(chǔ)器軟件數(shù)據(jù)保護(hù)(SDP)措施 很多數(shù)廠家為28系列芯片增加了SDP功能。軟件保護(hù)方式,相當(dāng)于軟件加密,雷電干擾解密的概率很小。具體內(nèi)容可查閱本書參考書目[1]、[2]的相關(guān)內(nèi)容。3.EEPROM應(yīng)用舉例
【例8-7】51機(jī)與28C256的接口電路如圖8-19所示,51機(jī)的fOSC=11.0592MHz,28C256地址范圍0000~7FFFH,試用C51編寫對(duì)28C256讀、寫操作的測(cè)試程序。解:本程序是針對(duì)AT28C256編寫的,寫周期延時(shí)為7ms。C51參考程序如下:#include<reg51.h> #defineucharunsignedchar#defineuintunsignedintucharxdatattbuf[100],*paint,*pt_t1,a,m;voidDelayX1ms(uintcount) //延時(shí)1ms子程序標(biāo)準(zhǔn)51,11M{ uinti; ucharj; for(i=0;i<count;i++) for(j=0;j<112;j++); }voidmain(void){ paint=0x025a00;//用頁(yè)寫方式從5A00H開(kāi)始寫83個(gè)22H到28C256中
a=0; P1_4=0; //硬件允許寫EEPROM for(m=0;m<83;m++) { a++; *paint=0x22; //數(shù)據(jù)可在源程序中修改
paint++; if(a==16) //頁(yè)寫長(zhǎng)度可為16、32、64 { a=0; DelayX1ms(7); } } P1_4=1; //硬件寫保護(hù)
paint=0x025a00; //從5A00H開(kāi)始讀100個(gè)數(shù)據(jù)到ttbuf數(shù)組中
for(m=0;m<100;m++) { ttbuf[m]=*paint; paint++; }}8.6MCS-51總線系統(tǒng)的地址譯碼技術(shù) 問(wèn)題來(lái)源:51機(jī)外部RAM只有64KB空間。在并行總線系統(tǒng)中,各種接口器件要占用RAM空間,因此,RAM空間將被壓縮,接口器件的外擴(kuò)數(shù)量與RAM空間量之間的矛盾。 如果要在51機(jī)上擴(kuò)展端口芯片,可用RAM空間就將被壓縮。應(yīng)用中要綜合考慮擴(kuò)展端口數(shù)量與可用RAM空間的平衡關(guān)系。
一般來(lái)說(shuō),接口器件內(nèi)部寄存器單元是很少的,總?cè)萘客ǔT趲讉€(gè)至幾十個(gè)單元之間。如SJA1000有192個(gè);DS12887有128個(gè)。如此看來(lái),擴(kuò)展10個(gè)左右接口器件的系統(tǒng),占用RAM的量也遠(yuǎn)遠(yuǎn)在8KB以下,還有56KB的RAM空間,似乎不成問(wèn)題。 事實(shí)上,空間量矛盾的關(guān)鍵,不在于RAM空間的絕對(duì)量,而在于空閑空間的利用率上。下面通過(guò)一個(gè)例子來(lái),考慮問(wèn)題的來(lái)源與解決辦法。
【例8-8】設(shè)計(jì)一個(gè)51機(jī)的并行擴(kuò)展系統(tǒng)。要求程序存儲(chǔ)器64KB、RAM56KB,并預(yù)留8個(gè)片選端口,其中一個(gè)端口占用的地址范圍要達(dá)到1KB,其它端口的空間范圍也要在32B~1KB之間。 解:從現(xiàn)有掌握的邏輯芯片譯碼技術(shù),為達(dá)到設(shè)計(jì)要求,又節(jié)省器件,最佳的選擇是采用74HC138。實(shí)現(xiàn)電路如圖8-20所示。
為實(shí)現(xiàn)56KB和8KB這兩個(gè)數(shù)字組合,圖8-20中,用第1個(gè)74HC138實(shí)現(xiàn)64KB數(shù)據(jù)存儲(chǔ)區(qū)空間的分配,它將64KB空間分為相等的8塊,每塊8KB。方法是通過(guò)兩個(gè)4輸入與門實(shí)現(xiàn)對(duì)兩片62256片外譯碼?,F(xiàn)將前7塊連續(xù)空間分配給62256,滿足56KB題設(shè)要求。從圖中的邏輯關(guān)系可以得到兩片62256的地址范圍,歸納于表8-9中。
此例也表現(xiàn)出了譯碼電路復(fù)雜的缺點(diǎn)。而且譯碼死板,硬件保密性不強(qiáng)等缺點(diǎn)。 可編程邏輯器件PLD,具有現(xiàn)場(chǎng)編程、實(shí)現(xiàn)各種邏輯功能的靈活、易變性。選用它作為譯碼器時(shí),能很好地解決所有嵌入式系統(tǒng)的譯碼問(wèn)題,而且還具有保密性強(qiáng)的特點(diǎn)。有關(guān)PLD在單片機(jī)中的應(yīng)用,可參閱本書參考文獻(xiàn)[1]的有關(guān)章節(jié)。8.7異步高速雙端口靜態(tài)RAM8.7.1概述
IDT7132是IDT公司推出的2k×8B異步高速雙端口靜態(tài)RAM芯片??蓪⑵淇闯蓛山M接口、一個(gè)存儲(chǔ)器實(shí)體的62系列RAM芯片。它允許兩片微處理器讀或一讀一寫其存儲(chǔ)器,這就是雙端控制的含義,但不允許同時(shí)寫,即寫操作是異步的。為實(shí)現(xiàn)雙端控制功能,IDT7132有兩組獨(dú)立的地址、數(shù)據(jù)和控制信號(hào)線,圖8-21是48腳DIP封裝的IDT7132管腳布置圖。 IDT7132增加的62系列芯片所不具備的功能如下: 內(nèi)含仲裁邏輯,可解決同時(shí)讀/寫同一地址問(wèn)題。 具有標(biāo)志信號(hào)輸出,便于通信雙方協(xié)調(diào)工作,共享資源。8.7.2IDT7132與51機(jī)接口電路設(shè)計(jì)
【例8-9】由兩片STC12
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療儀器使用和維護(hù)手冊(cè)
- 醫(yī)藥研發(fā)項(xiàng)目管理方案
- 安全文明施工措施費(fèi)怎么算
- 懷化沅陵垃圾焚燒發(fā)電項(xiàng)目
- 安全技術(shù)措施施工方案
- 健康產(chǎn)業(yè)在線健康咨詢服務(wù)平臺(tái)開(kāi)發(fā)與運(yùn)營(yíng)策略
- 科技創(chuàng)新經(jīng)濟(jì)發(fā)展形勢(shì)
- 醫(yī)療健康大數(shù)據(jù)平臺(tái)數(shù)據(jù)共享手冊(cè)
- 登高安全作業(yè)施工方案
- 醫(yī)療機(jī)構(gòu)疾病預(yù)防控制預(yù)案
- 高二化學(xué)離子晶體 公開(kāi)課一等獎(jiǎng)?wù)n件
- DBJ41-139-2014 河南省基坑工程技術(shù)規(guī)范-(高清版)
- 光伏電站生產(chǎn)運(yùn)維體系架構(gòu)
- 隧道基本情況卡片
- 新概念第二冊(cè)Lesson-1-A-private-conversation-課件
- 確有專長(zhǎng)人員從事傳統(tǒng)醫(yī)學(xué)臨床實(shí)踐年限證明
- 2022年上海市學(xué)業(yè)水平考試生命科學(xué)試卷含答案
- 2022浙江農(nóng)林大學(xué)博士入學(xué)考試英語(yǔ)
- 2022年云南省中考數(shù)學(xué)試題及答案解析
- 煤礦礦安全監(jiān)測(cè)監(jiān)控系統(tǒng)的選型設(shè)計(jì)
- 樣板引路專項(xiàng)方案計(jì)劃
評(píng)論
0/150
提交評(píng)論