8051存貯器配置_第1頁(yè)
8051存貯器配置_第2頁(yè)
8051存貯器配置_第3頁(yè)
8051存貯器配置_第4頁(yè)
8051存貯器配置_第5頁(yè)
已閱讀5頁(yè),還剩25頁(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)介

本節(jié)主要介紹8051單片機(jī)的存貯器結(jié)構(gòu),23 8051存儲(chǔ)器配置,3.3.1 微機(jī)的存貯器結(jié)構(gòu)分類,普林斯頓結(jié)構(gòu)和哈佛結(jié)構(gòu) 普林斯頓結(jié)構(gòu) 微機(jī)只有一個(gè)地址空間,ROM和RAM可以隨意安排在這一地址范圍內(nèi)不同的空間,即ROM和RAM的地址同在一個(gè)隊(duì)列里分配不同的地址空間。CPU訪問(wèn)存儲(chǔ)器時(shí),一個(gè)地址對(duì)應(yīng)唯一的存儲(chǔ)器單元,可以是ROM也可以是RAM,并用同類訪問(wèn)指令。,哈佛結(jié)構(gòu),哈佛結(jié)構(gòu) 程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi)的結(jié)構(gòu)形式 8051的存儲(chǔ)器在物理結(jié)構(gòu)上采用哈佛結(jié)構(gòu); 分程序存儲(chǔ)器空間和數(shù)據(jù)存儲(chǔ)器空間; 有四個(gè)存儲(chǔ)空間: 片內(nèi)程序存儲(chǔ)器 片外程序存儲(chǔ)器 片內(nèi)數(shù)據(jù)存儲(chǔ)器 片外數(shù)據(jù)存儲(chǔ)器空間,3.3.2 51存儲(chǔ)器的結(jié)構(gòu),從用戶使用的角度,8051存儲(chǔ)器地址空間分為三類: 程序存儲(chǔ)器地址: 片內(nèi)、片外統(tǒng)一編址0000HFFFFH 64K字節(jié)的(用16位地址) ; 數(shù)據(jù)存儲(chǔ)器: 64K字節(jié)片外部地址空間, 地址也從0000HFFFFH(用16位地址); 256字節(jié)片內(nèi) 數(shù)據(jù)存儲(chǔ)器地址空間 (用8位地址)。,51存儲(chǔ)器空間配置圖,8051CPU區(qū)分RAM的方法,上述三個(gè)存儲(chǔ)空間地址是重迭的,如何區(qū)別這三個(gè)不同的邏輯空間呢? 8051的指令系統(tǒng)設(shè)計(jì)了不同的數(shù)據(jù)傳送指令符號(hào): 訪問(wèn)片內(nèi)、片外ROM指令用MOVC, 訪問(wèn)片外RAM指令用MOVX, 訪問(wèn)片內(nèi)RAM指令用MOV。,一、程序存儲(chǔ)器地址空間,程序存儲(chǔ)器用于存放編好的程序和表格常數(shù)。 程序存儲(chǔ)器通過(guò)16位程序計(jì)數(shù)器(PC)尋址,尋址能力為64K字節(jié)。這使得能在64K地址空間內(nèi)任意尋址, 沒(méi)有指令使程序能控制從程序存儲(chǔ)器空間轉(zhuǎn)移到數(shù)據(jù)存儲(chǔ)器空間。,805l8751的64K程序存儲(chǔ)器空間; 片內(nèi)ROM/PROM為4K字節(jié),地址為O000H0FFFH; 片外最多可擴(kuò)至64K字節(jié)ROMEPROM,地址1FFFHFFFFH,片內(nèi)外是統(tǒng)一編址的; 當(dāng)引腳EA接高電平時(shí),8051的程序計(jì)數(shù)器PC在0000H0FFFH范圍內(nèi)(即前4K字節(jié)地址)執(zhí)行片內(nèi)ROM中的程序;當(dāng)指令地址超過(guò)0FFFH后,就自動(dòng)地轉(zhuǎn)向片外ROM取指令; 當(dāng)引腳EA接低電平(接地)時(shí),8051片內(nèi)ROM不起作用,CPU只能從片外ROMEPROM中取指令,地址從0000H開(kāi)始編址。這種接法特別適用于采用8031單片機(jī)的場(chǎng)合,由于8031片內(nèi)不帶ROM,所以使用時(shí)必須使EA0,以便能夠從外部擴(kuò)展EPROM(如2764,2732)中取指令; 8051從片內(nèi)程序存儲(chǔ)器和片外程序存儲(chǔ)器取指時(shí)執(zhí)行速度相同。,程序存儲(chǔ)器的某些單元留給系統(tǒng)使用,存儲(chǔ)單元 保留目的 0000H一0002H 復(fù)位后初始化引導(dǎo)程序 0003H一000AH 外部中斷0 000BH一0012H 定時(shí)器0溢出中斷 0013H一001AH 外部中斷1 001BH一002AH 定時(shí)器1溢出中斷 0023H一002AH 串行端口中斷 002BH 定時(shí)器2中斷(8052才有),存儲(chǔ)單元0000H一0002H用作8051上電復(fù)位后引導(dǎo)程序存放單元。 因?yàn)?05180318751上電復(fù)位后程序計(jì)數(shù)器PC的內(nèi)容為0000H,所以CPU總是從0000H開(kāi)始執(zhí)行程序。 在這三個(gè)單元中存有轉(zhuǎn)移指令,那么程序就被引導(dǎo)到轉(zhuǎn)移指令指定的ROMEPROM空間去執(zhí)行。 因此,在8051的程序存貯器的開(kāi)頭都安排的是一條轉(zhuǎn)移指令 AJMP #add13 ; LJMP #add16 ;,中斷矢量區(qū),0003H002AH單元均勻地分為五段,用作五個(gè)中斷服務(wù)程序的入口。 例如,外部中斷引腳INT0(P32)有效時(shí),即引起中斷申請(qǐng), CPU響應(yīng)中斷后自動(dòng)將地址0003H裝入PC,程序就自動(dòng)轉(zhuǎn)向0003H單元開(kāi)始執(zhí)行。 如果事先在0O03H000AH存有引導(dǎo)(轉(zhuǎn)移)指令,程序就被引導(dǎo)(轉(zhuǎn)移指令)到指定的中斷服務(wù)程序空間去執(zhí)行。 0003H稱中斷矢量地址。,中斷矢量地址表,中斷源 中斷服務(wù)程序入口地址 外部中斷0 0003H 定時(shí)計(jì)數(shù)器0溢出 000BH 外部中斷1 0013H 定時(shí)計(jì)數(shù)器1溢出 001BH 串行口 0023H,二、數(shù)據(jù)存儲(chǔ)器地址空間,數(shù)據(jù)存儲(chǔ)器RAM用于存放運(yùn)算的中間結(jié)果、數(shù)據(jù)暫存和緩沖、標(biāo)志位等。 數(shù)據(jù)存儲(chǔ)器空間也分成片內(nèi)和片外兩大部分,即片內(nèi)RAM和片外RAM。 8051片外數(shù)據(jù)存儲(chǔ)器空間為64K,從OO00HFFFFH; 片內(nèi)存儲(chǔ)器空間為256字節(jié),地址從0000H00FFH。,(一)片外RAM,片外數(shù)據(jù)存儲(chǔ)器與片內(nèi)數(shù)據(jù)存儲(chǔ)器空間低地址0000H00FFH是重迭的, 如何區(qū)別片內(nèi)、片外RAM空間呢? 8051有MOV和MOVX兩種指令、用以區(qū)分片內(nèi)、片外RAM空間。 片內(nèi)RAM使用MOV指令, 片外64K RAM空間專門(mén)為MOVX指令所用。,(二)片內(nèi)RAM,片內(nèi)數(shù)據(jù)存儲(chǔ)器最大可尋址256個(gè)單元, 它們又分為兩個(gè)部分: 低128字節(jié)(00H一7FH)是 真正的RAM區(qū), 高128字節(jié)(80HFFH)為 特殊功能寄存器(SFR)區(qū)。,1.低128字節(jié)RAM (00H7FH),分為三個(gè)區(qū): 工作寄存器 區(qū)(00H1FH) 位尋址區(qū) (20H2FH) 真正的RAM區(qū) (30H7FH),工作寄存器 區(qū)(00H1FH),00HlFH地址安排為四組工作寄存器區(qū), 每組有8個(gè)工作寄存器(R0一R7),共占32個(gè)單元。 通過(guò)對(duì)程序狀態(tài)字PSW中RSl、RS0的設(shè)置, 每組寄存器均可選作CPU的當(dāng)前工作寄存器組。 若程序中并不需要四組,那么其余可用作一般RAM單元。 CPU復(fù)位后,選中第0組工作寄存器。,工作寄存器組 選擇,位尋址區(qū) (20H2FH),字節(jié)地址 D7 D6 D5 D4 D3 D2 D1 D0 2FH 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H 2EH 77H 76H 75H 74H 73H 72H 7 1H 70H 20H 07H 06H 05H 04H 03H 02H 01H 00H,低128字節(jié)RAM單元地址范圍也是00H一7FH, 805l采用不同尋址方式來(lái)加以區(qū)分, 即訪問(wèn)128個(gè)位地址用位尋址方式, 訪問(wèn)低128字節(jié)單元用直接尋址和間接尋址,這樣就可以區(qū)分開(kāi)00H一7FH是位地址還是字節(jié)地址。 這些可尋址位,通過(guò)執(zhí)行指令可直接對(duì)某一位操作,如置1、清0或判l(wèi)、判0等,可用作軟件標(biāo)志位或用于位(布爾)處理。 這種位尋址能力是8051的一個(gè)重要特點(diǎn)。,真正的RAM區(qū),地址范圍:30H7FH 真正用作RAM:非常靈活 應(yīng)合理安排;如:堆棧區(qū),顯示區(qū) 單片機(jī)軟件水平的高低 與RAM區(qū)的應(yīng)用有很大關(guān)系,2. 高128字節(jié)RAM一特殊功能寄存器(SFR),8051片內(nèi)高128字節(jié)RAM中,除程序計(jì)數(shù)器PC外,有21個(gè)專用寄存器(SFR),也稱特殊功能寄存器, 它們離散地分布在80HFFH的RAM空間中。 訪問(wèn)特殊功能僅允許使用直接尋址方式。 在21個(gè)特殊功能寄存器SFR中,有11個(gè)特殊功能寄存器具有位尋址能力,它們的字節(jié)地址正好能被8整除,,下面介紹部分特殊功能寄存器(SFR),其余將在后續(xù)的章節(jié)中講述。 累加器ACC(E0H) 累加器ACC是8051最常用、最繁忙的8位特殊功能寄存器,許多指令的操作數(shù)取自于ACC,許多運(yùn)算結(jié)果也存放于ACC中。在指令系統(tǒng)中采用A作為累加器ACC的助記符。 寄存器B(FOH) 在乘、除指令中,用到了8位B寄存器。乘法指令的兩個(gè)操作數(shù)分別取自A和B,乘積存于B、A兩個(gè)8位寄存器中。除法指令中,A中存放被除數(shù),B中放除數(shù),商存放于A中,B中存放余數(shù)。 在其它指令中,B可作為一般通用寄存器或一個(gè)RAM單元使用。,程序狀態(tài)寄存器PSW(D0H) PSW是一個(gè)8位特殊功能寄存器,它的各位包含了程序執(zhí)行后的狀態(tài)信息,供程序查詢或判別之用。各位的含義及其格式如下:,CY(PSW7) 進(jìn)位標(biāo)志位。在執(zhí)行加法(或減法)運(yùn)算指令時(shí),如果運(yùn)算結(jié)果最高位(位7)向前有進(jìn)位(或借位),CY位由硬件自動(dòng)置“1”;如運(yùn)算結(jié)果最高位(位7)無(wú)進(jìn)位(或借位),則CY清“0”。CY也是8051在進(jìn)行位操作(布爾操作)時(shí)的位累加器。 AC(PSW6) 半進(jìn)位標(biāo)志位,也稱輔助進(jìn)位標(biāo)志。當(dāng)執(zhí)行加法(或減法)操作時(shí),其運(yùn)算結(jié)果(和或差)產(chǎn)生由低半字節(jié)(位3)向高半字節(jié)有半進(jìn)位(或借位)時(shí),AC位將被硬件自動(dòng)置“1”,否則AC被自動(dòng)情“0”。 F0(PSW5) 用戶標(biāo)志位。用戶可以根據(jù)自己的需要對(duì)F0位賦予一定的含義,由用戶置拉、復(fù)位,作為軟件標(biāo)志。 RSO和RSl(PSW4和PSW5) 工作寄存器組選擇控 制位。,OV(PSW2) 溢出標(biāo)志位。當(dāng)進(jìn)行補(bǔ)碼運(yùn)算時(shí),如有溢出,即當(dāng)運(yùn)算結(jié)果超出+127128的范圍時(shí),OV位由硬件自動(dòng)置OV1;無(wú)溢出時(shí),OV0。 PSW1為保留位,805l末用,8052為Fl用戶標(biāo)志位。 P(PSWo) 奇偶檢驗(yàn)標(biāo)志位。每條指令執(zhí)行完后,該位始終跟蹤指示累加器A中“l(fā)”的個(gè)數(shù):如結(jié)果A中有奇數(shù)個(gè)“l(fā)”,則置P1,否則P0。常用于校驗(yàn)串行通訊中的數(shù)據(jù)傳送是否出錯(cuò)。,(4) 棧指針SP(81H),8051同一般微處理器一樣,設(shè)有堆棧。在片內(nèi)RAM中專門(mén)開(kāi)辟出來(lái)一個(gè)區(qū)域,數(shù)據(jù)的存取是以“后進(jìn)先出”的結(jié)構(gòu)方式處理的。這種數(shù)據(jù)結(jié)構(gòu)方式對(duì)于處理中斷、調(diào)用子程序都非常方便。 堆棧指針SP為8位特殊功能寄存器,SP的內(nèi)容即堆棧指針可指向8051片內(nèi)00H7FH RAM的任何單元。 實(shí)際堆棧區(qū)只能在30H7FH之間 系統(tǒng)復(fù)位后,SP初始化為07H,即指向07H的RAM單元。,8051的堆棧結(jié)構(gòu)屬于向上生長(zhǎng)型的堆棧。 在使用堆棧之前,先給SP賦值,以規(guī)定堆棧的起始位置,稱為棧底。 當(dāng)數(shù)據(jù)壓入堆棧后,SP自動(dòng)加1,即RAM地址單元加1以指出當(dāng)前棧頂位置。,(5) 數(shù)據(jù)指針DPTR(83H,82H),DPTR是一個(gè)16位的特殊功能寄存器,其高位字節(jié)寄存器用DPH表示(地址83H),低位字節(jié)寄存器用DPL表示(地址82H)。 DPTR既可以作為一個(gè)16位寄存器來(lái)處理

溫馨提示

  • 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)論