3.2 单片机数据类型
更新于 2026年10月10日
版权声明
3.2 单片机数据类型
3.2.1 特殊功能寄存器
在单片机的C语言程序设计中,可以通过关键字sfr来定义所有特殊功能寄存器,从而在程序中直接访问它们。
1.一般形式
sfr 特殊功能寄存器名=特殊功能寄存器地址
2.说明
(1)特殊功能寄存器名可以随意按变量命名规则选取。
(2)赋值运算符右边为特殊功能寄存器地址,其地址范围为80H~FFH,且只能为常数。
例如:
sfr PSW=0xd0;
sfr B=0xe0;
sfr P1=0x90;//特殊功能寄存器P1的地址是90H
对应P1口的8个I/O引脚在程序中就可以直接使用P1这个特殊功能寄存器了,下面语句是合法的:
P1 =0x00; //将P1口的8位I/O口全部清0
3.2.2 可寻址位
C语言中,还可以通过关键字sbit来定义特殊功能寄存器中的可寻址位。利用它可以访问芯片内部RAM中的可寻址位或特殊功能寄存器中的可寻址位。
1.一般形式
sbit 位名称=位地址
2.举例
例如:
sbit CY=0xd7;
sbit A=0xd6;(https://www.daowen.com)
sbit F0=0xd5;
也可以写成:
sbit CY=0xd0^7;
sbit A=0xd0^6;
sbit F0=0xd0^5;
还可以写成:
sbit CY=PSW^7;
sbit A=PSW^6;
sbit F0=PSW^5;
通常情况下,这些特殊功能寄存器已经在头文件reg51.h中定义了,只要在程序中包含了该头文件,就可以直接使用已定义的特殊功能寄存器。
如果没有头文件reg51.h,或者该文件中只定义了部分特殊功能寄存器和位,用户也可以在程序中自行定义。
3.2.3 位类型
1.一般形式
bit 位名称=位值(0、1)
2.说明
只能定位类型变量,不能定义位数组和位指针。
例如:
bit flag=0;
或
