1. sfr用法
特殊功能寄存器定義:以P0為例。
在c51的官方頭文件中,P0口是這樣定義的
可見sfr的定義方式為:sfr 變量名=字節(jié)單元地址;
這里的P0也可以換成其他變量名。
在后續(xù)的使用中,如:P0=0x00;就是把0x80為地址的字節(jié)單元的8位的數(shù)據(jù)賦值為0000 0000B
2. sbit用法
特殊功能位定義:以P0_0為例。
在c51的官方頭文件中,P0_0口是這樣定義的
可見sbit的定義方式為:sbit 變量名=位地址;
這里的P0_0也可以換成其他變量名。
sbit 還有其他定義方式,如:
sbit P0_0 = P0^0
sbit P0_0 = 0x80^0
可見P0 ^0,0x80 ^0都可以表示位地址;
3. ^的用法
通過上面的例子,我們可以得到 ^的作用: ^用于得到一個可位尋址字節(jié)單元的某一位;
^ 的具體用法為:位變量名=(可位尋址字節(jié)單元地址/變量名)^(第幾位)。(如:sbit VAR1 = P0 ^0)
在后續(xù)的使用中,如:VAR1=0;就是把0x80為地址的字節(jié)單元的第0位(即P0口的第0位)的數(shù)據(jù)置0。文章來源:http://www.zghlxwxcb.cn/news/detail-712587.html
4. 可位尋址的字節(jié)單元地址
- 前128B中有可位尋址區(qū):51單片機(jī)內(nèi)RAM中有可進(jìn)行位尋址的空間,單元地址是20H~ 2FH,共16個單元,每個單元8個位可以位尋址,共128個位,位地址是:00H~7FH。
- 特殊功能寄存器區(qū)可尋址單元:而在特殊功能寄存器區(qū)也有可位尋址的寄存器。這些寄存器的單元地址以0和8結(jié)尾,如:P0=0x80;TCON= 0x88;P1= 0x90;P2= 0xA0…。這些寄存器都可對單獨位進(jìn)行操作,而其他寄存器只能一次性對一個字節(jié)操作。位地址的編址規(guī)律為:如果一個單元地址為0x80,那么它的8位的為地址為:0x80~0x87(從當(dāng)前單元地址往后數(shù)8個)。因此單元地址每隔8個才有1個可位尋址的寄存器,為的是位地址不重復(fù)。
5. 區(qū)分位地址和字節(jié)單元地址
如:字節(jié)單元地址P0=0x80,位地址P0_0=0x80,兩者雖然地址是重疊的,但是使用時不用擔(dān)心混用,如:指令對位數(shù)據(jù)進(jìn)行操作時,0x80代表位地址;指令對字節(jié)數(shù)據(jù)進(jìn)行操作時,0x80代表單元地址。文章來源地址http://www.zghlxwxcb.cn/news/detail-712587.html
到了這里,關(guān)于C51編程中sfr,sbit的用法以及位地址和字節(jié)單元地址的區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!