02-存儲(chǔ)器組織課件_第1頁
02-存儲(chǔ)器組織課件_第2頁
02-存儲(chǔ)器組織課件_第3頁
02-存儲(chǔ)器組織課件_第4頁
02-存儲(chǔ)器組織課件_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第二章CIP-51微控制器(紅色部分)2.1C8051F120控制器內(nèi)核是CIP-51微控制器C8051F系列單片機(jī)的內(nèi)核是SiliconLabs的專利產(chǎn)品:CIP-51。它與MCS-51

指令集完全兼容,可以使用標(biāo)準(zhǔn)MCS-51

的匯編器和編譯器進(jìn)行軟件開發(fā)。CIP-51微控制器內(nèi)核除了具有標(biāo)準(zhǔn)MCS-51的組織結(jié)構(gòu)和外設(shè)以外,另有增加的定制外設(shè)和功能,大大增強(qiáng)了它的處理能力。性能:CIP-51采用流水線結(jié)構(gòu),與標(biāo)準(zhǔn)的8051結(jié)構(gòu)相比指令執(zhí)行速度有很大的提高。而對(duì)于CIP-51內(nèi)核,70%的指令的執(zhí)行時(shí)間為1或2個(gè)系統(tǒng)時(shí)鐘周期,沒有執(zhí)行時(shí)間超過8個(gè)系統(tǒng)時(shí)鐘周期的指令。CIP-51工作在最大系統(tǒng)時(shí)鐘頻率100MHz時(shí),它的峰值速度達(dá)到100MIPS。CIP-51共有111條匯編指令。下表列出了指令條數(shù)與執(zhí)行時(shí)所需的系統(tǒng)時(shí)鐘周期數(shù)的關(guān)系。本課程使用C語言編程,對(duì)匯編只是簡單介紹,感興趣的同學(xué)可參考手冊自學(xué)。C語言編程效率高,上手容易,移植容易;匯編語言執(zhí)行效率高,上手相對(duì)難,移植困難;對(duì)8051CPU內(nèi)部詳細(xì)結(jié)構(gòu)本課程不做詳細(xì)介紹,我們可以認(rèn)為它是一款CPU,可以執(zhí)行我們的C語言或匯編語言程序。(我們對(duì)80X86內(nèi)部結(jié)構(gòu)并不熟悉,但不妨礙我們使用它)CIP-51有兩個(gè)物理上獨(dú)立的存儲(chǔ)器空間:程序存儲(chǔ)器空間64K、外部數(shù)據(jù)存儲(chǔ)器/IO空間64K。另外在CIP51內(nèi)部還有內(nèi)部數(shù)據(jù)存儲(chǔ)器/特殊功能寄存器空間256字節(jié)(訪問最快)。8448=8182+256學(xué)單片機(jī)必須學(xué)好:存儲(chǔ)器組織、SFR、外設(shè)結(jié)構(gòu)2.2存儲(chǔ)器組織CIP-51的存儲(chǔ)器組織如圖11.2所示。注意:各空間地址范圍程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器共享同一個(gè)地址空間(和8086不同),其中:程序存儲(chǔ)器空間: 0000h-FFFFh;外部數(shù)據(jù)存儲(chǔ)器空間/IO空間: 0000h-FFFFh;內(nèi)部數(shù)據(jù)存儲(chǔ)器空間: 00h-7Fh(直接/間接尋址) 80h-FFh(只能間接尋址)特殊功能寄存器空間: 80h-FFh(只能直接尋址)2.2.1位尋址空間內(nèi)部數(shù)據(jù)存儲(chǔ)器字節(jié)地址0x20-0x2F這16個(gè)字節(jié)可以用字節(jié)地址進(jìn)行字節(jié)訪問。內(nèi)部數(shù)據(jù)存儲(chǔ)器字節(jié)地址0x20

到0x2F的16個(gè)字節(jié)共128個(gè)位,還可以作為128個(gè)獨(dú)立尋址位訪問。每個(gè)位有一個(gè)位地址,從0x00到0x7F。字節(jié)地址0x20的位0其位地址是0x00,字節(jié)地址0x20的位7其位地址是0x07。字節(jié)地址0x2F的位0其位地址是0x78,字節(jié)地址0x2F的位7其位地址是0x7F。2.2.2特殊功能寄存器從0x80到0xFF的直接尋址存儲(chǔ)器空間為特殊功能寄存器區(qū)(SFR)。特殊功能寄存器已預(yù)先定義好每個(gè)寄存器,每個(gè)位的含義,不能修改。SFR提供如下功能:對(duì)CIP-51資源和外設(shè)的控制反應(yīng)CIP-51資源和外設(shè)的狀態(tài)CIP-51與這些資源和外設(shè)之間的數(shù)據(jù)交換CIP-51具有標(biāo)準(zhǔn)8051中的全部SFR(21個(gè)),還增加了一些用于配置和訪問專有子系統(tǒng)的SFR。這樣就能保證與MCS-51指令集兼容的前提下增加新的功能。表11.0列出了MCS-51系統(tǒng)控制器中的全部SFR(21個(gè))。表11.1列出了C8051F020系統(tǒng)控制器中的全部SFR(121個(gè))。表11.2列出了C8051F120系統(tǒng)控制器中的全部SFR(多于128個(gè))。表11.0MCS-51系統(tǒng)控制器中的全部SFR表2-1特殊功能寄存器映像SFR分頁機(jī)制(類似于上下鋪):CIP-51實(shí)現(xiàn)了SFR分頁機(jī)制,允許器件將很多SFR映射到0x80~0xFF這個(gè)存儲(chǔ)器地址空間。SFR存儲(chǔ)器空間有256頁。0x80~0xFF的每個(gè)存儲(chǔ)器地址都可以訪問多達(dá)256頁。C8051F12x器件使用5個(gè)SFR頁:0、1、2、3和F。使用特殊功能寄存器頁選擇寄存器SFRPAGE來選擇SFR頁(見圖11.2)。讀和寫一個(gè)SFR的步驟如下:1.用SFRPAGE寄存器選擇相應(yīng)的SFR頁號(hào)。2.用直接尋址方式讀或?qū)懱厥夤δ芗拇嫫鳎∕OV指令)。位7-0:SFR頁:代表C8051MCU讀或修改SFR時(shí)所使用的SFR頁。寫:設(shè)置SFR頁。讀:C8051MCU正在使用的SFR頁。注意復(fù)位值注意地址,SFR頁每個(gè)SFR有一個(gè)名字和它的字節(jié)地址對(duì)應(yīng),可以用名字和字節(jié)地址兩種方式訪問。(在不同的頁可能會(huì)訪問到不同的SFR)字節(jié)地址以0x0或0x8結(jié)尾的SFR(例如P0、TCON、P1、SCON、IE等)既可以按字節(jié)尋址也可以按位尋址(位地址80H-FFH),所有其它SFR只能按字節(jié)尋址??梢晕粚ぶ返腟FR中,每個(gè)位都有一個(gè)位名字,可以按位地址或位名字另種方式訪問。(在不同的頁可能會(huì)訪問到不同的位)SFR空間中未使用的字節(jié)、未使用的位,保留為將來使用,訪問這些地址會(huì)產(chǎn)生不確定的結(jié)果,應(yīng)予避免。有關(guān)每個(gè)寄存器的詳細(xì)說明請參見手冊P121-P1252.2.3內(nèi)部數(shù)據(jù)存儲(chǔ)器CIP-51的數(shù)據(jù)存儲(chǔ)器空間中有256字節(jié)的內(nèi)部RAM,位于地址0x00到0xFF的地址空間。數(shù)據(jù)存儲(chǔ)器中的低128字節(jié)用于通用寄存器和臨時(shí)存儲(chǔ)器。可以用直接或間接尋址方式訪問這128字節(jié)。什么是直接尋址和間接尋址?直接尋址示例:MOVA,40H間接尋址示例:MOVR0,#40HMOVA,@R0注: 其中R0是一個(gè)寄存器 間接尋址可用R0,R1,和DPTR其中:從0x00到0x1F為4個(gè)通用寄存器區(qū),每個(gè)區(qū)有8個(gè)寄存器。接下來的16字節(jié),從地址0x20到0x2F,既可以按字節(jié)尋址又可以作為128個(gè)位地址用直接位尋址方式訪問。數(shù)據(jù)存儲(chǔ)器中的高128字節(jié)只能用間接尋址訪問。該存儲(chǔ)區(qū)與特殊功能寄存器(SFR)占據(jù)相同的地址空間,但物理上與SFR空間是分開的。2.2.3.1通用寄存器內(nèi)部數(shù)據(jù)存儲(chǔ)器的低32字節(jié),從地址0x00到0x1F,可以作為4個(gè)通用寄存器區(qū)訪問。每個(gè)區(qū)有8個(gè)寄存器,稱為R0-R7。在某一時(shí)刻只能選擇一個(gè)寄存器區(qū)。程序狀態(tài)字(PSW是一個(gè)SFR,字節(jié)地址D0h)中的RS0(PSW.3)和RS1(PSW.4)位用于選擇當(dāng)前的寄存器區(qū)(PSW后面說明)。目的:這允許在進(jìn)入子程序或中斷服務(wù)程序時(shí)進(jìn)行快速現(xiàn)場切換。注意:間接尋址方式使用R0和R1作為間址寄存器。2.2.3.2堆棧程序的堆??梢晕挥?56字節(jié)數(shù)據(jù)存儲(chǔ)器中的任何位置。堆棧區(qū)域用堆棧指針SP(SP是一個(gè)特殊功能寄存器字節(jié)地址0x81)指定。SP指向最后使用的位置。下一個(gè)壓入堆棧的數(shù)據(jù)將被存放在SP+1,然后SP加1。復(fù)位后堆棧指針被初始化為地址0x07,因此第一個(gè)被壓入堆棧的數(shù)據(jù)將被存放在地址0x08(R0-R7復(fù)位后默認(rèn)在0區(qū)),目的:躲過通用寄存器第一區(qū)。如果使用不止一個(gè)寄存器區(qū),SP應(yīng)被初始化為數(shù)據(jù)存儲(chǔ)器中不用于數(shù)據(jù)存儲(chǔ)的位置。堆棧深度最大可達(dá)256字節(jié)。編程習(xí)慣:初始化程序包括MOVSP,#30H2.2.4程序存儲(chǔ)器C8051F120有64K程序存儲(chǔ)器空間,在該空間集成了128KB

Flash

存儲(chǔ)器(用于存儲(chǔ)程序代碼或各種非易失性數(shù)據(jù))。另外還有兩個(gè)128B字節(jié)的FLASH頁,只能用來存儲(chǔ)非易失性數(shù)據(jù)。FLASH存儲(chǔ)器特性:一個(gè)FLASH位可以隨便從1清0。但是一旦被清0,必須經(jīng)過擦除才能再回到1狀態(tài)。因此在進(jìn)行重新編程之前,應(yīng)將數(shù)據(jù)字節(jié)擦除(置為0xFF)。寫和擦除操作由硬件自動(dòng)定時(shí),以保證操作正確。程序存儲(chǔ)器通常被認(rèn)為是只讀的,有兩種情況下讀程序存儲(chǔ)器:1.CPU根據(jù)PC從程序存儲(chǔ)器相應(yīng)的地址讀出下一條指令,然后譯碼執(zhí)行;2.執(zhí)行程序時(shí),遇到MOVC指令,執(zhí)行該條指令時(shí)將到程序存儲(chǔ)器某個(gè)地址獲得一個(gè)字節(jié)的數(shù)據(jù)。特殊情況下:MOVX 寫入 程序存儲(chǔ)器空間這一特性為CIP-51提供了更新程序代碼和將程序存儲(chǔ)器空間用于非易失性數(shù)據(jù)存儲(chǔ)的機(jī)制。128K程序存儲(chǔ)器組織成4個(gè)32KB的程序存儲(chǔ)塊。地址在0x0000到0x7FFF之間的32K字節(jié)為公共程序存儲(chǔ)塊(塊0)。其它3個(gè)高地址程序存儲(chǔ)塊(塊1、塊2和塊3)都映射到地址0x8000~0xFFFF,由PSBANK

寄存器中的塊選擇位選擇當(dāng)前存儲(chǔ)塊,見圖11.3。當(dāng)SFLE=0時(shí):指向128KBFLASH存儲(chǔ)器當(dāng)SFLE=0時(shí):指向128KBFLASH存儲(chǔ)器注意:復(fù)位值注意:位于塊3的1024個(gè)存儲(chǔ)器字節(jié)(0x1FC00~0X1FFFF)為保留區(qū),不能用于用戶程序或數(shù)據(jù)存儲(chǔ)。程序執(zhí)行過程及PC寄存器PC(不是SFR)復(fù)位值=0000PC指向下一條需要執(zhí)行指令的首地址單片機(jī)開發(fā)過程:編輯,編譯,連接,下載,調(diào)試。上電后自動(dòng)運(yùn)行FLASH程序。當(dāng)SFLE=1時(shí):指向256BFLASH存儲(chǔ)器為什么安排兩個(gè)128B的FLASH?為什么安排兩個(gè)128B的FLASH?兩個(gè)128字節(jié)的扇區(qū)可以被分別擦除或同時(shí)擦除。要同時(shí)擦除這兩個(gè)扇區(qū),擦除操作的目標(biāo)地址應(yīng)為0x0400。類似FLASH存儲(chǔ)器的寫保護(hù)查表即可見前2頁選擇是寫一個(gè)字節(jié)還是擦一個(gè)扇區(qū)FLASH存儲(chǔ)器編程兩種方法:對(duì)FLASH存儲(chǔ)器編程的最簡單的方法是使用由SiliconLabs或第三方供應(yīng)商提供的編程工具,通過JTAG接口編程。這是對(duì)未初始化器件的唯一的編程方法??梢杂密浖褂肕OVX指令對(duì)FLASH存儲(chǔ)器編程,象一般的操作數(shù)一樣為MOVX指令提供待編程的地址和數(shù)據(jù)字節(jié)。在使用MOVX指令對(duì)FLASH存儲(chǔ)器寫入之前,必須將程序存儲(chǔ)寫允許位PSWE(PSCTL.0)設(shè)置為邏輯‘1’,以使MOVX指向FLASH。在用軟件清除之前PSWE位一直保持置位狀態(tài)。為了避免對(duì)FLASH的誤寫,強(qiáng)烈建議在PSWE為邏輯‘1’期間禁止中斷。在執(zhí)行FLASH寫、讀、擦除操作時(shí),PSBANK寄存器中的COBANK位決定三個(gè)高地址FLASH塊中的哪一個(gè)被映射到地址范圍0x08000~0x0FFFF。注意:為保證FLASH存儲(chǔ)器內(nèi)容的完整性,強(qiáng)烈建議在任何從應(yīng)用軟件寫和/或擦除FLASH存儲(chǔ)器的系統(tǒng)中使能VDD監(jiān)視器(通過將VDD監(jiān)視器使能引腳MONEN連接到VDD和將RSTSRC寄存器中的PORSF位置1)寫FLASH存儲(chǔ)器可以清除數(shù)據(jù)位,但不能使數(shù)據(jù)位置‘1’;只有擦除操作能將FLASH中的數(shù)據(jù)位置‘1’。所以在寫入新值之前,必須先擦除待編程的字節(jié)地址。寫/擦除操作的定時(shí)由硬件自動(dòng)控制。注意:對(duì)于128KBFLASH器件,從0x1FC00開始的1024個(gè)單元被保留。應(yīng)避免FLASH寫和擦除操作指向保留區(qū)。軟件擦除FLASH頁:一次FLASH擦除操作將擦除整個(gè)扇區(qū)(扇區(qū)內(nèi)的所有字節(jié)被置為0xFF)。128k字節(jié)的FLASH存儲(chǔ)器是以1024字節(jié)的扇區(qū)為單位組織的。256字節(jié)的臨時(shí)數(shù)據(jù)區(qū)(地址0x20000~0x200FF)由兩個(gè)128字節(jié)的扇區(qū)(頁)組成。要擦除一個(gè)FLASH頁,F(xiàn)LWE、PSWE和PSEE位必須被置‘1’,然后用MOVX指令寫一個(gè)數(shù)據(jù)字節(jié)到扇區(qū)內(nèi)的任何一個(gè)地址。2.2.5外部數(shù)據(jù)存儲(chǔ)器/IO空間空間大小: 64K地址范圍: 0000H-FFFFH空間中可以安排:RAM存儲(chǔ)器或IO設(shè)備片內(nèi)已集成: 8KRAM片外擴(kuò)展:1.保留8K則最多擴(kuò)展56KRAM/IO設(shè)備2.屏蔽8K則最多擴(kuò)展64KRAM/IO設(shè)備3.擴(kuò)展方法后面章節(jié)詳細(xì)介紹邏輯上:程序存儲(chǔ)器空間:0000h-FFFFh,共128KB全部集成在芯片上;數(shù)據(jù)存儲(chǔ)器空間:0000h-FFFFh,64k集成了8k;內(nèi)部數(shù)據(jù)存儲(chǔ)器空間:00h-7Fh(直接/間接),80h-FFh(間接)R0-R7可以用名字或地址訪問。內(nèi)部特殊功能寄存器空間:80h-FFh;特殊功能寄存器可以用名字或地址訪問。內(nèi)部位尋址空間:20h-2Fh中有00h-7Fh,特殊功能寄存器中有80h-FFh;特殊功能寄存器中的位尋址空間可以用名字或地址訪問??偨Y(jié):2.2.7CIP-51相關(guān)寄存器(屬于SFR)說明下面對(duì)與CIP-51系統(tǒng)控制器操作有關(guān)的SFR加以說明。注意保留位不應(yīng)被置為邏輯‘1’。將來的產(chǎn)品版本可能會(huì)使用這些位實(shí)現(xiàn)新功能,在這種情況下各位的復(fù)位值將是邏輯‘0’以選擇缺省狀態(tài)。

SP:堆棧指針

堆棧指針保持棧頂位置。在每次執(zhí)行PUSH操作前,堆棧指針加1。SP寄存器復(fù)位后的默認(rèn)值為0x07。 DPL:數(shù)據(jù)指針低字節(jié)DPL為16位數(shù)據(jù)指針(DPTR)的低字節(jié)。DPTR用于訪問間接尋址的XRAM和FLASH存儲(chǔ)器。DPH:數(shù)據(jù)指針高字節(jié)DPH為16位數(shù)據(jù)指針(DPTR)的高字節(jié)。DPTR用于訪問間接尋址的XRAM和FLASH存儲(chǔ)器。位7:CY:進(jìn)位標(biāo)志。當(dāng)最后一次算術(shù)操作產(chǎn)生進(jìn)位(加法)或借位(減法)時(shí),該位置1。其它算術(shù)操作將其清0。位6:AC:輔助進(jìn)位標(biāo)志。當(dāng)最后一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論