单片机如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>没有定义到这些寄存器