變量主要由兩個(gè)部分構(gòu)成
發(fā)布時(shí)間:2014/6/5 21:42:53 訪問(wèn)次數(shù):6341
變量主要由兩個(gè)部分構(gòu)成:一個(gè)是變量名,一個(gè)是變量值。每個(gè)變量都有一個(gè)變量名, AD7656BSTZ-1在內(nèi)存中占有一定的內(nèi)存單元(地址),并在該內(nèi)存單元中存放該變量的值。要在程序中使用變量必須先用標(biāo)識(shí)符作為變量名,并指出所用的數(shù)據(jù)類型和存儲(chǔ)模式,這樣編譯器才能為變量分配相應(yīng)的存儲(chǔ)空間。在C語(yǔ)言中,要求對(duì)所有用到的變量做強(qiáng)制定義,也就是“先定義,后使用”。
定義一個(gè)變量的格式如下:
[存儲(chǔ)種類】數(shù)據(jù)類型[存儲(chǔ)器類型]變量名表
在定義格式中,除了數(shù)據(jù)類型和變量名表是必要的,其他都是可選項(xiàng)。存儲(chǔ)種類包括自動(dòng)( auto)、外部(extern)、靜態(tài)(static)和寄存器(register)4種,默認(rèn)類型為自動(dòng)(auto)。存儲(chǔ)器類型的說(shuō)明就是指定該變量在51單片機(jī)硬件系統(tǒng)中所使用的存儲(chǔ)區(qū)域,在編譯時(shí)根據(jù)存儲(chǔ)種類可以準(zhǔn)確地定位。C51中共有data、bdata、idata、pdata、xdata以及code 6種存儲(chǔ)器類型,如表5-4所示。
如果省略存儲(chǔ)器類型,編譯系統(tǒng)則會(huì)按編譯模式SMALL、COMPACT或LARAG所規(guī)定的默認(rèn)存儲(chǔ)器類型區(qū)指定變量的存儲(chǔ)區(qū)域。無(wú)論什么存儲(chǔ)模式都呵以聲明變量在任何的8051存儲(chǔ)區(qū)范圍,但是將最常用的命令,如循環(huán)計(jì)數(shù)器和隊(duì)列索引放在內(nèi)部數(shù)據(jù)區(qū)可以顯著提高系統(tǒng)的性能。變量的存儲(chǔ)種類與存儲(chǔ)類型是完全無(wú)關(guān)的。
SMALL存儲(chǔ)模式將所有變量都放在單片機(jī)的內(nèi)部RAM區(qū),這使得訪問(wèn)數(shù)據(jù)非?,但SMALL存儲(chǔ)模式的地址空間受限。在寫小型應(yīng)用程序時(shí),變量和數(shù)據(jù)放在data內(nèi)部數(shù)據(jù)存儲(chǔ)器中是很好的,因?yàn)樵L問(wèn)速度快,但在較大的應(yīng)用程序中data區(qū)最好只存放小的變
量、數(shù)據(jù)或常用的變量(如循環(huán)計(jì)數(shù)、數(shù)據(jù)索引),而大的數(shù)據(jù)則放置在別的存儲(chǔ)區(qū)域。
COMPACT存儲(chǔ)模式可以使用一頁(yè)(256字節(jié))外部擴(kuò)展RAM。
LARAG存儲(chǔ)模式可以使用全部的外部擴(kuò)展RAM,外部數(shù)據(jù)區(qū)最多可有64KB,這要求用DPTR數(shù)據(jù)指針訪問(wèn)數(shù)據(jù)。
下面再來(lái)仔細(xì)看看51單片機(jī)C語(yǔ)言程序中sfr、sfr16和sbit定義變量的方法。
sfr和sfr16可以直接對(duì)51單片機(jī)的特殊寄存器進(jìn)行定義,定義方法如下:
sfr特殊功能寄存器名=特殊功能寄存器地址常數(shù);
sfr16特殊功能寄存器名=特殊功能寄存器地址常數(shù);
如可以這樣定義89C51單片機(jī)的Pl端口:
變量主要由兩個(gè)部分構(gòu)成:一個(gè)是變量名,一個(gè)是變量值。每個(gè)變量都有一個(gè)變量名, AD7656BSTZ-1在內(nèi)存中占有一定的內(nèi)存單元(地址),并在該內(nèi)存單元中存放該變量的值。要在程序中使用變量必須先用標(biāo)識(shí)符作為變量名,并指出所用的數(shù)據(jù)類型和存儲(chǔ)模式,這樣編譯器才能為變量分配相應(yīng)的存儲(chǔ)空間。在C語(yǔ)言中,要求對(duì)所有用到的變量做強(qiáng)制定義,也就是“先定義,后使用”。
定義一個(gè)變量的格式如下:
[存儲(chǔ)種類】數(shù)據(jù)類型[存儲(chǔ)器類型]變量名表
在定義格式中,除了數(shù)據(jù)類型和變量名表是必要的,其他都是可選項(xiàng)。存儲(chǔ)種類包括自動(dòng)( auto)、外部(extern)、靜態(tài)(static)和寄存器(register)4種,默認(rèn)類型為自動(dòng)(auto)。存儲(chǔ)器類型的說(shuō)明就是指定該變量在51單片機(jī)硬件系統(tǒng)中所使用的存儲(chǔ)區(qū)域,在編譯時(shí)根據(jù)存儲(chǔ)種類可以準(zhǔn)確地定位。C51中共有data、bdata、idata、pdata、xdata以及code 6種存儲(chǔ)器類型,如表5-4所示。
如果省略存儲(chǔ)器類型,編譯系統(tǒng)則會(huì)按編譯模式SMALL、COMPACT或LARAG所規(guī)定的默認(rèn)存儲(chǔ)器類型區(qū)指定變量的存儲(chǔ)區(qū)域。無(wú)論什么存儲(chǔ)模式都呵以聲明變量在任何的8051存儲(chǔ)區(qū)范圍,但是將最常用的命令,如循環(huán)計(jì)數(shù)器和隊(duì)列索引放在內(nèi)部數(shù)據(jù)區(qū)可以顯著提高系統(tǒng)的性能。變量的存儲(chǔ)種類與存儲(chǔ)類型是完全無(wú)關(guān)的。
SMALL存儲(chǔ)模式將所有變量都放在單片機(jī)的內(nèi)部RAM區(qū),這使得訪問(wèn)數(shù)據(jù)非?,但SMALL存儲(chǔ)模式的地址空間受限。在寫小型應(yīng)用程序時(shí),變量和數(shù)據(jù)放在data內(nèi)部數(shù)據(jù)存儲(chǔ)器中是很好的,因?yàn)樵L問(wèn)速度快,但在較大的應(yīng)用程序中data區(qū)最好只存放小的變
量、數(shù)據(jù)或常用的變量(如循環(huán)計(jì)數(shù)、數(shù)據(jù)索引),而大的數(shù)據(jù)則放置在別的存儲(chǔ)區(qū)域。
COMPACT存儲(chǔ)模式可以使用一頁(yè)(256字節(jié))外部擴(kuò)展RAM。
LARAG存儲(chǔ)模式可以使用全部的外部擴(kuò)展RAM,外部數(shù)據(jù)區(qū)最多可有64KB,這要求用DPTR數(shù)據(jù)指針訪問(wèn)數(shù)據(jù)。
下面再來(lái)仔細(xì)看看51單片機(jī)C語(yǔ)言程序中sfr、sfr16和sbit定義變量的方法。
sfr和sfr16可以直接對(duì)51單片機(jī)的特殊寄存器進(jìn)行定義,定義方法如下:
sfr特殊功能寄存器名=特殊功能寄存器地址常數(shù);
sfr16特殊功能寄存器名=特殊功能寄存器地址常數(shù);
如可以這樣定義89C51單片機(jī)的Pl端口:
上一篇:字符串型常量由雙引號(hào)內(nèi)的字符組成
上一篇:元器件的選擇
熱門點(diǎn)擊
- 變量主要由兩個(gè)部分構(gòu)成
- 漢字交換碼
- 變址尋址
- 補(bǔ)碼
- 倒裝芯片的組裝工藝流程
- X射線檢測(cè)BGA. CSP焊點(diǎn)圖像的評(píng)估和判
- FPC在技術(shù)上的難點(diǎn)
- 爆米花現(xiàn)象
- 晶圓級(jí)CSP (WL-CSP)
- 指針的值
推薦技術(shù)資料
- 單片機(jī)版光立方的制作
- N視頻: http://v.youku.comN_sh... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開(kāi)
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究