《存儲(chǔ)器堆?!稰PT課件.ppt_第1頁(yè)
《存儲(chǔ)器堆棧》PPT課件.ppt_第2頁(yè)
《存儲(chǔ)器堆?!稰PT課件.ppt_第3頁(yè)
《存儲(chǔ)器堆棧》PPT課件.ppt_第4頁(yè)
《存儲(chǔ)器堆?!稰PT課件.ppt_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

VIP免費(fèi)下載

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

文檔簡(jiǎn)介

1,存儲(chǔ)器、堆棧、SFR,2,數(shù)據(jù)存儲(chǔ)器RAM(Random Access Memory) 程序存儲(chǔ)器ROM(Read Only Memory) 閃速存儲(chǔ)器Flash Memory EPROM(UV)Erazible Programmable ROM EEPROM/E2PROMElectrical Erasable Programmable ROM 靜態(tài)存儲(chǔ)器 SRAMStatic RAM (動(dòng)態(tài)存儲(chǔ)器 DRAMDynamic RAM) 按字節(jié)尋址:每個(gè)字節(jié)(8個(gè)位)占一個(gè)地址 按位尋址:有的存儲(chǔ)器每一個(gè)位就有一個(gè)地址,單片機(jī)的存儲(chǔ)器幾個(gè)有關(guān)的概念:,3,8051的存儲(chǔ)器組織,8051存儲(chǔ)器可以分成兩大類(lèi):, RAM,CPU在運(yùn)行時(shí)能隨時(shí)進(jìn)行數(shù)據(jù)的寫(xiě)入和讀出,但在關(guān)閉電源時(shí),其所存儲(chǔ)的信息將丟失。它用來(lái)存放暫時(shí)性的輸入輸出數(shù)據(jù)、運(yùn)算的中間結(jié)果或用作堆棧。, ROM是一種寫(xiě)入信息后不易改寫(xiě)的存儲(chǔ)器。斷電后,ROM中的信息保留不變。用來(lái)存放固定的程序或數(shù)據(jù),如系統(tǒng)監(jiān)控程序、常數(shù)表格等。,4,2.1.1普林斯頓結(jié)構(gòu),一般微機(jī)通常只有一個(gè)邏輯空間,可以隨意安排ROM或RAM。訪(fǎng)問(wèn)存儲(chǔ)器時(shí),同一地址對(duì)應(yīng)唯一的存儲(chǔ)單元,可以是ROM也可以是 RAM,并用同類(lèi)訪(fǎng)問(wèn)指令。這種結(jié)構(gòu)稱(chēng)為普林斯頓結(jié)構(gòu)。,5,2.1.2 哈佛結(jié)構(gòu), 8051單片機(jī)與一般微機(jī)的存儲(chǔ)器配置方式很不相同。 51單片機(jī)的存儲(chǔ)器在物理結(jié)構(gòu)上分為程序存儲(chǔ)空間和數(shù)據(jù)存儲(chǔ)空間,共有四個(gè):片內(nèi)和片外程序存儲(chǔ)空間以及片內(nèi)和片外數(shù)據(jù)存儲(chǔ)空間,這種在物理結(jié)構(gòu)上把程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi)的結(jié)構(gòu)形式稱(chēng)為哈佛結(jié)構(gòu)。,6,7,89C51單片機(jī)存儲(chǔ)器配置,片內(nèi)RAM 128字節(jié)(00H7FH); 片內(nèi)RAM前32個(gè)單元是工作寄存器區(qū)(00H1FH) 片內(nèi)RAM有128個(gè)可按位尋址的位,占16個(gè)單元。 位地址編號(hào)為:00H7FH,分布在20H2FH單元 片內(nèi)21個(gè)特殊功能寄存器(SFR)中:地址號(hào)能被 8整除的 SFR中的各位也可按位尋址(P.33-34) 可尋址片外RAM 64K字節(jié) (0000HFFFFH) 可尋址片外ROM 64K字節(jié) (0000HFFFFH) 片內(nèi) Flash ROM 4K字節(jié) (000HFFFH),8, 8051在邏輯上,即從用戶(hù)角度上8051有三個(gè)存儲(chǔ)空間: 片內(nèi)外統(tǒng)一編址的程序存儲(chǔ)器 片內(nèi)外不統(tǒng)一編址的數(shù)據(jù)存儲(chǔ)器 特殊功能寄存器(片內(nèi)),訪(fǎng)問(wèn)這幾個(gè)不同的邏輯空間時(shí),采用的指令: 片內(nèi)外程序存儲(chǔ)器空間-MOVC 片內(nèi)數(shù)據(jù)存儲(chǔ)器空間和SFR-MOV 片外數(shù)據(jù)存儲(chǔ)器地址空間-MOVX,9,52對(duì)應(yīng)的RAM有384Byte,其中多出的128Byte只能進(jìn)行間接尋址用 而C51是通過(guò)對(duì)自定義的數(shù)據(jù)類(lèi)型來(lái)區(qū)分訪(fǎng)問(wèn)的存儲(chǔ)空間的: 片內(nèi)外程序存儲(chǔ)器空間-code 片內(nèi)數(shù)據(jù)存儲(chǔ)器空間和SFR-data 片外數(shù)據(jù)存儲(chǔ)器地址空間-xdata 片內(nèi)間接尋址區(qū)間-idata,10,存儲(chǔ)器配置(片內(nèi)RAM),片內(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個(gè)位可位尋址,80H,FFH,所有的RAM區(qū)(包括位尋址區(qū)、工作寄存器區(qū))都可以用于存放數(shù)據(jù),故也稱(chēng)為數(shù)據(jù)緩存寄存器,89C51 128字節(jié),11,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),片內(nèi)RAM前32個(gè)單元是工作寄存器區(qū) (00H1FH),存儲(chǔ)器配置(片內(nèi)RAM),12,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),片內(nèi)RAM中有128個(gè)可按位尋址的位。 位地址:00H7FH 分布在:20H2FH單元,存儲(chǔ)器配置(片內(nèi)RAM),13,這些可位尋址的空間,可通過(guò)執(zhí)行指令直接對(duì)某一位進(jìn)行操作,如置1、清0或判1、判0等,可用作軟件標(biāo)志位或用于位(布爾)處理。這是一般微機(jī)所不具備的,這種位尋址能力是8051所獨(dú)有的。 20H2FH:既可以字節(jié)操作,又可以位操作,但是要用不同的指令來(lái)區(qū)分; mov 20h,a setb 00h setb 20.0,14,存儲(chǔ)器配置(片內(nèi)RAM),89C51片內(nèi)RAM 128字節(jié)(00H7FH) 89C52片內(nèi)RAM 256字節(jié)(00H0FFH),00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),SFR分布在80H-FFH 其中92個(gè)位可位尋址,80H,FFH,89C51 128字節(jié),89C52 256字節(jié),只能直接尋址,只能寄存器間接尋址(P14),既可間接尋址,又可直接尋址,15,程序存儲(chǔ)器,外部 ROM,內(nèi)部 ROM (EA=1),外部 ROM (EA=0),0000H,0000H,0FFFH,0FFFH,1000H,FFFFH,16,在程序存儲(chǔ)器中,有6個(gè)單元具有特殊功能,0003H:外部中斷0入口。 000BH:定時(shí)器0溢出中斷入口。 0013H:外部中斷1入口。 001BH:定時(shí)器1溢出中斷入口。 0023H:串行口中斷入口。 52還有002BH對(duì)應(yīng)T2中斷。 使用時(shí),通常在這些入口地址處存放一條絕對(duì)跳轉(zhuǎn)指令,使程序跳轉(zhuǎn)到用戶(hù)安排的中斷程序起始地址,或者從0000H起始地址跳轉(zhuǎn)到用戶(hù)設(shè)計(jì)的初始程序上。,0000H: 8051復(fù)位后,PC0000H,即程序從0000H 開(kāi)始執(zhí)行指令。,17,org 0000h jmp main (跳過(guò)中斷入口地址區(qū)) org 0100h main: mov p1,#55h mov r0,#3fh Loop: djnz r0,loop cpl a mov p1,a jmp main end,18,可尋址片外RAM 64K字節(jié) (0000HFFFFH); 可尋址片外ROM 64K字節(jié) (0000HFFFFH); 片內(nèi) Flash ROM 4K字節(jié) (0000H FFFH);,FFFFH,0000H,可尋址片外RAM,64K字節(jié),FFFFH,0000H,可尋址片外ROM,64K字節(jié),FFFH,000H,可尋址片內(nèi) Flash ROM,4K 字節(jié),89C51,7FH,00H,片內(nèi) RAM,128字節(jié),FFH,80H,存儲(chǔ)器配置(片內(nèi)RAM),19,堆棧: 在片內(nèi)RAM中,常常要指定一個(gè)專(zhuān)門(mén)的區(qū)域來(lái)存放某些特別的數(shù)據(jù),它遵循先進(jìn)后出和后進(jìn)先出(LIFO/FILO)的原則,這個(gè)RAM區(qū)叫堆棧。,功用: 1)子程序調(diào)用和中斷服務(wù)時(shí)CPU自動(dòng)將當(dāng)前PC 值壓棧保存,返回時(shí)自動(dòng)將PC值彈棧。 2)保護(hù)現(xiàn)場(chǎng)/恢復(fù)現(xiàn)場(chǎng) 3)數(shù)據(jù)傳輸,20,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),SP棧頂,下一個(gè)進(jìn)棧的數(shù)據(jù)將存在此,數(shù)據(jù)進(jìn)棧,已經(jīng)進(jìn)棧的數(shù)據(jù)存放在此,初始 SP,復(fù)位后 SP=07H,數(shù)據(jù)進(jìn)棧時(shí):首先SP+1指向08H單元,第一個(gè)放進(jìn)堆棧的數(shù)據(jù)將放進(jìn)08H單元,然后SP再自動(dòng)增 1,仍指著棧頂,堆棧區(qū)由特殊功能寄存器堆棧指針SP管理 堆棧區(qū)可以安排在 RAM區(qū)任意位置,一般不安排在工作寄存器區(qū)和可按位尋址的RAM區(qū),通常放在RAM區(qū)的靠后的位置。,21,從堆棧取出數(shù)據(jù)時(shí):取出的數(shù)據(jù)是最近放進(jìn)去的一個(gè)數(shù)據(jù),也就是當(dāng)前棧頂?shù)臄?shù)據(jù)。然后SP再自動(dòng)減1,仍指著棧頂,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),SP棧頂,當(dāng)前要出棧的數(shù)據(jù),數(shù)據(jù)出棧,SP-1指向下一個(gè)將要出棧的數(shù)據(jù),初始 SP,堆棧區(qū)由特殊功能寄存器堆棧指針SP管理 堆棧區(qū)可以安排在 RAM區(qū)任意位置,一般不安排在工作寄存器區(qū)和可按位尋址的RAM區(qū),通常放在RAM區(qū)的靠后的位置。,22,從堆棧取出數(shù)據(jù)時(shí):取出的數(shù)據(jù)是最近放進(jìn)去的一個(gè)數(shù)據(jù),也就是當(dāng)前棧頂?shù)臄?shù)據(jù)。然后SP再自動(dòng)減1,仍指著棧頂,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),SP-1 指向新的棧頂,也就是下一個(gè)將要出棧的數(shù)據(jù),數(shù)據(jù)出棧,初始 SP,堆棧區(qū)由特殊功能寄存器堆棧指針SP管理 堆棧區(qū)可以安排在 RAM區(qū)任意位置,一般不安排在工作寄存器區(qū)和可按位尋址的RAM區(qū),通常放在RAM區(qū)的靠后的位置。,23,在實(shí)際應(yīng)用中,常需在RAM區(qū)設(shè)置堆棧。80C51的堆棧一般設(shè)在30H7FH的范圍內(nèi)。棧頂?shù)奈恢糜蒘P寄存器指示。復(fù)位時(shí)SP的初值為07H,在系統(tǒng)初始化時(shí)可以重新設(shè)置。,24,push a push b push PSW . pop a pop b pop PSW 這樣的指令順序?qū)Σ粚?duì)?,25,89C51特殊功能寄存器(SFR),特殊功能寄存器SFR(專(zhuān)用寄存器) 專(zhuān)用于控制、選擇、管理、存放單片機(jī)內(nèi)部各部分的工作方式、條件、狀態(tài)、結(jié)果的寄存器。,不同的SFR管理不同的硬件模塊,負(fù)責(zé)不同的功能各司其職 換言之:要讓單片機(jī)實(shí)現(xiàn)預(yù)定的功能,必須有相應(yīng)的硬件和軟件,而軟件中最重要的一項(xiàng)工作就是對(duì)SFR寫(xiě)命令(要求)。,26,27,28,P0、P1、P2、P3: 四個(gè)并行輸入/輸出口的寄存器。它里面的內(nèi)容對(duì)應(yīng)著管腳的輸出。 SCON (Serial Control Register) SBUF (Serial Date Buffer) PCON (Power Control Register),與端口相關(guān)的(7個(gè)),與定時(shí)/計(jì)數(shù)器相關(guān)的(6個(gè)),TMOD (Timer/Counter Mode Register) 定時(shí)器工作模式寄存器。 TCON (Timer/Counter Control Register) 定時(shí)器控制寄存器。 TH0、TL0 、TH1、TL1:分別是T0、T1的記數(shù)初值寄存器。,29,IP (Interrupt Priority Register) IE (Interrupt Enable Register),與中斷相關(guān)的(2個(gè)),30,程序計(jì)數(shù)器PC(Program Counter) PC 不是一個(gè)特殊功能寄存器SFR,但其作 用又十分重要和特殊!,特點(diǎn): 它是16位的按機(jī)器周期自動(dòng)增1計(jì)數(shù)器,一切分支/跳轉(zhuǎn)/調(diào)用/中斷/復(fù)位 等操作的本質(zhì)就是:改變 PC 值,總指向下一條指令所在首地址(當(dāng)前PC值),特殊功能寄存器(PC),31,DPTR (Data Pointer)(分成DPH、DPL兩個(gè)): 數(shù)據(jù)指針可以用它來(lái)訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器中的任一單元,也可以作為通用寄存器來(lái)用,由我們自已決定如何使用。,32,數(shù)據(jù)指針寄存器DPTR 數(shù)據(jù)指針DPTR是一個(gè) 16 位的專(zhuān)用寄存器, 其高位字節(jié)寄存器用DPH表示,低位字節(jié)寄存器用DPL表示。既可作為一個(gè) 16 位寄存器DPTR來(lái)處理, 也可作為兩個(gè)獨(dú)立的 8 位寄存器DPH和DPL來(lái)處理。 DPTR 主要用來(lái)存放 16 位地址, 當(dāng)對(duì) 64 KB外部數(shù)據(jù)存儲(chǔ)器空間尋址時(shí), 作為間址寄存器用。在訪(fǎng)問(wèn)程序存儲(chǔ)器時(shí), 用作基址寄存器。 mov a,a+dptr,33,89C51有21個(gè)SFR(89C52有26個(gè)) P.3334 已知的P0、P1、P2、P3等四個(gè)8位I/O口分別由名為P0、P1、P2、P3四個(gè)SFR代表。,堆棧指針寄存器 SP(Stack Pointer): 總是指向棧頂,壓棧時(shí)先 (SP)+1 然后數(shù)據(jù)進(jìn)棧;彈棧時(shí)數(shù)據(jù)先出棧 然后(SP)-1。,累加器 ACC:一個(gè)被眾多指令用得最頻繁的特殊功能寄存器(如:運(yùn)算、數(shù)據(jù)傳輸)。,副累加器 B:一個(gè)經(jīng)常與 ACC 配合在一起使用的特殊功能寄存器(如:乘法、除法),此外,它也經(jīng)常當(dāng)作普通寄存器使用。,特殊功能寄存器(P0P3,SP,A,B),34,程序狀態(tài)字寄存器 PSW:,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,CY(PSW.7)進(jìn)位/借位標(biāo)志位。若ACC在運(yùn)算過(guò)程中發(fā)生了進(jìn)位或借位,則CY=1;否則=0。它也是布爾處理器的位累加器,可用于布爾操作。,AC(PSW.6)半進(jìn)位/借位標(biāo)志位。若ACC在運(yùn)算過(guò)程中,D3位向D4位發(fā)生了進(jìn)位或借位,則CY=1,否則=0。機(jī)器在執(zhí)行“DA A”指令時(shí)自動(dòng)要判斷這一位,我們可以暫時(shí)不關(guān)心它。,F0 (PSW.5)可由用戶(hù)定義的標(biāo)志位。,PSW.6,PSW.5,特殊功能寄存器(PSW),35,程序狀態(tài)字寄存器 PSW:,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,PSW.6,PSW.5,特殊功能寄存器(PSW),例:78H+97H 0111 1000 +1001 0111 1 0000 1111,有進(jìn)位 CY=1,沒(méi)有半進(jìn)位AC=0,36,程序狀態(tài)字寄存器 PSW(續(xù)):,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,RS1(PSW.4)、RS0(PSW.3)工作寄存器組選擇位。,RS1,RS0 = 0 1 則選擇了工作寄存器組 1 區(qū)R0R7分別代表08H 0FH單元。,RS1,RS0 = 1 0 則選擇了工作寄存器組 2 區(qū) R0R7分別代表10H 17H單元。,RS1,RS0 = 1 1 則選擇了工作寄存器組 3 區(qū)R0R7分別代表18H 1FH單元。,PSW.4 PSW.3,RS1,RS0 = 0 0 則選擇了工作寄存器組 0 區(qū)R0R7分別代表08H 0FH單元。,37,片內(nèi)RAM前32個(gè)單元(00H1FH)是工作寄存器區(qū) (由PSW中的RS1,RS0決定),00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),R0,R2,R1,R3,R4,R5,R6,R7,07H,02H,01H,00H,06H,04H,05H,03H,08H,1FH,工作寄存器區(qū)3,工作寄存器區(qū)2,工作寄存器區(qū)1,工作寄存器區(qū)0,38,程序狀態(tài)字寄存器 PSW(續(xù)):,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,OV (PSW.2)溢出標(biāo)志位。 OV=1時(shí)特指累加器在進(jìn)行帶符號(hào)數(shù)(-128+127)運(yùn)算時(shí)出錯(cuò)(超出范圍);OV=0時(shí)未出錯(cuò)。,PSW.1 未定義。,P (PSW.0)奇偶標(biāo)志位。 P=1表示累加器中“1”的個(gè)數(shù)為奇數(shù) P=0表示累加器中“1”的個(gè)數(shù)為偶數(shù) CPU隨時(shí)監(jiān)視著ACC中的“1”的個(gè)數(shù),并反映在PSW中,PSW.2,PSW.1,例:某運(yùn)算結(jié)果是78H(01111000),P=0。 它常用在校驗(yàn)串行通信

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論