1樓:
格式是[儲存種類] 資料型別 [儲存器型別] 變數名儲存種類:規定變數的作用域,一般不寫,使用預設的自動變數(auto)資料型別:規定變數佔用多少儲存單元
儲存器型別:規定變數存放在哪個儲存空間,一般不寫,使用預設的資料儲存器,code是程式儲存器
變數名:變數的名字
2樓:大樹愛樹懶
unsigned char i ;定義一個無符號的八位變數,8位微控制器一般常用這個
data unsigned char i;加上修飾data ,給i變數分配一個內部ram空間
類似的還有xdata,pdata,code等等,一般學會code用法就好
extern unsigned char i;宣告i為一個全域性變數,其他模組允許呼叫.
你這個問題,比較大的範圍了,關於c51的這些,很多基礎書都夠寫一章類容的,這麼一說,也不好說。
3樓:
如果是選用什麼型別變數:
一般用無字元型變數,如:unsigned char、unsigned int...因為無字元型變數要比有字元型變數執行速度要看和方便計算(如無字元型 unsigned char 範圍在0~255,而字元型範圍在 -127~+127)
如果只是宣告一個變數,格式如下:
void main()
4樓:
跟你定義的變數的格式是一樣的
微控制器c語言怎麼宣告一個可以位定址的變數
5樓:
是這個樣子的,你只要宣告瞭位變數,比如bit a;而且這個變數是全域性變數,或者是函式內部的靜態變數,那麼,這個位變數的地上就恆不變了,只是地址是多少這個是編譯器隨機分配的,不敢十分確定,但是在以後的執行中,地址肯定是不變的。
如果你宣告的是函式內部的動態變數,比如在函式內部宣告:bit a,那麼,這個位變數是隨著函式的呼叫變化的,其地址也是變化的。
所以,你只要宣告一個全域性的位變數,那麼,這個變數就肯定是地址不變的,當然,不知道其地址具體是多少罷了。
如果你非要知道每個地址是多少,那麼,有兩個辦法:
1 你集中把128個位全部都定義出來。
比如,你在某個c檔案裡,這樣寫:
bit bit00 = 0;
bit bit01 = 0;
bit bit02 = 0;
bit bit03 = 0;
一直定義128個,把所有位空間佔滿,那麼,這樣,就可以肯定bit00的地址是0x20的最低位,bit01的地址是0x20的次低位了。
2 用sbit,而不用bit.
比如:unsigned char data b_var[16] = 0;
sbit led_status1 = b_var[0]^7;那麼,就表示led_status 是第20h地址中的最高位。
sbit led_status2 = b_var[6]^3;那麼,就表示led_status 是第26h地址中的第3位。
這個其實並不是定義了位變數,只是起了個別名而已。但效果一樣,只是注意,你更改b_var[6],可能會更改26h的地址第3位,所以,如果你只用位,那麼,就不要操作b_var[6]這個陣列元素。
其實呢,你只要定義個全域性變數就行了,沒有必要知道這個bit變數的地址,因為沒有什麼實際意義。
6樓:修者世界
微控制器中,可以位定址的有兩個地方,第一是特殊功能暫存器中可以被8整除的暫存器,第二就是20h~2fh這個位址空間。兩個地方的位變數申明不一樣。
第一個地方的申明是: sbit 位變數
比如:sbit pwm=p1^0;
第二個地方的申明是:bit 位變數
比如: bit flag;
7樓:西城飛羽
首先是你的標頭檔案是#include
在這個標頭檔案中包含著一些宣告比如:sfr scan ;
這個宣告是你在程式中不必寫出來的,只需要#include然後你再在你的程式中寫語句:sbit 變數名 p0^1;
注意這個p0^1是指p0輸出/輸入的第一個位。希望對你有幫助
8樓:一路清晨
int *cc;
cc=(int*)0x6300 ;
*cc=3;
pic微控制器eeprom定義的c語言描述
預處理控制行又稱預處理命令,是c編譯系統的乙個組成部分。c語言提供的預處理功能主要有以下三種 1 巨集定義 2 檔案包含 3 條件編譯。它們分別用巨集定義命令 檔案包含命令和條件編譯命令來實現。為了與一般c語句相區別,這些命令以符號 開頭,並且在其行的末尾不用分號。詳見c編譯器手冊或較詳細的c語言程...
微控制器c語言中斷中的return返回
嗯,可以這麼理解,發生中斷時,主函式停止執行,調至中斷 執行了。因為中斷時可以巢狀的,也有可能返回到之前被中斷的中斷程式那執行了。總之就是返回之前中斷出的 繼續執行。 牛xx的小 如果這個條件滿足則直接返回,否則執行下面的語句! 如果滿足條件則返回值,否則執行下面語句。 return返回一個值。後面...
51微控制器怎麼用c語言寫按鈕控制led的閃爍
bit flash 閃爍標誌位 sbit led p0 0 sbit p01 p0 1 sbit p02 p0 2 void main void scankey 鍵盤掃瞄 按住按鍵的動作 flash flash 按鍵按下後執行動作 void ledflash else led 0 void dela...