c语言中bit和sbit的区别哪些

c语言中bit和sbit的区别哪些

C语言作为一门新型高级编程语言,在计算机软件编程中具有较为广泛的应用和实现。下面给大家整理了c语言中bit和sbit的区别,供大家参阅。

c语言中bit和sbit的区别哪些1

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 类型的变量ib

int 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 可以用以下三种方法:

sbit OV=0xd2 (1)说明:0xd2 是OV 的位地址值

sbit OV=PSW^2 (2)说明:其中PSW 必须先用sfr 定义好

sbit OV=0xD0^2 (3)说明:0xD0 就是PSW 的地址值

因此这里用sfr P1_0=P1^0;就是定义用符号P1_0 来表示P1.0 引脚,如果你愿意也可以起P10 一类的'名字,只要下面程序中也随之更改就行了。

4.sfr16 16位特殊功能寄存器

sfr16占用两个内存单元,值域为0~65535。sfr16和sfr一样用于操作特殊功能寄存器,所不同的是它用于操作占两个字节的寄存器,好定时器T0和T1。

5.sbit可录址位

sbit同位是C51中的一种扩充数据类型,利用它可以访问芯片内部的RAM中的可寻址位或特殊功能寄存器中的可寻址位。如先前我们定义了

sfr P1 = 0×90; //因P1端口的寄存器是可位寻址的,所以我们可以定义

sbit P1_1 = P1^1; //P1_1为P1中的P1.1引脚

//同样我们可以用P1.1的地址去写,如sbit P1_1 = 0×91;

这样我们在以后的程序语句中就可以用P1_1来对P1.1引脚进行读写操作了。通常这些可以直接使用系统提供的预处理文件,里面已定义好各特殊功能寄存器的简单名字,直接引用可以省去一点时间,我自己是一直用的。当然您也可以自己写自己的定义文件,用您认为好记的名字。

c语言中bit和sbit的区别哪些2

bit和sbit这两者不是C语言里面的,而是C51里面的;

bit和sbit的区别在于两者功能不同,具体如下:

bit是变量类型,相当于boot 只占一个位,最多可定128个bit变量,而sbit是给可位寻址的变量的某一个位定个别名,不另占空间;

扩展资料:

bit定义:

比特是英文 binary digit的缩写,比特是表示信息的最小单位,是二进制数的一位包含的信息或2个选项中特别指定1个的需要信息量,一般来说,n比特的信息量可以表现出2的n次方种选择;

sbit定义:

sbit是定义特殊功能寄存器的位变量,bit和sbit都是C51扩展的变量类型,应用如sbit P0_0=P0^0;//即定义P0_0为P0口的第1位,以便进行位操作,bit和int char之类的差不多,只不过char=8位, bit=1位而已,都是变量,编译器在编译过程中分配地址;

c语言中bit和sbit的区别哪些

转载请注明出处我优求知网 » c语言中bit和sbit的区别哪些

学习

英语四级作文的常用句型

阅读(38)

本文为您介绍英语四级作文的常用句型,内容包括四级英语作文万能句型,四级作文高级句型。在日常学习、工作或生活中,许多人都写过作文吧,作文是从内部言语向外部言语的过渡,即从经过压缩的简要的、自己能明白的语言,向开展的、具有规范语法结

学习

患盗论的文言文翻译

阅读(134)

本文为您介绍患盗论的文言文翻译,内容包括太宗论盗文言文翻译,制盗有术文言文翻译。在我们平凡的学生生涯里,大家或多或少都接触过一些文言文吧?文言文是与骈文相对的,奇句单行,不讲对偶声律的散体文。你还记得哪些经典的文言文呢?下面是帮大

学习

电脑变wifi怎么设置

阅读(83)

本文为您介绍电脑变wifi怎么设置,内容包括电脑怎么可以变成wifi,电脑怎么设置wifi密码。现在上网的人越来越多了,手机上网是必不可少的,流量费也越来越高,用wifi倒是个不错的选择,但wifi并不是什么地方都有,而别人的'wifi往往有密码,不会随便

学习

诗经中最唯美的句子

阅读(71)

本文为您介绍诗经中最唯美的句子,内容包括诗经中最唯美的句子讲解,诗经中最唯美的句子适合取小名。诗词是阐述心灵的文学艺术,而诗人、词人则需要掌握成熟的艺术技巧,并按照严格韵律要求,用凝练的语言、绵密的章法、充沛的情感以及丰富的意

学习

虚伪的反义词

阅读(95)

本文为您介绍虚伪的反义词,内容包括虚伪的反义词是什么,虚伪的反义词是什么三年级。反义词就是两个意思相反的词,包括:绝对反义词和相对反义词。分为成对的意义相反、互相对立的词。以下是帮大家整理的虚伪的反义词,仅供参考,欢迎大家阅读。

学习

My Winter Vacation Plans初中英语作文

阅读(125)

本文为您介绍My Winter Vacation Plans初中英语作文,内容包括mywintervacation,mywintervacationplans英语作文。在我们平凡的日常里,大家总少不了接触作文吧,借助作文可以宣泄心中的情感,调节自己的心情。那要怎么写好作文呢?下面是精心整

学习

祝福恋人的唯美句子

阅读(46)

本文为您介绍祝福恋人的唯美句子,内容包括祝福恋人的优美句子,祝福女士的唯美句子。在日复一日的学习、工作或生活中,大家或多或少都接触过一些经典的句子吧,根据结构的不同句子可以分为单句和复句。还在苦苦寻找优秀经典的句子吗?以下是为

学习

【实用】校园生活英语作文

阅读(49)

本文为您介绍【实用】校园生活英语作文,内容包括校园生活英语作文带翻译10句话,校园生活英语作文共10篇。在现实生活或工作学习中,大家都跟作文打过交道吧,写作文可以锻炼我们的独处习惯,让自己的心静下来,思考自己未来的方向。那么,怎么去写

学习

形容朋友虚伪的句子

阅读(48)

本文为您介绍形容朋友虚伪的句子,内容包括形容朋友虚伪的句子文案,形容朋友太虚伪的句子。无论在学习、工作或是生活中,许多人对一些广为流传的句子都不陌生吧,句子可分为单句和复句,单句又可分为主谓句和非主谓句。句子的类型多样,你所见过

学习

仰望五星红旗作文

阅读(48)

本文为您介绍仰望五星红旗作文,内容包括仰望五星红旗作文300字,当我仰望五星红旗的时候作文。无论是身处学校还是步入社会,大家都写过作文,肯定对各类作文都很熟悉吧,作文是人们以书面形式表情达意的言语活动。为了让您在写作文时更加简单

学习

杨玉环(杨贵妃)的故事

阅读(61)

本文为您介绍杨玉环(杨贵妃)的故事,内容包括杨玉环的故事,杨贵妃和杨玉环的故事。杨玉环,名讳不详,生卒年不详。唐太宗李世民内宫“四妃”之一,徽号未载,于贞观八年(634年)生太宗第十三子赵王李福。永徽元年,封赵国太妃,随子李福出藩。其后事迹

学习

离骚中最唯美的句子

阅读(93)

本文为您介绍离骚中最唯美的句子,内容包括离骚中最唯美的句子赏析,离骚中最出名的句子。在平时的学习、工作或生活中,大家都接触过很多优秀的句子吧,从语气上分,句子可以分为陈述句、疑问句、祈使句和感叹句。你知道什么样的句子才能算得上

学习

美不需要装饰作文

阅读(43)

本文为您介绍美不需要装饰作文,内容包括美不需要装饰作文800字,写本质美不需要装饰的作文。在平时的学习、工作或生活中,大家对作文都再熟悉不过了吧,借助作文可以提高我们的语言组织能力。如何写一篇有思想、有文采的作文呢?以下是整理的

学习

白鞋子变黄怎么办

阅读(51)

本文为您介绍白鞋子变黄怎么办,内容包括白鞋子变黄怎么办小妙招,洗的白鞋子怎么晒才不会变黄。穿板鞋、帆布鞋等鞋底是橡胶的鞋子,可能会出现鞋底变黄的问题。那么,橡胶鞋底变黄怎么办?首先,我们先了解下鞋底变黄的原因,有可能是鞋子在阳光

学习

id card number的中文是什么意思

阅读(120)

本文为您介绍id card number的中文是什么意思,内容包括idcardnumber是什么意思,idcardnumber的翻译。idcardnumber相信很多人都听说过的,但不一定每个人都知道它的中文是什么意思。为此百分网为大家解释英语idcardnumber的中文意思。

学习

小班语言《小蓝和小黄》教案

阅读(66)

本文为您介绍小班语言《小蓝和小黄》教案,内容包括小蓝和小黄绘本故事教案,幼儿故事小蓝和小黄教案。作为一位无私奉献的人民教师,总不可避免地需要编写教案,编写教案有利于我们科学、合理地支配课堂时间。写教案需要注意哪些格式呢?以下是

学习

蒋干盗书歇后语是什么意思

阅读(50)

本文为您介绍蒋干盗书歇后语是什么意思,内容包括蒋干盗书歇后语下一句,蒋干盗书是什么意思。歇后语是汉语的一种特殊语言形式。是群众在生活实践中所创造的一种特殊语言形式,是一种短小、风趣、形象的语句。下面是为大家收集的蒋干盗书歇

学习

英语方位名词的用法

阅读(124)

本文为您介绍英语方位名词的用法,内容包括英语方位词用法最全总结,英语方位名词有哪些。导语:方位是指方向位置,东、南、西、北为基本方位,东北、东南等为中间方位。下面讲解英语方位名词的用法,欢迎参考!

学习

梦见吃毒药是什么意思

阅读(54)

本文为您介绍梦见吃毒药是什么意思,内容包括梦见毒药是什么意思,梦见孩子喝毒药是什么意思。梦见吃毒药好不好?梦见吃毒药是什么意思呢?下面是精心整理的梦见吃毒药是什么意思,欢迎大家分享。

学习

止损是什么意思

阅读(42)

本文为您介绍止损是什么意思,内容包括止损是什么意思说简单点,止损是什么意思和心理。止损使得以较小代价博取较大利益成为可能。股市中无数血的事实表明,一次意外的投资错误足以致命,但止损能帮助投资者化险为夷。那么,止损是什么意思呢?

学习

梦见捡到玉石是什么意思

阅读(46)

本文为您介绍梦见捡到玉石是什么意思,内容包括梦见喝喜酒是什么预兆,梦见捡到玉石是什么意思周公解梦。你要是梦见捡到玉石是缘由,以下是带来梦见捡到玉石是什么意思的相关内容,希望对你有帮助。

学习

单词land的汉语是什么意思

阅读(107)

本文为您介绍单词land的汉语是什么意思,内容包括单词land怎么读,单词land是什么意思。由于英语单词land看似很简单的,所以有很多人都会忽略掉它的汉语意思。下面我们就来看看英文单词land详细所包含的汉语意思,欢迎大家阅读!