1樓:
sbit是c51擴充套件的變數型別,是定義特殊功能暫存器的位變數。典型應用是:sbit p0_1=p0^1;//即定義p0_1為p0口的第2位,以便進行位操作。
在c語言裡,如果直接寫p1.1,c編譯器並不能識別,而且p1.1也不是一個合法的c語言變數名,所以得給它另起一個名字,這裡起的名為p1_1,可是p1_1是不是就是p1.
1呢?你這麼認為,c編譯器可不這麼認為,所以必須給它們建立聯絡,這裡使用了keil c的關鍵字sbit來定義,sbit的用法有三種:
第一種方法:sbit 位變數名=地址值
第二種方法:sbit 位變數名=sfr名稱^變數位地址值第三種方法:sbit 位變數名=sfr地址值^變數位地址值用sbit p1_1=p1^1;就是定義用符號p1_1來表示p1.
1引腳,如果你願意也可以起p11一類的名字,只要下面程式中也隨之更改就行了。
2樓:匿名使用者
sbit single bit 。。。。。。。。。。。。就是一位。。。。。。。
3樓:沒事來玩幽白
按位定義,主要針對於可按位定址 取值的暫存器。
多數用於各種可按位定址暫存器的位定義。
比如:sbit ex0=ie^0; 就是給中斷暫存器的第0位進行定義,之後只要使用ex0,就代表了ie^0
微控制器c程式設計sbit指令是什麼意思
4樓:angelxf_功夫王
定義特殊功能暫存器的位變數。
典型應用是:sbit p0_0=p0^0;//即定義p0_0為p0口的第1位,以便進行位操作。
希望解釋對你有幫助。
5樓:smart天寂
sbit是對應可位
抄定址空間的襲一個位,可位定址區:20h~2fh。一旦用了sbit *** = rege^6這樣的定義,這個sbit量就確定地址了。
sbit大部分是用在暫存器中的,方便對暫存器的某位進行操作的。
6樓:匿名使用者
sbit是c51擴充套件資料型別,意思是從位元組中宣告的位變數。如sbit f=p1^4;//將f位定義為 p1.4
7樓:匿名使用者
sbit對映到io口(p1^1這種io口的“位”)
比如sbit key p1^1 //使用key來表示p1.1
只有在sbit下才能用p1^1
8樓:匿名使用者
你確定字元沒打錯?
sbit中
有一個split是函式分割擷取字串的作用
微控制器sbit是什麼意思
9樓:匿名使用者
位變數的宣告 你可以直接對i/o口任一位進行操作 但是不能直接使用p1^1之累這的 首先你得進行位變數宣告 用一個變數來代替這一個位口 例如 sbit d1=p1^1;d1=0;這兩句話就是讓p1^1=0的意思
10樓:祝筱示湛芳
按位定義,主要針對於可按位定址
取值的暫存器。
多數用於各種可按位定址暫存器的位定義。
比如:sbit
ex0=ie^0;
就是給中斷暫存器的第0位進行定義,之後只要使用ex0,就代表了ie^0
11樓:匿名使用者
位的巨集定義定義
sbit key p1^1 //使用key來表示p1.1
12樓:一萬光年
sbit 是c51中定義位變數用的。
如:led=p1^0;
buzzer=p1^1;等等
13樓:
就是定義為一個位
這一位可以使0或者1
例如 sbit deng=p1^1
p1^1這個口的狀態(高低電平)用deng來表示
51微控制器c語言sbit的作用是什麼
14樓:匿名使用者
^在51微控制器中
,不來能直接自
使用p0^0=***操作,因為p0^0是地址值,即指標,p0指標地址值0x80,p0^0指標地址0x81,p0^0=***是修改指標地址,即0x81=***,明顯是錯誤的,我們想修改指標指向管腳值,必須使用位定義關鍵字sbit p00 = p0^0;然後p00=***,操作p00管腳值,即操作0x81指標指向的管腳p00的值。
15樓:匿名使用者
這個叫位定義
就是給p0^0又定義了個名字叫p00。這樣在程式中用到p0^0的時候寫p00就可以了,這樣為的書寫方便。如果沒有sbit就成了賦值語句。
16樓:棍※棍
據說不行,試試不就知道了
微控制器中bit和sbit有什麼區別?
17樓:
sbit對映到io口(p1^1這種io口的“位”)
bit在ram中的可位定址空間中,一般用作程式判斷的標誌位。
你可以認為它們一個對外(sbit),一個對內(bit)。
18樓:
bit和sbit都是c51擴充套件的變數型別。
sbit 要在最外面定義,就是說必須定義成外部變數.sbit定義的是sfr(特殊功能暫存器)的bit
sbit更像是型別定義,不像是變數定義。
sbit: 只是說明性說明
bit 可以在外部或內部定義。
bit和int char之類的差不多,只不過char=8位, bit="1位而已"。都是變數,編譯器在編譯過程中分配地址。除非你指定,否則這個地址是隨機的。
這個地址是整個可定址空間,ram+flash+擴充套件空間。bit只有0和1兩種值,意義有點像windows下vc中的bool。
bit是編譯器在的可定址區分配的一個位變數,是不定的,不是絕對地址目標。
所有可位定址的位都可由sbit指定,這包括可位定址區和sfr中的位。
sbit是對應可位定址空間的一個位,可位定址區:20h~2fh。一旦用了sbit *** = rege^6這樣的定義,這個sbit量就確定地址了。
sbit大部分是用在暫存器中的,方便對暫存器的某位進行操作的。
sbit位暫存器是可位定址的絕對地址目標,定義後編譯器是不會改變位置的。
19樓:匿名使用者
sbit跟int一樣是一種資料型別
即位用sbit可以定義一個位變數
而bit則是用來強制轉換比如(bit)a
20樓:匿名使用者
sbit 就是置1的意思。。。跟clr相反。。。
51微控制器用c語言,sbit怎麼使用???什麼作用呢??什麼含義
21樓:匿名使用者
1. sbit是一種資料型別,表示一個位,值為0或12. 舉個例子:
sbit clk=p3^0; 其中clk佔一個位,表示埠p3^0,表示輸出給這個埠的資料不是0就是1.
(lz學過51,所以p3^0的含義就不用我多解釋了吧)3. lz如有其他問題可追問
微控制器 sfr定義,微控制器sfr和sbit有什麼區別
老友記愛學習 我是一名微控制器工程師,很多人都有類似的問題發生,其實弄懂一個sfr,其它的也就懂了,我已經用通俗易懂的方法把它寫在了一個貼子上,感興趣的可以瀏覽一下。sfr到底是什麼 p0 p3 psw acc等這些暫存器在sfr中的地址,是intel設計mcs 51微控制器時就定下的。後來許多廠家...
51微控制器init什麼意思,51微控制器的“51”是什麼意思?
51微控制器init 一般初始化函式的函式名。用法 類 alloc init init 是建構函式初始化用,他能初始化啥,都初始化為預設值,alloc 之後就是預設值。51微控制器簡介 51系列微控制器是一個統稱。代表時鐘為12分頻,內部儲存器為哈佛結構 資料和 分別儲存 的一系列8位微控制器。代表...
微控制器C語言程式設計,微控制器C語言程式設計題
按你的程式的結構,不做大的變動,又能理解的方法 四個程式合併成一個,當然就只能有一個主程式了,一個while 1 了,凡是while 1 以上的程式只保留一個就行了。四個程式的while 1 以下的都合併寫在一個while 1 下面,分為四段。有四個按鍵,判斷按鍵被按下的程式會寫吧?那判斷每個按鍵的...