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

時間 2021-08-30 09:49:17

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;

51微控制器,用c語言,如何用矩陣鍵盤為變數char a賦

煙火夜空 4 4矩陣按鍵構架 火柴天堂作品 20110921 源程式預設硬體環境 52微控制器,12mhz晶振,p1口 4 4矩陣鍵盤,詳細布局如下 預設矩陣佈局,按鍵掃描方式1使用 p0 p1 p2 p3 p4 s1 s2 s3 s4 p5 s5 s6 s7 s8 p6 s9 s10 s11 s1...

微控制器上位機程式設計現在一般都用什麼語言

更多的應該是c 一般有利於與微控制器的通訊,而且大多數硬體的驅動都是以c c 實現的 但是像c 這樣的高階語言在呼叫c c 的介面也很方便,而且介面很容易實現,而且更加漂亮,可以參考一下。 海小兵 微控制器首選也幾乎是唯一的選擇就是c了,vb什麼的別想了。另外,vb現在確實不怎麼用了。 用的是c,但...

微控制器C語言陣列賦值求助,C語言一維陣列賦值方法

陣列只能在定義的時候整體賦值,不能在之後這樣用。所以你只能寫成 uchar frist 5 而不能寫成 uchar frist 5 frist 5 如果你真的要在之後賦值,特別是每個成員不一樣,你只能用迴圈或者手動乙個乙個賦值。或者先把所有值放在另外乙個數值然後memcpy給目標陣列。uchar 你...