微控制器中,常sbit LED P2然後用LED 0,不能直接寫P2 0嗎

2021-07-14 23:08:49 字數 1827 閱讀 8180

1樓:硬體開發

這種寫法是不對的,sbit有三種使用方法如下:

第一種方法:sbit 位變數名=地址值

第二種方法:sbit 位變數名=sfr 名稱^變數位地址值

第三種方法:sbit 位變數名=sfr 地址值^變數位地址值

如定義psw中的ov可以用以下三種方法:

sbit ov=0xd2 (1 )說明:0xd2是ov的位地址值

sbit ov=psw^2 (2 )說明:其中psw必須先用sfr定義好

sbit ov=0xd0^2 (3 )說明:0xd0就是psw的地址值

p2可以直接操作,用為微控制器標頭檔案裡面已經sfr p2 = a0這樣已經可以直接賦值。

2樓:暗影花仙魔法師雪城愛

你寫錯了,sbit表達的是位資訊,而p2是整個埠,你而以寫成:sbit=p2^0或sbitp2^7等。也可以直接寫sbit=p2^0或sbitp2^7,但用sbit=p2^0或sbitp2^7後p2^0或sbitp2^7就定義成led了,這樣led等介於 p2^0或sbitp2^7了,以後如果你要更換埠就很方便,只在這裡改一下就好了,如果直接使用 p2^0或sbitp2^7,修改起來不方便。

3樓:一萬光年

p2=0;; 這樣寫是可以的

sbit 定義只是想單獨控制其中的一個管腳,如果全部控制就不用sbit 定義了 。

4樓:匿名使用者

sbit是定義某一位的,這麼寫不對。

5樓:匿名使用者

。。。。。。。。。。。網上查

微控制器輸入時為什麼要先定義介面?比如直接使用p2^0的值為什麼不可以而要宣告sbit xx=p2^0;?

6樓:匿名使用者

我看著這句話「把埠賦值給變數一次」,我讀不通,解釋不了

很久沒弄51了,也沒檢視編譯器裡的標頭檔案,我的解釋可能有錯

本人理解如下:首先,sbit xx=p2^0;這個條語句是編譯器幫你完成轉換的

你要知道你燒寫到晶片中最後的程式**不是c語言,為什麼要這麼做很好回答,

這就是規定,別人設計這個編譯器的人就是這麼規定這個語法的,

那你有沒有想過,為什麼你寫上一句int i,就定義了一個整型變數?

為什麼不可以這樣定義:整型 i,為什麼不能用中文寫程式,要用英文?

這是別人規定的,如果你不想這麼用,很簡單,你自己做一個編譯器

不過,等你到了那個水平,不知道你還願意花時間去做這種事不?(除非工作需要)

你說的變數和埠變化的意思,不知道是我理解的這樣:

你的意思是:執行char i =p2;後,i的值就隨著埠上電平的改變而改變?

不知道你是不是問這個?

但關於這問題的答案是否定的,什麼時候執行了i=p2這條語句,i就是當時p2埠上的電平情況。你要想 i 這個變數隨著埠電平的變化而變化,很簡單,你經常執行i=p2這句話就行了。就像掃描一樣,每隔一段時間,我看一下埠的電平是什麼情況。

不知道解釋的好不好,如有不當,請見諒

7樓:我是

因為p2^0口程式自己沒有自己定義,必須自己宣告,但是你可以直接對整個p2口進行操作,如

p2=0xff. 這是因為p2口在include中得reg51.h已經定義好了,你可以把滑鼠放在reg51.

h上,右鍵,選擇open,檢視裡面已經定義多得一些引腳和暫存器等東西。

8樓:匿名使用者

p2^0其實是運算式,所以sbit xx=p2^0;是能夠成立的,而p2^0=0;這樣的語句是不成立的

關於51微控制器的串列埠通訊為什麼要用rs232電平

所謂的rs 232通訊標準,就是對外掛樣式 訊號名稱和意義以及所謂的驅動器 接收器的電氣模式這回種硬體作出規定。一答般的都是9針的介面,其中包括cd介面 資料通道接收載波的檢測 rd介面 接收資料 sd介面 傳送資料 er介面 資料終端就緒 sg介面 訊號用接地 dr介面 資料集就緒 rs介面 請求...

運用51微控制器實現2位8段數碼管顯示00 99,數碼管的段選擇資料由P0口控制,位選擇由P2口控制

include int i,j void zhongduanini void void time 1s void interrupt 1 char table 10 void main void 絕地求生 戰術競技遊戲 編輯 絕地求生 pubg 是一款戰術競技型射擊類沙盒遊戲。1 該遊戲中,玩家需要...

在51微控制器中使用組合語言如何將8位2進位制數轉

太高深了,真沒看懂 難道8位2進位制不是2位16進位制?是不是要顯示成字元啊?比如0101 1010,在顯示器上顯示0x5a 在微控制器組合語言 程式設計中 其實 8位2進位制數 就可以直接 看成 2位16進位制數,只是 與 10進位制數 有轉換關係,組合語言中 也是通用的 如mov a,11111...