微控制器C語言宣告變數的一般格式是什麼

2021-08-21 00:08:09 字數 2138 閱讀 3532

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...