單片機如8051有21個SFR,地址為80H~0FFH的128個字節中,可以直接用尋址方式來操作SFR。(類似於sbit)
為了能直接訪問這些SFR,keil提供餓了一種自漢族形式的定義方法。這種方法只適用於8051系列單片機進行C編程。
方法:引入關鍵字“sfr”,語法為:sfr sfr_name=int address
如:sfr SCON=0x98;
sfr TMOD=0x89;
具體值應該參照SFR表。
關於sbit的使用有三種方式:
1、sfr PSW=0xD0;//
sbit OV=PSW^2;
sbit CY=PSW^7;
2、sbit OV=0xD0^2;
sbit CY=0xD0^7;
3、sbit OV=0xD2;
sbit CY=0xD7;
在工作中,這個sfr定義都包括在頭文件<reg51.h>等頭文件中了,不需要再自己定義。但是很多工程上的文件,都加上了這些定義,是為了防止<reg51.h>沒有定義到這些寄存器