sbit是定義特殊功能暫存器的位元變數。 bit和sbit都是C51擴充的變數型別。
典型應用是:sbit P0_0=P0^0;//即定義P0_0為P0口的第1位,以便進行位元操作。 (推薦學習:PHP影片教學)
bit和int char之類的差不多,只不過char=8位元, bit=1位元而已。都是變量,編譯器在編譯過程中分配地址。
用法
在C語言裡,如果直接寫P1.0,C編譯器並不能識別,而且P1.0也不是一個合法的C語言變量名,所以得給它另一個名字,這裡起的名為P1_0,可是P1_0是不是就是P1.0呢?你這麼認為,C編譯器可不這麼認為,所以必須給它們建立聯繫,這裡使用了Keil C的關鍵字sbit來定義,sbit的用法有三種:
第一種方法:sbit 位元變量名=位址值
第二種方法:sbit 位元變數名稱=SFR名稱^變數位址值
第三種方法:sbit 位元變數名稱=SFR位址值^變數位址值
如定義PSW中的OV可以用以下三種方法:
sbit OV=0xd2 (1)說明:0xd2是OV的位址值
#sbit =PSW^2 (2)說明:其中PSW必須先用sfr定義好
sbit OV=0xD0^2 (3)說明:0xD0就是PSW的位址值
因此這裡用sbit P1_0=P1^0;就是定義用符號P1_0來表示P1.0引腳,如果你願意也可以起P10一類的名字,只要下面程式中也隨之更改就行了。
sbit 要在最外面定義,就是說必須定義成外部變數.sbit定義的是SFR(特殊功能暫存器)的bit
sbit是對應可位尋址空間的一個位,可位尋址區:20H~2FH。一旦用了sbit xxx = REGE^6這樣的定義,這個sbit量就確定位址了。 sbit大部分是用在暫存器中的,方便對暫存器的某位進行操作的。
sbit位元暫存器是可位元尋址的絕對位址目標,定義後編譯器是不會改變位置的。
更多PHP相關技術文章,請造訪PHP圖文教學欄位進行學習!
以上是sbit是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!