<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51單片機bit、sbin、sfr、sfr_16有什么區別

51單片機bit、sbin、sfr、sfr_16有什么區別

作者: 時(shí)間:2013-01-30 來(lái)源:網(wǎng)絡(luò ) 收藏

2)符號P1_0 來(lái)表示P1.0 引腳。

在C 語(yǔ)言里,如果直接寫(xiě)P1.0,C 并不能識別,而且P1.0 也不是一個(gè)合法的C

語(yǔ)言變量名,所以得給它另起一個(gè)名字,這里起的名為P1_0,可是P1_0 是不是就是P1.0

呢?你這么認為,C 可不這么認為,所以必須給它們建立聯(lián)系,這里使用了Keil C

的關(guān)鍵字sbit 來(lái)定義,sbit 的用法有三種:

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

第二種方法:sbit 位變量名=SFR 名稱(chēng)^變量位地址值

第三種方法:sbit 位變量名=SFR 地址值^變量位地址值

如定義PSW 中的OV 可以用以下三種方法:

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

sbit OV=PSW^2 (2)說(shuō)明:其中PSW 必須先用sfr 定義好

sbit OV=0xD0^2 (3)說(shuō)明:0xD0 就是PSW 的地址值

因此這里用sfr P1_0=P1^0;就是定義用符號P1_0 來(lái)表示P1.0 引腳,如果你愿意也可以

起P10 一類(lèi)的名字,只要下面程序中也隨之更改就行了。

*AT89C51的特殊功能寄存器表請看附錄二

4.sfr16 16位特殊功能寄存器

sfr16占用兩個(gè)內存單元,值域為0~65535。sfr16和sfr一樣用于操作特殊功能寄存器,所不同的是它用于操作占兩個(gè)字節的寄存器,好定時(shí)器T0和T1。

5.sbit可錄址位

sbit同位是C51中的一種擴充數據類(lèi)型,利用它可以訪(fǎng)問(wèn)芯片內部的RAM中的可尋址位或特殊功能寄存器中的可尋址位。如先前我們定義了

sfr P1 = 0x90; //因P1端口的寄存器是可位尋址的,所以我們可以定義

sbit P1_1 = P1^1; //P1_1為P1中的P1.1引腳

//同樣我們可以用P1.1的地址去寫(xiě),如sbit P1_1 = 0x91;

這樣我們在以后的程序語(yǔ)句中就可以用P1_1來(lái)對P1.1引腳進(jìn)行讀寫(xiě)操作了。通常這些可以直接使用系統提供的預處理文件,里面已定義好各特殊功能寄存器的簡(jiǎn)單名字,直接引用可以省去一點(diǎn)時(shí)間,我自己是一直用的。當然您也可以自己寫(xiě)自己的定義文件,用您認為好記的名字。

data表明數據在片內數據存儲區;

xdata表明數據在片外數據存儲區;

code表明數據在程序存儲區;

extern定義的數據是在另外一個(gè)模塊,當引用其它文件中的變量時(shí)要加上extern。extern的重要意義在于表明要定義的數據已經(jīng)在其他地方定義過(guò),此處只是引用,所以不會(huì )另外開(kāi)辟內存。

51單片機相關(guān)文章:51單片機教程



上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>