• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

51单片机

luohaiyang 2018-10-28 浏览量:628
sbit和sfr的区别?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • sfr的对象,只能是寄存器。我们知道51的寄存器基本上都是8位的。

    所以sfr的对象就是字节型寄存器

    有些寄存器允许按位访问,sbit就是用来指向寄存器中的某一位的。

    比如:

    sfr P1 = 0x90; //把0x90地址的寄存器命名为P1

    sbit P1_1 = P1^1;


    • 发布于 2018-10-28
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:12
  • 一个是对IO口的每一个引脚进行位操作,一个是对寄存器进行操作!
    • 发布于2018-10-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 简单说,一个是定义内部寄存器使用,一个是定义内部寄存器的某一个位。

    • 发布于2018-10-28
    • 举报
    • 评论 0
    • 0
    • 0

  • sbit是位操作,sfr是特殊功能寄存器,比如定义p0口的地址
    • 发布于2018-10-28
    • 举报
    • 评论 0
    • 0
    • 0

  • sbit是位操作时用的。

    sfr是寄存器的名字

    • 发布于2018-10-28
    • 举报
    • 评论 0
    • 0
    • 0

  • sbit是位寻址的,sfr是特殊功能寄存器,是字节寻址的。
    • 发布于2018-10-29
    • 举报
    • 评论 0
    • 0
    • 0

  • sbit是位带操作,通常用于取寄存器的一位进行读写,而sfr是定义一个直接指向特殊功能寄存器的变量。

    • 发布于2018-10-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 1.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大部分是用在寄存器中的,方便对寄存器的某位进行操作的。
    2.bit位标量 bit位标量是C51编译器的一种扩充数据类型,利用它可定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是0就是1,类似一些高级语言中的Boolean类型中的True和False。
    3.sfr特殊功能寄存器 sfr也是一种扩充数据类型,点用一个内存单元,值域为0~255。利用它可以访问51单片机内部的所有特殊功能寄存器。如用sfr P1 = 0x90这一句定P1为P1端口在片内的寄存器,在后面的语句中我们用以用P1 = 255(对P1端口的所有引脚置高电平)之类的语句来操作特殊功能寄存器。 sfr P1 = 0x90; //定义P1 I/O 口其地址90H sfr 关键定后面是一个要定义的名字可任意选取但要符合标识符的命名规则名字最好有一定的含义如P1 口可以用P1 为名这样程序会变的好读好多.等号后面必须是常数不允许有带运算符的表达式而且该常数必须在特殊功能寄存器的地址范围之内(80H-FFH)具体可查看附录中的相关表. sfr 是定义8 位的特殊功能寄存器而sfr16 则是用来定义16 位特殊功能寄存器 如8052 的T2 定时器可以定义为: sfr16 T2 = 0xCC; //这里定义8052 定时器2地址为T2L=CCHT2H=CDH
    • 发布于2018-10-30
    • 举报
    • 评论 0
    • 0
    • 0

  • sbit是一种位操作,而sfr是一个特殊功能寄存器
    • 发布于2018-11-16
    • 举报
    • 评论 0
    • 0
    • 0

  • sbit是一个位操作代码,但是sfr是一个特殊的功能寄存器
    • 发布于2018-11-25
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

51单片机