admin 管理员组

文章数量: 1086019


2024年4月16日发(作者:chattr命令)

c语言中bit的用法是什么意思

在C语言的学习中,char的用法你知道哪些呢,今天店铺就跟你们详细介绍下c语

言中bit的用法,希望对你们有用。

c语言中bit的用法:bit和sbit都是C51扩展的变量类型

bit和int char之类的差不多,只不过char=8位, bit=1位而已。都是变量,编译器

在编译过程中分配地址。除非你指定,否则这个地址是随机的。这个地址是整个可寻址空

间,RAM+FLASH+扩展空间。bit只有0和1两种值,意义有点像Windows下VC中的

BOOL。

sbit是对应可位寻址空间的一个位,可位寻址区:20H~2FH。一旦用了sbi xxx =

REGE^6这样的定义,这个sbit量就确定地址了。sbit大部分是用在寄存器中的,方便对

寄存器的某位进行操作的。

c语言中bit的用法:bit位标量

bit位标量是C51编译器的一种扩充数据类型,利用它可定义一个位标量,但不能定

义位指针,也不能定义位数组。它的值是一个二进制位,不是0就是1,类似一些高级语

言中的Boolean类型中的True和False。

c语言中bit的用法:sfr特殊功能寄存器

sfr也是一种扩充数据类型,点用一个内存单元,值域为0~255。利用它可以访问51

单片机内部的所有特殊功能寄存器。如用sfr P1 = 0×90这一句定P1为P1端口在片内的

寄存器,在后面的语句中我们用以用P1 = 255(对P1端口的所有引脚置高电平)之类的语

句来操作特殊功能寄存器。

sfr P1 = 0×90; //定义P1 I/O 口,其地址90H

sfr 关键定后面是一个要定义的名字,可任意选取,但要符合标识符的命名规则,名字最好

有一定的含义如P1 口可以用P1 为名,这样程序会变的好读好多.等号后面必须是常数,不允

许有带运算符的表达式,而且该常数必须在特殊功能寄存器的地址范围之内(80H-FFH),具

体可查看附录中的相关表.

sfr 是定义8 位的特殊功能寄存器而sfr16 则是用来定义16 位特殊功能寄存器,

如8052 的T2 定时器,可以定义为:

sfr16 T2 = 0xCC; //这里定义8052 定时器2,地址为T2L=CCH,T2H=CDH

用sfr16 定义16 位特殊功能寄存器时,等号后面是它的低位地址,高位地址一定要位于

理低位地址之上.注意的是不能用于定时器0 和1 的定义.

sbit 可定义可位寻址对象.如访问特殊功能寄存器中的某位.其实这样应用是经常要

用的如要访问P1 口中的第2 个引脚P1.1.我们可以照以下的方法去定义:


本文标签: 地址 功能 用法