版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第二章CIP-51微控制器(紅色部分)2.1C8051F120控制器內(nèi)核是CIP-51微控制器C8051F系列單片機的內(nèi)核是SiliconLabs的專利產(chǎn)品:CIP-51。它與MCS-51
指令集完全兼容,可以使用標準MCS-51
的匯編器和編譯器進行軟件開發(fā)。CIP-51微控制器內(nèi)核除了具有標準MCS-51的組織結(jié)構和外設以外,另有增加的定制外設和功能,大大增強了它的處理能力。性能:CIP-51采用流水線結(jié)構,與標準的8051結(jié)構相比指令執(zhí)行速度有很大的提高。而對于CIP-51內(nèi)核,70%的指令的執(zhí)行時間為1或2個系統(tǒng)時鐘周期,沒有執(zhí)行時間超過8個系統(tǒng)時鐘周期的指令。CIP-51工作在最大系統(tǒng)時鐘頻率100MHz時,它的峰值速度達到100MIPS。CIP-51共有111條匯編指令。下表列出了指令條數(shù)與執(zhí)行時所需的系統(tǒng)時鐘周期數(shù)的關系。本課程使用C語言編程,對匯編只是簡單介紹,感興趣的同學可參考手冊自學。C語言編程效率高,上手容易,移植容易;匯編語言執(zhí)行效率高,上手相對難,移植困難;對8051CPU內(nèi)部詳細結(jié)構本課程不做詳細介紹,我們可以認為它是一款CPU,可以執(zhí)行我們的C語言或匯編語言程序。(我們對80X86內(nèi)部結(jié)構并不熟悉,但不妨礙我們使用它)CIP-51有兩個物理上獨立的存儲器空間:程序存儲器空間64K、外部數(shù)據(jù)存儲器/IO空間64K。另外在CIP51內(nèi)部還有內(nèi)部數(shù)據(jù)存儲器/特殊功能寄存器空間256字節(jié)(訪問最快)。8448=8182+256學單片機必須學好:存儲器組織、SFR、外設結(jié)構2.2存儲器組織CIP-51的存儲器組織如圖11.2所示。注意:各空間地址范圍程序存儲器和數(shù)據(jù)存儲器共享同一個地址空間(和8086不同),其中:程序存儲器空間: 0000h-FFFFh;外部數(shù)據(jù)存儲器空間/IO空間: 0000h-FFFFh;內(nèi)部數(shù)據(jù)存儲器空間: 00h-7Fh(直接/間接尋址) 80h-FFh(只能間接尋址)特殊功能寄存器空間: 80h-FFh(只能直接尋址)2.2.1位尋址空間內(nèi)部數(shù)據(jù)存儲器字節(jié)地址0x20-0x2F這16個字節(jié)可以用字節(jié)地址進行字節(jié)訪問。內(nèi)部數(shù)據(jù)存儲器字節(jié)地址0x20
到0x2F的16個字節(jié)共128個位,還可以作為128個獨立尋址位訪問。每個位有一個位地址,從0x00到0x7F。字節(jié)地址0x20的位0其位地址是0x00,字節(jié)地址0x20的位7其位地址是0x07。字節(jié)地址0x2F的位0其位地址是0x78,字節(jié)地址0x2F的位7其位地址是0x7F。2.2.2特殊功能寄存器從0x80到0xFF的直接尋址存儲器空間為特殊功能寄存器區(qū)(SFR)。特殊功能寄存器已預先定義好每個寄存器,每個位的含義,不能修改。SFR提供如下功能:對CIP-51資源和外設的控制反應CIP-51資源和外設的狀態(tài)CIP-51與這些資源和外設之間的數(shù)據(jù)交換CIP-51具有標準8051中的全部SFR(21個),還增加了一些用于配置和訪問專有子系統(tǒng)的SFR。這樣就能保證與MCS-51指令集兼容的前提下增加新的功能。表11.0列出了MCS-51系統(tǒng)控制器中的全部SFR(21個)。表11.1列出了C8051F020系統(tǒng)控制器中的全部SFR(121個)。表11.2列出了C8051F120系統(tǒng)控制器中的全部SFR(多于128個)。表11.0MCS-51系統(tǒng)控制器中的全部SFR表2-1特殊功能寄存器映像SFR分頁機制(類似于上下鋪):CIP-51實現(xiàn)了SFR分頁機制,允許器件將很多SFR映射到0x80~0xFF這個存儲器地址空間。SFR存儲器空間有256頁。0x80~0xFF的每個存儲器地址都可以訪問多達256頁。C8051F12x器件使用5個SFR頁:0、1、2、3和F。使用特殊功能寄存器頁選擇寄存器SFRPAGE來選擇SFR頁(見圖11.2)。讀和寫一個SFR的步驟如下:1.用SFRPAGE寄存器選擇相應的SFR頁號。2.用直接尋址方式讀或?qū)懱厥夤δ芗拇嫫鳎∕OV指令)。位7-0:SFR頁:代表C8051MCU讀或修改SFR時所使用的SFR頁。寫:設置SFR頁。讀:C8051MCU正在使用的SFR頁。注意復位值注意地址,SFR頁每個SFR有一個名字和它的字節(jié)地址對應,可以用名字和字節(jié)地址兩種方式訪問。(在不同的頁可能會訪問到不同的SFR)字節(jié)地址以0x0或0x8結(jié)尾的SFR(例如P0、TCON、P1、SCON、IE等)既可以按字節(jié)尋址也可以按位尋址(位地址80H-FFH),所有其它SFR只能按字節(jié)尋址??梢晕粚ぶ返腟FR中,每個位都有一個位名字,可以按位地址或位名字另種方式訪問。(在不同的頁可能會訪問到不同的位)SFR空間中未使用的字節(jié)、未使用的位,保留為將來使用,訪問這些地址會產(chǎn)生不確定的結(jié)果,應予避免。有關每個寄存器的詳細說明請參見手冊P121-P1252.2.3內(nèi)部數(shù)據(jù)存儲器CIP-51的數(shù)據(jù)存儲器空間中有256字節(jié)的內(nèi)部RAM,位于地址0x00到0xFF的地址空間。數(shù)據(jù)存儲器中的低128字節(jié)用于通用寄存器和臨時存儲器。可以用直接或間接尋址方式訪問這128字節(jié)。什么是直接尋址和間接尋址?直接尋址示例:MOVA,40H間接尋址示例:MOVR0,#40HMOVA,@R0注: 其中R0是一個寄存器 間接尋址可用R0,R1,和DPTR其中:從0x00到0x1F為4個通用寄存器區(qū),每個區(qū)有8個寄存器。接下來的16字節(jié),從地址0x20到0x2F,既可以按字節(jié)尋址又可以作為128個位地址用直接位尋址方式訪問。數(shù)據(jù)存儲器中的高128字節(jié)只能用間接尋址訪問。該存儲區(qū)與特殊功能寄存器(SFR)占據(jù)相同的地址空間,但物理上與SFR空間是分開的。2.2.3.1通用寄存器內(nèi)部數(shù)據(jù)存儲器的低32字節(jié),從地址0x00到0x1F,可以作為4個通用寄存器區(qū)訪問。每個區(qū)有8個寄存器,稱為R0-R7。在某一時刻只能選擇一個寄存器區(qū)。程序狀態(tài)字(PSW是一個SFR,字節(jié)地址D0h)中的RS0(PSW.3)和RS1(PSW.4)位用于選擇當前的寄存器區(qū)(PSW后面說明)。目的:這允許在進入子程序或中斷服務程序時進行快速現(xiàn)場切換。注意:間接尋址方式使用R0和R1作為間址寄存器。2.2.3.2堆棧程序的堆??梢晕挥?56字節(jié)數(shù)據(jù)存儲器中的任何位置。堆棧區(qū)域用堆棧指針SP(SP是一個特殊功能寄存器字節(jié)地址0x81)指定。SP指向最后使用的位置。下一個壓入堆棧的數(shù)據(jù)將被存放在SP+1,然后SP加1。復位后堆棧指針被初始化為地址0x07,因此第一個被壓入堆棧的數(shù)據(jù)將被存放在地址0x08(R0-R7復位后默認在0區(qū)),目的:躲過通用寄存器第一區(qū)。如果使用不止一個寄存器區(qū),SP應被初始化為數(shù)據(jù)存儲器中不用于數(shù)據(jù)存儲的位置。堆棧深度最大可達256字節(jié)。編程習慣:初始化程序包括MOVSP,#30H2.2.4程序存儲器C8051F120有64K程序存儲器空間,在該空間集成了128KB
Flash
存儲器(用于存儲程序代碼或各種非易失性數(shù)據(jù))。另外還有兩個128B字節(jié)的FLASH頁,只能用來存儲非易失性數(shù)據(jù)。FLASH存儲器特性:一個FLASH位可以隨便從1清0。但是一旦被清0,必須經(jīng)過擦除才能再回到1狀態(tài)。因此在進行重新編程之前,應將數(shù)據(jù)字節(jié)擦除(置為0xFF)。寫和擦除操作由硬件自動定時,以保證操作正確。程序存儲器通常被認為是只讀的,有兩種情況下讀程序存儲器:1.CPU根據(jù)PC從程序存儲器相應的地址讀出下一條指令,然后譯碼執(zhí)行;2.執(zhí)行程序時,遇到MOVC指令,執(zhí)行該條指令時將到程序存儲器某個地址獲得一個字節(jié)的數(shù)據(jù)。特殊情況下:MOVX 寫入 程序存儲器空間這一特性為CIP-51提供了更新程序代碼和將程序存儲器空間用于非易失性數(shù)據(jù)存儲的機制。128K程序存儲器組織成4個32KB的程序存儲塊。地址在0x0000到0x7FFF之間的32K字節(jié)為公共程序存儲塊(塊0)。其它3個高地址程序存儲塊(塊1、塊2和塊3)都映射到地址0x8000~0xFFFF,由PSBANK
寄存器中的塊選擇位選擇當前存儲塊,見圖11.3。當SFLE=0時:指向128KBFLASH存儲器當SFLE=0時:指向128KBFLASH存儲器注意:復位值注意:位于塊3的1024個存儲器字節(jié)(0x1FC00~0X1FFFF)為保留區(qū),不能用于用戶程序或數(shù)據(jù)存儲。程序執(zhí)行過程及PC寄存器PC(不是SFR)復位值=0000PC指向下一條需要執(zhí)行指令的首地址單片機開發(fā)過程:編輯,編譯,連接,下載,調(diào)試。上電后自動運行FLASH程序。當SFLE=1時:指向256BFLASH存儲器為什么安排兩個128B的FLASH?為什么安排兩個128B的FLASH?兩個128字節(jié)的扇區(qū)可以被分別擦除或同時擦除。要同時擦除這兩個扇區(qū),擦除操作的目標地址應為0x0400。類似FLASH存儲器的寫保護查表即可見前2頁選擇是寫一個字節(jié)還是擦一個扇區(qū)FLASH存儲器編程兩種方法:對FLASH存儲器編程的最簡單的方法是使用由SiliconLabs或第三方供應商提供的編程工具,通過JTAG接口編程。這是對未初始化器件的唯一的編程方法??梢杂密浖褂肕OVX指令對FLASH存儲器編程,象一般的操作數(shù)一樣為MOVX指令提供待編程的地址和數(shù)據(jù)字節(jié)。在使用MOVX指令對FLASH存儲器寫入之前,必須將程序存儲寫允許位PSWE(PSCTL.0)設置為邏輯‘1’,以使MOVX指向FLASH。在用軟件清除之前PSWE位一直保持置位狀態(tài)。為了避免對FLASH的誤寫,強烈建議在PSWE為邏輯‘1’期間禁止中斷。在執(zhí)行FLASH寫、讀、擦除操作時,PSBANK寄存器中的COBANK位決定三個高地址FLASH塊中的哪一個被映射到地址范圍0x08000~0x0FFFF。注意:為保證FLASH存儲器內(nèi)容的完整性,強烈建議在任何從應用軟件寫和/或擦除FLASH存儲器的系統(tǒng)中使能VDD監(jiān)視器(通過將VDD監(jiān)視器使能引腳MONEN連接到VDD和將RSTSRC寄存器中的PORSF位置1)寫FLASH存儲器可以清除數(shù)據(jù)位,但不能使數(shù)據(jù)位置‘1’;只有擦除操作能將FLASH中的數(shù)據(jù)位置‘1’。所以在寫入新值之前,必須先擦除待編程的字節(jié)地址。寫/擦除操作的定時由硬件自動控制。注意:對于128KBFLASH器件,從0x1FC00開始的1024個單元被保留。應避免FLASH寫和擦除操作指向保留區(qū)。軟件擦除FLASH頁:一次FLASH擦除操作將擦除整個扇區(qū)(扇區(qū)內(nèi)的所有字節(jié)被置為0xFF)。128k字節(jié)的FLASH存儲器是以1024字節(jié)的扇區(qū)為單位組織的。256字節(jié)的臨時數(shù)據(jù)區(qū)(地址0x20000~0x200FF)由兩個128字節(jié)的扇區(qū)(頁)組成。要擦除一個FLASH頁,F(xiàn)LWE、PSWE和PSEE位必須被置‘1’,然后用MOVX指令寫一個數(shù)據(jù)字節(jié)到扇區(qū)內(nèi)的任何一個地址。2.2.5外部數(shù)據(jù)存儲器/IO空間空間大?。?64K地址范圍: 0000H-FFFFH空間中可以安排:RAM存儲器或IO設備片內(nèi)已集成: 8KRAM片外擴展:1.保留8K則最多擴展56KRAM/IO設備2.屏蔽8K則最多擴展64KRAM/IO設備3.擴展方法后面章節(jié)詳細介紹邏輯上:程序存儲器空間:0000h-FFFFh,共128KB全部集成在芯片上;數(shù)據(jù)存儲器空間:0000h-FFFFh,64k集成了8k;內(nèi)部數(shù)據(jù)存儲器空間:00h-7Fh(直接/間接),80h-FFh(間接)R0-R7可以用名字或地址訪問。內(nèi)部特殊功能寄存器空間:80h-FFh;特殊功能寄存器可以用名字或地址訪問。內(nèi)部位尋址空間:20h-2Fh中有00h-7Fh,特殊功能寄存器中有80h-FFh;特殊功能寄存器中的位尋址空間可以用名字或地址訪問??偨Y(jié):2.2.7CIP-51相關寄存器(屬于SFR)說明下面對與CIP-51系統(tǒng)控制器操作有關的SFR加以說明。注意保留位不應被置為邏輯‘1’。將來的產(chǎn)品版本可能會使用這些位實現(xiàn)新功能,在這種情況下各位的復位值將是邏輯‘0’以選擇缺省狀態(tài)。
SP:堆棧指針
堆棧指針保持棧頂位置。在每次執(zhí)行PUSH操作前,堆棧指針加1。SP寄存器復位后的默認值為0x07。 DPL:數(shù)據(jù)指針低字節(jié)DPL為16位數(shù)據(jù)指針(DPTR)的低字節(jié)。DPTR用于訪問間接尋址的XRAM和FLASH存儲器。DPH:數(shù)據(jù)指針高字節(jié)DPH為16位數(shù)據(jù)指針(DPTR)的高字節(jié)。DPTR用于訪問間接尋址的XRAM和FLASH存儲器。位7:CY:進位標志。當最后一次算術操作產(chǎn)生進位(加法)或借位(減法)時,該位置1。其它算術操作將其清0。位6:AC:輔助進位標志。當最后一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 美術班教學合同范例
- 2024至2030年薄壁水管螺紋接頭項目投資價值分析報告
- 2024至2030年機械銅渦輪銅套項目投資價值分析報告
- 醫(yī)療器材設備銷售合同范例
- 2024至2030年內(nèi)開內(nèi)倒窗項目投資價值分析報告
- 2024至2030年亞克力棒材項目投資價值分析報告
- 2024年離婚后居住安排及贍養(yǎng)費協(xié)議2篇
- 2024年電動舞臺升降幕項目可行性研究報告
- 2024年注塑機液壓系統(tǒng)項目可行性研究報告
- 2024年母線絕緣板項目可行性研究報告
- 山西省晉中市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細
- 養(yǎng)老機構護理管理制度與規(guī)范
- DB31∕T 875-2015 人身損害受傷人員休息期、營養(yǎng)期、護理期評定準則
- 08S305-小型潛水泵選用及安裝圖集
- 工程監(jiān)理企業(yè)各部門崗位職責
- 取暖器產(chǎn)品1油汀ny221218試驗報告
- 國家開放大學電大《建筑制圖基礎》機考三套標準題庫及答案3
- 雅馬哈PSR-37中文說明書
- 一汽大眾新員工三級安全教育(入廠級)
- 最新X公司事業(yè)部建設規(guī)劃方案
- 十一學校行動綱要
評論
0/150
提交評論