蓝桥杯单片机备战(八)单片机C51的一些数据类型(bit、sbit、sfr、sfr_16)

引言:我们学习到这里的时候已经多多少少接触了sbit,sfr这些东西,前面也有一些简单的介绍,这里对bit、sbit、sfr、sfr_16这几种数据结构进行更加详尽的学习


1.bit和sbit

bit和sbit都是位类型,与int、float这些东西类似,是一种变量类型,这个变量类型的长度为1个二进制位,故取值范围是0~1,用于访问51单片机中的可寻址的位单元。

sbit的“s”代表special【特殊(状态寄存器)】,sbit和bit的区别:

说鬼话:用sbit定义的位变量必须与51单片机的一个可以寻址位单元或可位寻址的字节单元中的某一位联系在一起,在C51编译器编译时,其对应的位地址是不可变化的。

说人话:sbit是用于特殊寄存器的,例如I/O口这些

例如:

这里意思是给P34口取一个名字叫做C4,C4这个变量只有两个取值,0或者1,当C4位1是代表P34口为高电平,当C4位0是代表P34口为低电平。


2.sfr和sfr_16

sfr和sfr_16都是特殊功能寄存器型【SFR全称为:special function register(翻译为:特殊功能寄存器)】,也是一种变量类型,只能用于访问51单片机中的特殊功能寄存器数据。

sfr是单字节型特殊功能寄存器型,长度是一个字节(八个二进制位),故取值范围是0~255,利用它可以访问51单片机内部的所有特殊功能寄存器,例如:

这里意思是给P0I/O口的物理地址0x80取一个名字叫做P0,P0这个变量代表P00到P07七个I/O口。

sfr_16是双字节型特殊功能寄存器型,长度是两个字节(16个二进制位),故取值范围是0~65535,利用它可以访问51单片机内部的所有双字节特殊功能寄存器,例如51单片机里的定时器一和定时器二。


附表:

数据类型

长度

取值

unsigned char

1字节

0~255

signed char

1字节

-128~+127

unsigned int

2字节

0~65535

signed int

2字节

-32768~32767

unsigned long

4字节

0~4294967295

bit

1位

0~1

sbit

1位

0~1

sfr

1字节

0~255

sfr_16

2字节

0~65535

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值