新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)c語言教程:C51變量

單片機(jī)c語言教程:C51變量

作者: 時(shí)間:2012-09-11 來源:網(wǎng)絡(luò) 收藏

(1)sbit 位名=位地址

sbit P1_1 = Ox91;

這樣是把位的絕對地址賦給位。同sfr一樣sbit的位地址必須位于80H-FFH之間。

(2)Sbit 位名=特殊功能寄存器名^位位置

sft P1 = 0x90;

sbit P1_1 = P1 ^ 1; //先定義一個(gè)特殊功能寄存器名再指定位變量名所在的位置

當(dāng)可尋址位位于特殊功能寄存器中時(shí)可采用這種方法

(3)sbit 位變量名=字節(jié)地址^位位置

sbit P1_1 = 0x90 ^ 1;

這種方法其實(shí)和2是一樣的,只是把特殊功能寄存器的位址直接用常數(shù)表示。

c存儲(chǔ)器類型中供給有一個(gè)bdata的存儲(chǔ)器類型,這個(gè)是指可位尋址的數(shù)據(jù)存儲(chǔ)器,位于的可位尋址區(qū)中,能將要求可位錄址的數(shù)據(jù)定義為bdata,如:

unsigned char bdata ib; //在可位錄址區(qū)定義ucsigned char類型的變量ib

int bdata ab[2]; //在可位尋址區(qū)定義數(shù)組ab[2],這些也稱為可尋址位對象

sbit ib7=ib^7 //用關(guān)鍵字sbit定義位變量來獨(dú)立訪問可尋址位對象的其中一位

sbit ab12=ab[1]^12;

操作符^后面的位位置的最大值取決于指定的基址類型,char0-7,int0-15,long0-31。

下面我們用上一課的電路來實(shí)踐一下這一課的知識。同樣是做一下簡單的跑馬燈實(shí)驗(yàn),項(xiàng)目名為RunLED2。程序如下:
 sfr P1 = 0x90; //這里沒有使用預(yù)定義文件,
sbit P1_0 = P1 ^ 0; //而是自己定義特殊寄存器
sbit P1_7 = 0x90 ^ 7; //之前我們使用的預(yù)定義文件其實(shí)就是這個(gè)作用
sbit P1_1 = 0x91; //這里分別定義P1端口和P10,P11,P17引腳

c語言相關(guān)文章:c語言教程


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


單片機(jī)相關(guān)文章:單片機(jī)視頻教程


單片機(jī)相關(guān)文章:單片機(jī)工作原理


存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理


塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理
激光器相關(guān)文章:激光器原理


關(guān)鍵詞: 變量 C51 教程 語言 單片機(jī)

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉