Keil C51對C語言的關鍵詞擴展之十三: sfr

sfr用來定義特殊功能寄存器。用法如下:

sfr name = address;
name 爲寄存器名字

address 爲寄存器的地址

示例:

sfr P0 = 0x80; /* P0口,地址爲0x80 */

sfr P1 = 0x90; /* P1口,地址爲0x90 */

sfr P2 = 0xA0;       /* P2口,地址爲0xa0 */

sfr P3 = 0xB0; /* P3口,地址爲0xb0 */


等號右邊必須爲數字常量,不能包含+ -等操作符,數值也不是隨意的,傳統類型8051單片機支持的地址範圍爲0x80 - 0xFF。NXP 80C51MX提供擴展地址範圍0x180 - 0x1FF。


假如8個發光二極管共陽極接電源,陰極連接單片機P0口,我們可以這樣點燈:


sfr P1 = 0x80; /* 0x80實際爲單片機P0口,只不過我們自己給它起個名字 */

voidmain(void)

{

while(1)

{

P1=0xff;

delay( );

P1=0;

delay();

}

}

如果程序比較大,我們也通過sfr給寄存器起別名,別人看了會XXX,至於有什麼作用,......


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章