版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、C51存儲器介紹,執(zhí)行校長,單片機實訓(xùn)(第二講上),教學(xué)內(nèi)容,51存儲器的結(jié)構(gòu) 51變量的存儲模式 外部存儲器的訪問 P0口和相關(guān)控制引胸的說明,重點、難點,重點 存儲器的訪問 難點 外部存儲器的訪問,51存儲器結(jié)構(gòu),51單片機在物理結(jié)構(gòu)上有四個存儲空間 片內(nèi)程序存儲區(qū);片外程序存儲區(qū)。 片內(nèi)數(shù)據(jù)存儲區(qū);片外數(shù)據(jù)存儲區(qū)。 在邏輯上,即從用戶使用角度上有3個存儲空間。 片內(nèi)外統(tǒng)一編址的64KB程序存儲區(qū) 片內(nèi)數(shù)據(jù)存儲區(qū)(大小跟具體的單片機有關(guān))和64KB片外數(shù)據(jù)存儲區(qū),51存儲器結(jié)構(gòu),程序存儲區(qū) 程序存儲區(qū)用于存放編好的程序、常數(shù)和數(shù)據(jù)表格。 在程序存儲區(qū)的開始部分,定義了一段具有特殊功能的地址
2、段,用做程序起始和各種中斷的入口。 程序存儲器的0000H地址是單片機系統(tǒng)復(fù)位后的程序入口地址,使用時應(yīng)該在該地址中放置一條跳轉(zhuǎn)指令,使程序無條件跳轉(zhuǎn)到用戶設(shè)計的主程序入口地址處。 在相應(yīng)中斷入口地址處放置一條跳轉(zhuǎn)指令,使程序跳轉(zhuǎn)到用戶安排的中斷程序的起始地址處。,51存儲器結(jié)構(gòu),數(shù)據(jù)存儲區(qū): 數(shù)據(jù)存儲區(qū)用天存放中間運算結(jié)果、數(shù)據(jù)暫存和緩沖、標(biāo)志位等。 片內(nèi)數(shù)據(jù)存儲區(qū) 工作寄存器區(qū) 位尋址區(qū) 數(shù)據(jù)緩沖區(qū)(用戶RAM區(qū)) 堆棧區(qū) 特殊功能寄存器區(qū),51變量的存儲模式,它有數(shù)據(jù)類型、存儲類型、存儲器模式和有效范圍四種屬性。 C語言規(guī)定每個變量必須有一個標(biāo)識符作為變量名,在使用一個變量前,必須先對變
3、量進行定義,指出其數(shù)據(jù)類型和存儲模式。以便編譯系統(tǒng)為其分配存儲單元。 在C51中對變量進行定義的格式如下:存儲類型 數(shù)據(jù)類型 存儲器類型 變量名表 存儲類型指明變量的存儲區(qū)域,而變量的存儲類型和變量在程序中說明的位置決定了它的作用范圍。,51變量的存儲模式,auto:自動變量。 register:寄存器變量。 static:靜態(tài)變量。 extern:外部類型。 數(shù)據(jù)類型:int char bit 存儲器類型與單片機的尋址方式有關(guān),影響程序的執(zhí)行效率 。 data: 低128字節(jié),可直接尋址,速度最快,生成的代碼也最小。 bdata:16字節(jié)位尋址區(qū)(當(dāng)然也可以按字節(jié)尋址),一般很小。,51變量
4、的存儲模式,idata: 固定指前面0 x00-0 xff的256個RAM,其中前128和data的128完全相同,只是因為訪問的方式不同。idata是用類似C中的指針方式訪問的。 xdata: 外部擴展RAM,一般指外部0 x0000-0 xffff空間,有的集成于片內(nèi),用DPTR訪問。 Volatile:的作用就是讓編譯器不至于優(yōu)化掉它的操作。 volatile修飾的變量,對于讀操作來說,其值是不可預(yù)知的;對于寫操作來說,即使是寫入兩個同樣的值,影響也是不一樣的。所以編譯器不會對訪問該變量的操作優(yōu)化。如果不加volatile關(guān)鍵詞,有些編譯器會將一些它認(rèn)為無意義的或者無效的操作給優(yōu)化掉,但
5、實際上這并不是你要的結(jié)果。例如一些特殊的寄存器,一些IO等。,51變量的存儲模式,例:,volatile int i=10; int j = i; int k = i;(1)volatile 告訴編譯器i是隨時可能發(fā)生變化的,每次使用它的時候必須從i的地址中讀取,因而編譯器生成的可執(zhí)行碼會重新從i的地址讀取數(shù)據(jù)放在k中。(2)而優(yōu)化做法是,由于編譯器發(fā)現(xiàn)兩次從i讀數(shù)據(jù)的代碼之間的代碼沒有對i進行過操作,它會自動把上次讀的數(shù)據(jù)放在k中。而不是重新從i里面讀。這樣以來,如果i是一個寄存器變量或者表示一個端口數(shù)據(jù)就容易出錯,所以說volatile可以保證對特殊地址的穩(wěn)定訪問,不會出錯。,外部存儲器的
6、訪問,absacc.h里的宏 #define XBYTE (unsigned char volatile xdata *) 0) value = XBYTE0 x002; 結(jié)果是將外存(xdata)地址為0 x002單元的內(nèi)容放到變量value中。 替換一下考慮: value = (unsigned char volatile xdata *) 0)0 x02; 等價于: unsigned char volatile xdata *XBYTE=0 /*NULL*/ 是把XBYTE定義為指針,指向xdata地址0。,外部存儲器的訪問,#define XBYTE (unsigned char vo
7、latile xdata *) 0) 考慮下這個define定義的內(nèi)容 把XBYTE定義成一個0(0); 這個0是個地址(*號); 這個地址是外部存儲區(qū)的地址(xdata); 并是unsigned char類型的地址(unsigned char); 并這個地址的內(nèi)容是易變的(volatile)。 本質(zhì)上是定義了一個指針(XBYTE)。指針就是地址。 內(nèi)部的括號用來強制類型轉(zhuǎn)換用的,外部的的括號用來防止宏定義展開時錯誤的用法。 這樣,可以直接用XBYTE0 xnnnn或*(XBYTE+0 xnnnn)訪問外部RAM了。,P0口和相關(guān)控制引胸的說明,在訪問外部程序和外部數(shù)據(jù)存儲器時,P0 口是分時轉(zhuǎn)換的地址(低8 位)/數(shù)據(jù)總線,訪問期間內(nèi)部的上拉電阻起作用。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年中核坤華能源發(fā)展有限公司招聘備考題庫及一套參考答案詳解
- 2026年國家電投集團甘肅電力有限公司招聘備考題庫及1套完整答案詳解
- 2026年廣州市登峰街公開招聘輔助人員備考題庫帶答案詳解
- 2026年安徽和韻農(nóng)業(yè)投資發(fā)展集團有限公司(和縣蔬菜集團)公開招聘工作人員備考題庫及1套參考答案詳解
- 定點藥房醫(yī)保內(nèi)控制度
- 銷售部門內(nèi)控制度
- 國企混改內(nèi)控制度
- 醫(yī)保局結(jié)算科內(nèi)控制度
- 鞋服行業(yè)內(nèi)控制度
- 會計法內(nèi)控制度
- 初三數(shù)學(xué)期末試卷分析及中考復(fù)習(xí)建議課件
- 四川省成都市青羊區(qū)2023年九年級一診英語試卷
- 拆零藥品登記表
- 附件1北京建筑大學(xué)新辦本科專業(yè)教學(xué)評估方案
- 第12課 水陸交通的變遷 高二歷史 課件(選擇性必修2:經(jīng)濟與社會生活)
- 七年級上冊語文期末考試卷及答案浙教版
- 22種常見環(huán)境違法行為筆錄調(diào)查詢問筆錄及現(xiàn)場筆錄模板(修改版)
- 解決問題的五原則-培訓(xùn)資料
- 吉林大學(xué)發(fā)動機原理講義
- 老年大學(xué)規(guī)章制度管理辦法匯編
- (高清版)輻射供暖供冷技術(shù)規(guī)程JGJ142-2012
評論
0/150
提交評論