變量 keil存儲(chǔ)器類型_第1頁(yè)
已閱讀1頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、變量keil存儲(chǔ)器類型2009072016:24所提到變量就是一種在程序執(zhí)行過(guò)程中其值能不斷變化的量。要在程序中使用變量必須先用標(biāo)識(shí)符作為變量名,并指出所用的數(shù)據(jù)類型和存儲(chǔ)模式,這樣編譯系統(tǒng)才能為變量分配相應(yīng)的存儲(chǔ)空間。定義一個(gè)變量的格式如下:[存儲(chǔ)種類]數(shù)據(jù)類型[存儲(chǔ)器類型]變量名表在定義格式中除了數(shù)據(jù)類型和變量名表是必要的,其它都是可選項(xiàng)。存儲(chǔ)種類有四種:自動(dòng)(auto)外部(extern)靜態(tài)(static)和寄存器(regist

2、er),缺省類型為自動(dòng)(auto)。這些存儲(chǔ)種類的具體含義和使用方法,將在第七課《變量的存儲(chǔ)》中進(jìn)一步進(jìn)行學(xué)習(xí)。而這里的數(shù)據(jù)類型則是和我們?cè)诘谒恼n中學(xué)習(xí)到的名種數(shù)據(jù)類型的定義是一樣的。說(shuō)明了一個(gè)變量的數(shù)據(jù)類型后,還可選擇說(shuō)明該變量的存儲(chǔ)器類型。存儲(chǔ)器類型的說(shuō)明就是指定該變量在單片機(jī)c語(yǔ)言硬件系統(tǒng)中所使用的存儲(chǔ)區(qū)域,并在編譯時(shí)準(zhǔn)確的定位。表6-1中是KEILuVision2所能認(rèn)別的存儲(chǔ)器類型。注意的是在AT89c51芯片中RAM只有低1

3、28位,位于80H到FFH的高128位則在52芯片中才有用,并和特殊寄存器地址重疊。特殊寄存器(SFR)的地址表請(qǐng)看附錄二AT89c51特殊功能寄存器列表表6-1存儲(chǔ)器類型存儲(chǔ)器類型說(shuō)明data直接訪問(wèn)內(nèi)部數(shù)據(jù)存儲(chǔ)器(128字節(jié))訪問(wèn)速度最快bdata可位尋址內(nèi)部數(shù)據(jù)存儲(chǔ)器(16字節(jié)),允許位與字節(jié)混合訪問(wèn)idata間接訪問(wèn)內(nèi)部數(shù)據(jù)存儲(chǔ)器(256字節(jié)),允許訪問(wèn)全部?jī)?nèi)部地址pdata分頁(yè)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器(256字節(jié)),用MOVX@Ri

4、指令訪問(wèn)xdata外部數(shù)據(jù)存儲(chǔ)器(64KB),用MOVX@DPTR指令訪問(wèn)code程序存儲(chǔ)器(64KB)用MOVC@ADPTR指令訪問(wèn)如果省略存儲(chǔ)器類型,系統(tǒng)則會(huì)按編譯模式SMALLCOMPACT或LARGE所規(guī)定的默認(rèn)存儲(chǔ)器類型去指定變量的存儲(chǔ)區(qū)域。無(wú)論什么存儲(chǔ)模式都能聲明變量在任何的8051存儲(chǔ)區(qū)范圍,然而把最常用的命令如循環(huán)計(jì)數(shù)器和隊(duì)列索引放在內(nèi)部數(shù)據(jù)區(qū)能顯著的提高系統(tǒng)性能。還有要指出的就是變量的存儲(chǔ)種類與存儲(chǔ)器類型是完全無(wú)關(guān)的。

5、.數(shù)據(jù)存儲(chǔ)模式存儲(chǔ)模式?jīng)Q定了沒(méi)有明確指定存儲(chǔ)類型的變量,函數(shù)參數(shù)等的缺省存儲(chǔ)區(qū)域,共三種:1.1.Small模式所有缺省變量參數(shù)均裝入內(nèi)部RAM,優(yōu)點(diǎn)是訪問(wèn)速度快,缺點(diǎn)是空間有限,只適用于小程序。2.2.Compact模式所有缺省變量均位于外部RAM區(qū)的一頁(yè)(256Bytes),具體哪一頁(yè)可由P2口指定,在STARTUP.A51文件中說(shuō)明,也可用pdata指定,優(yōu)點(diǎn)是空間較Small為寬裕速度較Small慢,較large要快,是一種中間

6、狀態(tài)。3.3.large模式所有缺省變量可放在多達(dá)64KB的外部RAM區(qū),優(yōu)點(diǎn)是空間大,可存變量多,缺點(diǎn)是速度較慢。提示:存儲(chǔ)模式在單片機(jī)c語(yǔ)言編譯器選項(xiàng)中選擇。dof(a=0a50000a)P1_0=0點(diǎn)亮P1_0f(a=0a50000a)P1_7=0點(diǎn)亮P1_7f(b=0b255b)f(a=0a10000a)P1=b用b的值來(lái)做跑馬燈的花樣P1=255熄滅P1上的LEDf(b=0b255b)f(a=0a10000a)P1_1閃爍P1

7、_1=0f(a=0a10000a)P1_1=1while(1).Keilc51指針變量單片機(jī)c語(yǔ)言支持一般指針(GenericPointer)和存儲(chǔ)器指針(Memy_SpecificPointer).1.1.一般指針一般指針的聲明和使用均與標(biāo)準(zhǔn)C相同,不過(guò)同時(shí)還能說(shuō)明指針的存儲(chǔ)類型,例如:longstate為一個(gè)指向long型整數(shù)的指針,而state本身則依存儲(chǔ)模式存放。xdataptr;ptr為一個(gè)指向數(shù)據(jù)的指針,而ptr本身放于外部

8、RAM區(qū),以上的long等指針指向的數(shù)據(jù)可存放于任何存儲(chǔ)器中。一般指針本身用3個(gè)字節(jié)存放,分別為存儲(chǔ)器類型,高位偏移,低位偏移量。2.2.存儲(chǔ)器指針基于存儲(chǔ)器的指針說(shuō)明時(shí)即指定了存貯類型,例如:datastrstr指向data區(qū)中型數(shù)據(jù)intxdatapowpow指向外部RAM的int型整數(shù)。這種指針存放時(shí),只需一個(gè)字節(jié)或2個(gè)字節(jié)就夠了,因?yàn)橹恍璐娣牌屏俊?.3.指針轉(zhuǎn)換即指針在上兩種類型之間轉(zhuǎn)化:l當(dāng)基于存儲(chǔ)器的指針作為一個(gè)實(shí)參傳遞

溫馨提示

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