bit:声明位变量,其值为0或1。
sbit:声明可位寻址变量中的某个位变量,其值为0或1
sfr:声明特殊功能寄存器,地址范围为:0~255。
sfr16:同上,地址范围为0~65535。
C51编译器支持表5-1列出的数据类型。除了这些变量类型外,变量能被组合到结构、联合和数组中。兼容ANSIC标准的数据类型可通过指针访问,但扩展的bit、sbit、sfr和sfrl6数据类型专用于访问80C51的特殊功能寄存器,故不能通过指针进行访问。
表5-1 C51数据类型
位
字节
值的范围
char
8
1
-128~127
unsigned char
8
1
0~255
enum
16
2
-32768~32767
short
16
2
-32768~32767
unsigned short
16
2
0~65535
int
16
2
-32768~32767
unsigned int
16
2
0~65535
long
32
4
-2147483648~2147483647
unsigned long
32
4
0~4294967295
float
32
4
±1.175494E-38~±3.402823E+38
bit
1
-
0,1
sbit
1
-
0,1
sfr
8
1
0~255
sfr16
16
2
0~65535
例5.1 用sfr数据类型定义特殊功能寄存器示例。
sfr SCON = 0x98;
sfr P0 = 0x80;
sfr TMOD = 0x89;
sfr PSW = 0xD0;
说明:sfr之后的寄存器名称必须大写,定义之后可以直接对这些寄存器赋值。
在许多80C51派生系列中可用两个连续地址的特殊功能寄存器指定一个16位值,如:
sfr16 T2 = 0xCDCC
例5.2 用 sbit的数据类型定义位变量示例。
sbit CY = PSW^7;
sbit CY = 0xD0^7;
在sbit声明中,“^”号右边的表达式定义特殊位在寄存器中的位置,值必须是0~7。水电之家为您提供最全面的管材,管件,水电,电线,电工,管材水电品牌的装修知识点和各种管材水电的导购与在线购买服务,拥有最便宜的管材水电价格和最优质的售后服务,每天都有秒杀的抢购活动哦!敬请登陆水电之家:http://shuidian.jc68.com/


















