特殊功能寄存器課件_第1頁
特殊功能寄存器課件_第2頁
特殊功能寄存器課件_第3頁
特殊功能寄存器課件_第4頁
特殊功能寄存器課件_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

存儲(chǔ)器、堆棧、SFR1數(shù)據(jù)存儲(chǔ)器——RAM(RandomAccessMemory)程序存儲(chǔ)器——ROM(ReadOnlyMemory)閃速存儲(chǔ)器——FlashMemoryEPROM——(UV)ErazibleProgrammableROMEEPROM/E2PROM——ElectricalErasableProgrammableROM靜態(tài)存儲(chǔ)器

SRAM——StaticRAM

(動(dòng)態(tài)存儲(chǔ)器

DRAM——DynamicRAM)按字節(jié)尋址:每個(gè)字節(jié)(8個(gè)位)占一個(gè)地址按位尋址:有的存儲(chǔ)器每一個(gè)位就有一個(gè)地址單片機(jī)的存儲(chǔ)器——幾個(gè)有關(guān)的概念:2 8051的存儲(chǔ)器組織8051存儲(chǔ)器可以分成兩大類:﹡RAM,CPU在運(yùn)行時(shí)能隨時(shí)進(jìn)行數(shù)據(jù)的寫入和讀出,但在關(guān)閉電源時(shí),其所存儲(chǔ)的信息將丟失。它用來存放暫時(shí)性的輸入輸出數(shù)據(jù)、運(yùn)算的中間結(jié)果或用作堆棧。﹡ROM是一種寫入信息后不易改寫的存儲(chǔ)器。斷電后,ROM中的信息保留不變。用來存放固定的程序或數(shù)據(jù),如系統(tǒng)監(jiān)控程序、常數(shù)表格等。

32.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ǔ)器分開的結(jié)構(gòu)形式稱為哈佛結(jié)構(gòu)。5689C51單片機(jī)存儲(chǔ)器配置片內(nèi)RAM128字節(jié)(00H—7FH);片內(nèi)RAM前32個(gè)單元是工作寄存器區(qū)(00H—1FH)片內(nèi)RAM有128個(gè)可按位尋址的位,占16個(gè)單元。位地址編號(hào)為:00H—7FH,分布在20H—2FH單元片內(nèi)21個(gè)特殊功能寄存器(SFR)中:地址號(hào)能被8整除的SFR中的各位也可按位尋址(P.33-34)可尋址片外RAM64K字節(jié)(0000H—FFFFH)可尋址片外ROM64K字節(jié)(0000H—FFFFH)片內(nèi)FlashROM4K字節(jié)(000H—FFFH)7?52對(duì)應(yīng)的RAM有384Byte,其中多出的128Byte只能進(jìn)行間接尋址用@?而C51是通過對(duì)自定義的數(shù)據(jù)類型來區(qū)分訪問的存儲(chǔ)空間的:片內(nèi)外程序存儲(chǔ)器空間----code片內(nèi)數(shù)據(jù)存儲(chǔ)器空間和SFR----data片外數(shù)據(jù)存儲(chǔ)器地址空間----xdata片內(nèi)間接尋址區(qū)間-------idata9存儲(chǔ)器配置(片內(nèi)RAM)片內(nèi)RAM

128字節(jié)(00H—7FH)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)SFR分布在80H-FFH其中92個(gè)位可位尋址80HFFH所有的RAM區(qū)(包括位尋址區(qū)、工作寄存器區(qū))都可以用于存放數(shù)據(jù),故也稱為數(shù)據(jù)緩存寄存器89C51128字節(jié)1000H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)R0R2R1R3R4R5R6R707H02H01H00H06H04H05H03H08H1FH工作寄存器區(qū)3工作寄存器區(qū)2工作寄存器區(qū)1工作寄存器區(qū)00FH10H17H18H片內(nèi)RAM前32個(gè)單元是工作寄存器區(qū)(00H—1FH)存儲(chǔ)器配置(片內(nèi)RAM)11這些可位尋址的空間,可通過執(zhí)行指令直接對(duì)某一位進(jìn)行操作,如置1、清0或判1、判0等,可用作軟件標(biāo)志位或用于位(布爾)處理。這是一般微機(jī)所不具備的,這種位尋址能力是8051所獨(dú)有的。20H~2FH:既可以字節(jié)操作,又可以位操作,但是要用不同的指令來區(qū)分; mov20h,a setb00h setb20.013存儲(chǔ)器配置(片內(nèi)RAM)89C51片內(nèi)RAM

128字節(jié)(00H—7FH)89C52片內(nèi)RAM

256字節(jié)(00H—0FFH)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)SFR分布在80H-FFH其中92個(gè)位可位尋址80HFFH89C51128字節(jié)89C52256字節(jié)只能直接尋址只能寄存器間接尋址(P14)既可間接尋址,又可直接尋址14程序存儲(chǔ)器外部ROM內(nèi)部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH15 org 0000h jmp main (跳過中斷入口地址區(qū)) org 0100hmain: mov p1,#55h mov r0,#3fhLoop: djnz r0,loop cpl a mov p1,a jmp main end17可尋址片外RAM64K字節(jié)

(0000H—FFFFH);可尋址片外ROM64K字節(jié)

(0000H—FFFFH);片內(nèi)FlashROM4K字節(jié)

(0000H—FFFH);FFFFH0000H可尋址片外RAM64K字節(jié)FFFFH0000H可尋址片外ROM64K字節(jié)FFFH000H可尋址片內(nèi)FlashROM4K字節(jié)89C517FH00H片內(nèi)RAM128字節(jié)FFH80H存儲(chǔ)器配置(片內(nèi)RAM)18堆棧:

在片內(nèi)RAM中,常常要指定一個(gè)專門的區(qū)域來存放某些特別的數(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)場/恢復(fù)現(xiàn)場3)數(shù)據(jù)傳輸19從堆棧取出數(shù)據(jù)時(shí):取出的數(shù)據(jù)是最近放進(jìn)去的一個(gè)數(shù)據(jù),也就是當(dāng)前棧頂?shù)臄?shù)據(jù)。然后SP再自動(dòng)減1,仍指著棧頂……00H20H2FH7FH1FH30H80HFFH52子系列才有的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ū)的靠后的位置。21從堆棧取出數(shù)據(jù)時(shí):取出的數(shù)據(jù)是最近放進(jìn)去的一個(gè)數(shù)據(jù),也就是當(dāng)前棧頂?shù)臄?shù)據(jù)。然后SP再自動(dòng)減1,仍指著棧頂……00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)SP-1指向新的棧頂,也就是下一個(gè)將要出棧的數(shù)據(jù)數(shù)據(jù)出棧初始SP堆棧區(qū)由特殊功能寄存器堆棧指針SP管理

堆棧區(qū)可以安排在RAM區(qū)任意位置,一般不安排在工作寄存器區(qū)和可按位尋址的RAM區(qū),通常放在RAM區(qū)的靠后的位置。22在實(shí)際應(yīng)用中,常需在RAM區(qū)設(shè)置堆棧。80C51的堆棧一般設(shè)在30H~7FH的范圍內(nèi)。棧頂?shù)奈恢糜蒘P寄存器指示。復(fù)位時(shí)SP的初值為07H,在系統(tǒng)初始化時(shí)可以重新設(shè)置。2389C51特殊功能寄存器(SFR)▼特殊功能寄存器SFR(專用寄存器)專用于控制、選擇、管理、存放單片機(jī)內(nèi)部各部分的工作方式、條件、狀態(tài)、結(jié)果的寄存器。▼不同的SFR管理不同的硬件模塊,負(fù)責(zé)不同的功能——各司其職換言之:要讓單片機(jī)實(shí)現(xiàn)預(yù)定的功能,必須有相應(yīng)的硬件和軟件,而軟件中最重要的一項(xiàng)工作就是對(duì)SFR寫命令(要求)。252627IP(InterruptPriority

Register)IE(InterruptEnable

Register)

與中斷相關(guān)的(2個(gè))29程序計(jì)數(shù)器PC(ProgramCounter)PC

不是一個(gè)特殊功能寄存器SFR,但其作用又十分重要和特殊!!!特點(diǎn):▼它是16位的按機(jī)器周期自動(dòng)增1計(jì)數(shù)器▼一切分支/跳轉(zhuǎn)/調(diào)用/中斷/復(fù)位等操作的本質(zhì)就是:改變PC值▼總指向下一條指令所在首地址(當(dāng)前PC值)特殊功能寄存器(PC)30

DPTR(DataPointer)(分成DPH、DPL兩個(gè)):

數(shù)據(jù)指針可以用它來訪問外部數(shù)據(jù)存儲(chǔ)器中的任一單元,也可以作為通用寄存器來用,由我們自已決定如何使用。31數(shù)據(jù)指針寄存器DPTR數(shù)據(jù)指針DPTR是一個(gè)16位的專用寄存器,其高位字節(jié)寄存器用DPH表示,低位字節(jié)寄存器用DPL表示。既可作為一個(gè)16位寄存器DPTR來處理,也可作為兩個(gè)獨(dú)立的8位寄存器DPH和DPL來處理。DPTR主要用來存放16位地址,當(dāng)對(duì)64KB外部數(shù)據(jù)存儲(chǔ)器空間尋址時(shí),作為間址寄存器用。在訪問程序存儲(chǔ)器時(shí),用作基址寄存器。mova,@a+dptr3289C51有21個(gè)SFR(89C52有26個(gè))P.33~34已知的P0、P1、P2、P3等四個(gè)8位I/O口分別由名為P0、P1、P2、P3四個(gè)SFR代表。堆棧指針寄存器SP(StackPointer):總是指向棧頂,壓棧時(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)作普通寄存器使用。特殊功能寄存器(P0—P3,SP,A,B)33程序狀態(tài)字寄存器

PSW:CYACF0RS0OVPRS1PSW.7PSW.0▼CY(PSW.7)進(jìn)位/借位標(biāo)志位。若ACC在運(yùn)算過程中發(fā)生了進(jìn)位或借位,則CY=1;否則=0。它也是布爾處理器的位累加器,可用于布爾操作。▼AC(PSW.6)半進(jìn)位/借位標(biāo)志位。若ACC在運(yùn)算過程中,D3位向D4位發(fā)生了進(jìn)位或借位,則CY=1,否則=0。機(jī)器在執(zhí)行“DAA”指令時(shí)自動(dòng)要判斷這一位,我們可以暫時(shí)不關(guān)心它。▼F0(PSW.5)可由用戶定義的標(biāo)志位。PSW.6PSW.5特殊功能寄存器(PSW)34程序狀態(tài)字寄存器

PSW:CYACF0RS0OVPRS1PSW.7PSW.0PSW.6PSW.5特殊功能寄存器(PSW)例:78H+97H01111000+10010111100001111

有進(jìn)位CY=1沒有半進(jìn)位AC=035程序狀態(tài)字寄存器

PSW(續(xù)):CYACF0RS0OVPRS1PSW.7PSW.0▼RS1(PSW.4)、RS0(PSW.3)工作寄存器組選擇位。RS1,RS0=01則選擇了工作寄存器組1區(qū)R0~R7分別代表08H~0FH單元。RS1,RS0=10則選擇了工作寄存器組2區(qū)R0~R7分別代表10H~17H單元。RS1,RS0=11則選擇了工作寄存器組3區(qū)R0~R7分別代表18H~1FH單元。PSW.4PSW.3RS1,RS0=00則選擇了工作寄存器組0區(qū)R0~R7分別代表08H~0FH單元。36片內(nèi)RAM前32個(gè)單元(00H—1FH)是工作寄存器區(qū)

(由PSW中的RS1,RS0決定)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)R0R2R1R3R4R5R6R707H02H01H00H06H04H05H03H08H1FH工作寄存器區(qū)3工作寄存器區(qū)2工作寄存器區(qū)1工作寄存器區(qū)037程序狀態(tài)字寄存器

PSW(續(xù)):CYACF0RS0OVPRS1PSW.7PSW.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.2PSW.1例:某運(yùn)算結(jié)果是78H(01111000),P=0。 它常用在校驗(yàn)串行通信中的數(shù)據(jù)是否出錯(cuò)。3889C51單片機(jī)存儲(chǔ)器配置片內(nèi)RAM128字節(jié)(00H—7FH);片內(nèi)RAM前32個(gè)單元是工作寄存器區(qū)(00H—1FH)片內(nèi)RAM有128個(gè)可按位尋址的位,占16個(gè)單元。位地址編號(hào)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論