位置:51電子網(wǎng) » 技術(shù)資料 » IC/元器件

      變量主要由兩個部分構(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端口:



      熱門點擊

       

      推薦技術(shù)資料

      單片機版光立方的制作
          N視頻: http://v.youku.comN_sh... [詳細]
      版權(quán)所有:51dzw.COM
      深圳服務(wù)熱線:13751165337  13692101218
      粵ICP備09112631號-6(miitbeian.gov.cn)
      公網(wǎng)安備44030402000607
      深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
      付款方式


       復(fù)制成功!
      亚洲av综合在线手机版_日韩av无码精品专区_婷婷五月无码在线观看_老子影院午夜精品无码_中文字幕一区二区精品区