c语言中bit和sbit的区别

c语言中bit和sbit的区别??

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 = 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.我们可以照以下的方法去定义:(1) sbit 位变量名=位地址sbit P1_1 = Ox91;这样是把位的绝对地址赋给位变量.同sfr 一样sbit 的位地址必须位于80H-FFH 之间.(2) sbit 位变量名=特殊功能寄存器名^位位置sft P1 = 0×90;sbit P1_1 = P1 ^ 1; //先定义一个特殊功能寄存器名再指定位变量名所在的位置,当可寻址位位于特殊功能寄存器中时可采用这种方法(3) sbit 位变量名=字节地址^位位置sbit P1_1 = 0×90 ^ 1;这种方法其实和2 是一样的,只是把特殊功能寄存器的位址直接用常数表示. 在C51存储器类型中提供有一个bdata 的存储器类型,这个是指可位寻址的数据存储器,位于单片机的可位寻址区中,可以将要求可位录址的数据定义为bdata,如:unsigned char bdata ib; //在可位录址区定义ucsigned char 类型的变量ibint bdata ab[2]; //在可位寻址区定义数组ab[2],这些也称为可寻址位对象sbit ib7=ib^7 //用关键字sbit 定义位变量来独立访问可寻址位对象的其中一位sbit ab12=ab[1]^12;操作符”^”后面的位位置的最大值取决于指定的基址类型,char0-7,int0-15,long0-31.

sfr 并标准C 语言的关键字,而是Keil 为能直接访问80C51 中的SFR 而提供了一个新的关键词,其用法是:sfrt 变量名=地址值。2)符号P1_0 来表示P1.0 引脚。在C 语言里,如果直接写P1.0,C 编译器并不能识别,而且P1.0 也不是一个合法的C语言变量名,所以得给它另起一个名字,这里起的名为P1_0,可是P1_0 是不是就是P1.0呢?你这么认为,C 编译器可不这么认为,所以必须给它们建立联系,这里使用了Keil C的关键字sbit 来定义,sbit 的用法有三种:第一种方法:sbit 位变量名=地址值第二种方法:sbit 位变量名=SFR 名称^变量位地址值第三种方法:sbit 位变量名=SFR 地址值^变量位地址值如定义PSW 中的OV 可以用以下三种方法:sbi

c语言中sbit什么意思,c语言中bit和sbit的区别.doc相关推荐

  1. C语言中sbit字节操作方法,c语言中bit和sbit的区别

    c语言中bit和sbit的区别 c语言中bit和sbit的区别: 1.bit和sbit都是C51扩展的变量类型. bit和int char之类的差不多,只不过char=8位, bit=1位而已.都是变 ...

  2. c语言中的printf函数_C语言中的printf()函数与示例

    c语言中的printf函数 C语言中的printf()函数 (printf() function in C) The printf() function is defined in the <s ...

  3. c语言中 amp 的作用,c语言中“amp;amp;”什么意思

    c语言中"&&"什么意思 在c语言中,"&&"是"与"."并且"的意思.它是逻辑运算符, ...

  4. c语言中switch扑克牌花色,c语言中switch的用法

    c语言中switch的用法 c语言中switch的用法的用法如下:C语言还提供了另一种用于多分支选择的switch语句, 其一般形式为:switch(表达式){case 常量表达式1: 语句1;cas ...

  5. php 元旦祝福,简短祝福语八个字 元旦祝福语简短

    简短祝福语八个字 元旦祝福语简短 时间:2020-05-19 10:40:27 1.赛深深愁千万年,忠贞至魂也可去.国死了死了现在又怎么样,只剩下世界上的离骚. 2.我真的很想你,只是看不见你,幸好有 ...

  6. 祝福语大全 计算机,【一到十的祝福语】 从一到十的祝福语_一到十祝福语大全_东城教研...

    一到十的祝福语 一到十的祝福语: 1.一帆风顺 二龙戏珠 三阳开泰 四平八稳 五福临门 六六大顺 七星报喜 八面威风 九九回一十全十美 2.祝你:一生平安 二人同心三生有幸 四季发财 五谷丰登 六畜兴 ...

  7. 计算机老师新年贺卡祝福语,新年贺卡祝老师祝福语精选

    1.新年来了,小黄子在此给你拜年啦,新的一年诸事顺利,吉祥如意,大吉大利啊.2.送走旧年的时候,也送走一年的阴郁,迎来新春的时候,也迎来新的希望.给您拜年啦!3 [查看详细] 2018 老师新年贺卡祝 ...

  8. unity塔防游戏怪物转向_英雄塔防物语下载-英雄塔防物语官方版下载

    英雄塔防物语是一款拥有养成元素的塔防策略游戏,玩家在游戏中可以不断的收集卡牌角色来丰富自己的阵容池,玩家面对不同的关卡可以使用不同的阵容来应对,喜欢的朋友就快来下载英雄塔防物语吧. 英雄塔防物语介绍 ...

  9. 星露谷物语json_《星露谷物语》MAC版MOD使用教程

    导 读 <星露谷物语>MAC版MOD怎么安装使用,不少MAC版玩家为此很苦恼,MAC要怎么才能使用MOD呢,今天小编就为大家带来了星露谷物语MAC版MOD使用教程,还不会的小伙伴赶紧来瞧瞧 ...

最新文章

  1. python三层架构
  2. Dos判断文件夹有没有存在,如果存在删除,不存在创建
  3. Java的scjp_java scjp
  4. 从“冰柜”到“冰棍儿”,下载Github单个文件
  5. 'module' object is not callable
  6. (传送门)JVM的GC日志的主要参数
  7. UIImageView动画
  8. 12.流水线设计方式
  9. redis内存模型及应用解读
  10. 开启本地git权限_Git入门使用和常见操作
  11. Asp.net MVC 填充word并下载
  12. 《教父II:西西里人》 shbp--3
  13. 用pandas分析百万电影数据
  14. splatter包生成单细胞RNA测序数据
  15. 帮你总结疑问句中使用が的所有场景
  16. 儿童编程c语言_5种最适合儿童的编程语言
  17. 悄悄说--一个Swing界面的仿qq聊天软件
  18. 大一大学计算机期末试卷,大一大学计算机基础教程期末考试题
  19. 初创企业墓志铭:创业死亡榜背后的逻辑
  20. 计算机增加独立显卡显卡插,笔记本可以外置显卡吗?笔记本外接台式机独立显卡的方法...

热门文章

  1. archpr 压缩文件暴力破解
  2. archpr速度几百_ElcomSoft产品目录2009 - ELCOMSOFT
  3. ABAddressBook个人使用总结,联系人中、英文排序及中、英文及号码搜索
  4. linux deploy目录形式,安装Linux Deploy
  5. 敏之澳电商:拼多多打造爆款的具体步骤
  6. 走出abstract class与interface的困惑
  7. Docker基础篇 - (六)Docker 网络Spring Boot微服务打包Docker镜像
  8. 看雪安全接入KSA开放内测
  9. 做完近视手术应该注意什么?近视术后护理攻略请你收下
  10. html5实现像素鸟,有趣的Axure案例:像素鸟游戏的设计