第二章mcs-51存儲器配置解析ppt課件_第1頁
第二章mcs-51存儲器配置解析ppt課件_第2頁
第二章mcs-51存儲器配置解析ppt課件_第3頁
第二章mcs-51存儲器配置解析ppt課件_第4頁
第二章mcs-51存儲器配置解析ppt課件_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第二章 MCS-51存儲器配置,存儲器的兩種結(jié)構(gòu): 普林斯頓結(jié)構(gòu):ROM和RAM統(tǒng)一編址,即在同一個空間隊列內(nèi)尋址 哈佛結(jié)構(gòu):ROM和RAM分別編址,在物理空間上相互獨立。51單片機的存儲器是哈佛結(jié)構(gòu),物理上,MCS-51有4個存儲器空間: 片內(nèi)程序存儲器和片外程序存儲器; 片內(nèi)數(shù)據(jù)存儲器和片外數(shù)據(jù)存儲器; 從用戶使用的角度,即邏輯上,MCS-51有3個存儲器空間: 片內(nèi)外統(tǒng)一的64kb的程序存儲器地址空間; 256b或384b的內(nèi)部數(shù)據(jù)存儲器地址空間; 64kb的外部數(shù)據(jù)存儲器地址空間; 訪問這3個不同邏輯空間時應(yīng)采用不同形式的指令,2.1 程序存儲器,程序存儲器用于存放編好的程序和表格常數(shù)

2、。 在MCS-51中,64kb程序存儲器的地址空間是統(tǒng)一的。對于有內(nèi)部ROM的單片機,在正常運行時,應(yīng)把EA引腳接高電平,使程序從內(nèi)部ROM開始執(zhí)行,當(dāng)PC值超出內(nèi)部ROM的容量時,會自動轉(zhuǎn)向外部程序存儲器空間;對這類芯片,若把EA引腳接低電平,可用于調(diào)試狀態(tài),把調(diào)試程序放置在與內(nèi)部ROM空間重疊的外部存儲器內(nèi)。對于無內(nèi)部ROM的芯片,EA引腳應(yīng)始終接低電平,迫使系統(tǒng)從外部程序存儲器取指,FFFFH,1000H,0FFFH,0000H,片內(nèi)ROM,片外ROM,0FFFH,0000H,8051/8751程序存儲器配置圖,FFFFH,2000H,1FFFH,0000H,片內(nèi)ROM,片外ROM,1F

3、FFH,0000H,8052/8752程序存儲器配置圖,對程序存儲器可以采用立即尋址和基址+變址尋址方式 64kb程序存儲器中有7個單元具有特殊功能 0000H單元 MCS-51復(fù)位后程序計數(shù)器PC的內(nèi)容為0000H,所以系統(tǒng)必須從0000H單元開始取指,執(zhí)行程序。該單元是系統(tǒng)的啟動地址,一般在該單元中存放一條絕對跳轉(zhuǎn)指令,而用戶設(shè)計的主程序從跳轉(zhuǎn)地址開始安放,除0000H單元外,其它6個特殊單元分別對應(yīng)于6種中斷源的中斷服務(wù)子程序的入口地址。通常在這些入口地址處都安放一條絕對跳轉(zhuǎn)指令,而真正的中斷服務(wù)子程序從轉(zhuǎn)移地址開始安放,程序存儲器中的幾個特殊單元,2.2 內(nèi)部數(shù)據(jù)存儲器,數(shù)據(jù)存儲器在物

4、理上和邏輯上都分為兩個地址空間,一個內(nèi)部和一個外部數(shù)據(jù)存儲器空間。訪問內(nèi)部數(shù)據(jù)存儲器用MOV指令;訪問外部數(shù)據(jù)存儲器用MOVX指令。 內(nèi)部數(shù)據(jù)存儲器在物理上又可以區(qū)分為3個不同的塊:00H7FH(0127)單元組成的低128字節(jié)的RAM塊;80HFFH(128255)單元組成的高128字節(jié)的RAM塊(8052單片機有這一塊); 128b的專用寄存器(SFR)塊,在51子系列中,只有低128b的RAM塊和128b的專用寄存器塊,后者占有80HFFH(128255)地址空間,兩塊地址空間是相連的; 而在52子系列中,高128字節(jié)RAM塊與SFR塊的地址是重合的,究竟訪問哪一塊是通過不同的尋址方式加

5、以區(qū)分的。訪問高地址字節(jié)RAM時采用寄存器間接尋址方式,訪問SFR塊則采用直接尋址方式。而訪問低128字節(jié)RAM時,兩種尋址方式都可以采用。 注意:128b的SFR塊中只有26個字節(jié)是有定義的,若訪問這一塊中沒有定義的單元,將得到一個不確定的隨機數(shù),FFH,80H,7FH,00H,專用寄存器,內(nèi)部RAM,FFFFH,0000H,內(nèi)部數(shù)據(jù)存儲器,外部數(shù)據(jù)存儲器,8051/8751數(shù)據(jù)存儲器配置圖,FFH,80H,7FH,00H,內(nèi)部RAM,FFFFH,0000H,內(nèi)部數(shù)據(jù)存儲器,外部數(shù)據(jù)存儲器,專用寄存器,8052/8752數(shù)據(jù)存儲器配置圖,內(nèi)部數(shù)據(jù)存儲器的00H1FH(031)單元共32b是4

6、個通用寄存器區(qū),每個區(qū)有8個8位寄存器,編號為R0R7。在專用寄存器PSW(程序狀態(tài)字)中有2位(RS0、RS1)可以用來確定采用哪一個工作寄存器區(qū)??梢酝ㄟ^兩種方法改變這兩位的值:1)對PSW尋址,通過改變PSW的值來間接改變這2位的值;2)直接對RS0、RS1尋址,改變它們的值。例如, RS0=0、RS1=1選擇的是區(qū)1,而RS0=0、RS1=0選擇區(qū)0,片內(nèi)RAM 低128字節(jié)(00H7FH,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),SFR分布在80H-FFH 其中92個位可位尋址,80H,FFH,所

7、有的RAM區(qū)(包括位尋址區(qū)、工作寄存器區(qū))都可以用于存放數(shù)據(jù),故也稱為數(shù)據(jù)緩存寄存器,89C51 128字節(jié),00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),片內(nèi)RAM前32個單元是工作寄存器區(qū) (00H1FH,MCS-51內(nèi)部數(shù)據(jù)存儲器中可以設(shè)置堆棧,但是其位置不固定??梢酝ㄟ^一個專用寄存器SP(棧指針)來確定棧頂?shù)牡刂?。堆棧深度可達(dá)128b,但是以不超出內(nèi)部RAM空間為限。 內(nèi)部RAM塊中的20H2FH(3247)單元和SFR塊中的12個單元構(gòu)成了布爾處理機的存儲器空間,這28單元的221位(288減去3個未

8、定義位)各自都有專門的位地址,可以被直接尋址,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),片內(nèi)RAM中有128個可按位尋址的位。 位地址:00H7FH 分布在:20H2FH單元,內(nèi)部RAM塊中專用位的尋址,SFR中的位地址分布,2.3 專用寄存器,8051/8052中共有22個專用寄存器(3個只屬于8052),其中5個是雙字節(jié)寄存器。PC寄存器在物理上是獨立的,其余21個寄存器都屬于內(nèi)部數(shù)據(jù)存儲器的SFR塊,共占了26個字節(jié),專用寄存器(PC除外,專用寄存器(PC除外,1程序計數(shù)器PC 程序計數(shù)器PC用于存放

9、下一條要執(zhí)行指令的地址(PC總是指向程序存儲器地址),是一個16位專用寄存器,尋址范圍64K字節(jié),PC在物理結(jié)構(gòu)上是獨立的,不屬于特殊功能寄存器SFR塊,2累加器A 累加器A是一個最常用的專用寄存器,系統(tǒng)運轉(zhuǎn)時工作最頻繁,大部分單操作數(shù)指令的操作數(shù)取自累加器A,很多雙操作數(shù)指令的一個操作數(shù)取自A;加、減、乘、除算術(shù)運算以及邏輯操作指令的結(jié)果都存放在累加器A或AB寄存器中;輸入/輸出大多數(shù)指令都以累加器A為核心操作。指令系統(tǒng)中采用A作累加器的助記符。 3寄存器B 它是一個8位寄存器。一般用于乘除法指令,與累加器A配合使用。寄存器B存放第二操作數(shù)、乘積的高位字節(jié)或除法的余數(shù)部分。在其他指令中,可作

10、為中間結(jié)果的暫存器使用,相當(dāng)于RAM中的一個特殊單元,程序狀態(tài)字是一個8位寄存器,用來存放程序的狀態(tài)信息,表征指令的執(zhí)行狀態(tài),供程序查詢和辨別之用。其PSW格式如下,1)CY:(PSW.7)進(jìn)/借位標(biāo)志 在執(zhí)行加/減法指令時,如果操作結(jié)果D7位有進(jìn)/借位,CY置“1”,否則清“0”。在布爾處理機中被定義為布爾(位)累加器(或稱位累加器)。 (2)AC:(PSW.6)輔助進(jìn)位標(biāo)志或稱為半進(jìn)位標(biāo)志 當(dāng)進(jìn)行加法操作而產(chǎn)生由低4位數(shù)(十進(jìn)數(shù)的1位數(shù))向高4位數(shù)進(jìn)位時,AC將被硬件置“1”,否則被清“0”。AC被用于BCD碼加法調(diào)整,詳見DA指令,4程序狀態(tài)字PSW,3)F0:(PSW.5)用戶標(biāo)志0

11、由用戶定義的一個狀態(tài)標(biāo)志。可以用軟件來使它置“1”或清 “0”,也可以由軟件測試F0來控制程序流向。 (4)RS1、RS0:(PSW.4、PSW.3)工作寄存器區(qū)選擇控制位 可由軟件來改變RS1和RS0的組合以確定當(dāng)前工作寄區(qū)。 (5)P:(PSW.0)奇偶標(biāo)志 每個指令周期都由硬件來置位或清零,以表示累加器A中值為“1”的位數(shù)的奇偶數(shù)。若P=1,則A中“1”的位數(shù)為奇數(shù),否則P=0,6)OV: (PSW.2 )溢出標(biāo)志 用于補碼運算,以指示溢出狀態(tài)。 當(dāng)執(zhí)行加法指令時,若以Ci表示i位向位i+1有進(jìn)位,則 OV=C6C7 即當(dāng)位6向位7有進(jìn)位,而位7不向CY進(jìn)位時;或位6不向位7進(jìn)位,而位7

12、向CY進(jìn)位時,溢出標(biāo)志OV被置“1”,否則被清“0”。 同樣,若以Ci表示減法運算時,位i向位i+1有借位,則執(zhí)行減法指令SUBB時, OV=C6C7 無符號數(shù)乘法指令MUL的執(zhí)行結(jié)果也會影響溢出標(biāo)志; 除法指令DIV也會影響溢出標(biāo)志,當(dāng)除數(shù)為0時,OV=1,否則OV=0,5堆棧指針SP 它是一個8位寄存器,用來存放棧頂?shù)刂贰?MCS-51堆棧設(shè)在內(nèi)部RAM中,是一個按“先進(jìn)后出”順序,受SP管理的存儲區(qū)域。在程序中斷,子程序調(diào)用等情況下,用于存放一些特殊信息(亦可作數(shù)據(jù)傳送的中轉(zhuǎn)站)。當(dāng)數(shù)據(jù)壓入堆棧時,SP就自動加“1”;當(dāng)數(shù)據(jù)從堆棧中彈出時,SP就自動減“1”。因而SP指針始終指向棧頂。

13、MCS-51堆棧最大深度為128個字節(jié),系統(tǒng)復(fù)位時硬件使SP=07H,6數(shù)據(jù)指針DPTR 是一16位專用寄存器,其高字節(jié)寄存器用DPH表示,低字節(jié)寄存器用DPL表示。既可作為16位寄存器(DPTR)使用,又可作為兩個獨立的8位寄存器(DPH、DPL)來使用。DPTR主要用來保持16位地址,當(dāng)對64KB外部數(shù)據(jù)存儲器RAM(或I/O口)空間尋址時,作間址寄存器用,指向外部數(shù)據(jù)存儲器地址。 7I/O端口P0P3 專用寄存器P0、P1、P2和P3分別是I/O端口P0P3的鎖存器。 8串行數(shù)據(jù)緩沖器SBUF 串行數(shù)據(jù)緩沖器SBUF用于存放欲發(fā)送或已接收的數(shù)據(jù)。它由兩個獨立的寄存器組成,一個是發(fā)送緩沖器,一個是接受緩沖器(兩個緩沖器共用一個地址,9定時器/計數(shù)器 MCS-51子系列中有兩個16位定時器/計數(shù)器T0和T1,MCS-5

溫馨提示

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

評論

0/150

提交評論