標(biāo)題: 單片機小白求助關(guān)于sbit變量定義的問題 [打印本頁]

作者: Mr,Ricardo    時間: 2018-8-21 18:05
標(biāo)題: 單片機小白求助關(guān)于sbit變量定義的問題
我有一個小問題,請各位大佬幫忙解決一下
sbit IN1=P1^0;              
sbit IN2=P1^1;
sbit IN3=P1^2;
sbit IN4=P1^3;

這個定義中,IN1和IN3是相同的,我想可不可以用作一個變量
就是類似
sbit IN1=P1^0=P1^2;
這種
我知道這句語法有錯誤
sbit只能定義一個,只能一一對應(yīng)


作者: devcang    時間: 2018-8-21 19:24
就是不可以,sbit是C51特有的
作者: Hank丶Huang    時間: 2018-8-21 20:26
不可以的哦,需要的話多寫一條就行
作者: cjm82    時間: 2018-8-21 21:33
可以這樣...
sbit x = P1^0;
sbit y = P1^0;
作者: 文鳳軒    時間: 2018-8-22 00:44
不可以的,只能一個變量指向一個變量名
作者: angmall    時間: 2018-8-22 16:34
sbit是keil特有的,這個叫位定義, sbit:是定義特殊功能寄存器的位變量,不是標(biāo)準(zhǔn)C語言的關(guān)鍵字只是定義了一個位變量IN1,并賦值為P1.0,,^在這里,說明P1的第一個引腳(也就是P1.0),與一般的運算不一樣!不要混淆了!
sbit IN1=P1^0; 而P1^0則是單片機上的1號IO口管腳,以便進行位操作。

IN1和IN3是相同的,你可以用 IN1=IN3=0; 來定義

作者: lintianda    時間: 2018-8-22 22:36
sbit INT1 = P1^0表示為Io口 P1.0,其他依次類推
作者: lintianda    時間: 2018-8-22 22:44
對于某些8位或者16位單片機,sfr可用來定義特殊功能寄存器,sbit用來定義特殊功能寄存器中可以位尋址的位。
在寄存器頭文件中,可能會出現(xiàn)這樣的定義
sfr P1 = xx; //xx為寄存器P1的地址
sbit INT1 = P1^0; //寄存器P1的bit0,其他依次類推……

作者: 紅塵種蓮人    時間: 2018-8-23 12:09
當(dāng)然不可以的,位定義就這么寫
作者: 1984528951    時間: 2018-8-23 15:11
我覺得就是給io口起一個名字




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1