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