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;

或

图示

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)