c语言中bit的用法

c语言中bit的用法

C语言作为一门新型高级编程语言,在计算机软件编程中具有较为广泛的应用和实现。下面就跟你们详细介绍下c语言中bit的用法,希望对你们有用。

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

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语言的优点介绍

1、简洁紧凑、灵活方便

C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

2、运算符丰富

C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

3、数据类型丰富

C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。

4、表达方式灵活实用

C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。它语法限制不太严格,程序设计自由度大,如对整型量与字符型数据及逻辑型数据可以通用等。

5、允许直接访问物理地址,对硬件进行操作

由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。

6、生成目标代码质量高,程序执行效率高

C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编程序生成的目标代码效率低10%~20%。

7、可移植性好

C语言在不同机器上的C编译程序,86%的代码是公共的,所以C语言的编译程序便于移植。在一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行。

8、表达力强

C语言有丰富的数据结构和运算符。包含了各种数据结构,如整型、数组类型、指针类型和联合类型等,用来实现各种数据结构的运算。C语言的运算符有34种,范围很宽,灵活使用各种运算符可以实现难度极大的运算。

C语言能直接访问硬件的物理地址,能进行位(bit)操作。兼有高级语言和低级语言的许多优点。

它既可用来编写系统软件,又可用来开发应用软件,已成为一种通用程序设计语言。

另外C语言具有强大的*形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。

c语言中bit的用法

转载请注明出处记得学习 » c语言中bit的用法

学习

建国大业感悟

阅读(152)

本文为您介绍建国大业感悟,内容包括建国大业感悟心得体会,建国大业感悟50字,建国大业感悟启示。建国大业感悟一、观后感的格式第一部分,由观而引出感,这开头部分就好比一条醒目的标语或引子一样,先交待清楚看了什么影片,有什么感想。一般来

学习

省内就医算异地就医吗

阅读(116)

本文为您介绍省内就医算异地就医吗,内容包括本省就医属于异地就医吗,省内异地就医和当地就医报销比例,省内异地就医即时结算什么意思。省内就医算异地就医吗省内就医算异地就医吗。异地就医可以简单定义为参保人在其参保统筹地区以外发

学习

范仲淹赈灾兴利阅读答案

阅读(159)

本文为您介绍范仲淹赈灾兴利阅读答案,内容包括范仲淹赈灾兴利的原文及翻译,范仲淹赈灾兴利的翻译,范仲淹赈灾。范仲淹赈灾兴利灾荒与经济萧条,是有人类以来挥之不去的噩梦。而诗人范仲淹主政浙西时,就发生了波及整个江浙一带的严重灾荒。

学习

肥牛酸菜金针菇的做法

阅读(116)

本文为您介绍肥牛酸菜金针菇的做法,内容包括肥牛酸菜金针菇的做法大全,肥牛金针菇酸菜做法,上汤肥牛酸菜金针菇。肥牛酸菜金针菇的做法酸菜肥牛金针菇牛肉的做法大全的常见菜!那么肥牛酸菜金针菇的做法步骤是怎样子的呢?下文就由来为大家

学习

冲破黑暗的励志句子

阅读(132)

本文为您介绍冲破黑暗的励志句子,内容包括黎明前的黑暗励志句子,100句穿透人心格言短句,冲破黑暗坚持不懈的励志句子。冲破黑暗的励志句子(精选175句)在平凡的学习、工作、生活中,大家都看到过许多经典的句子吧,句子由词或词组部分和语调所

学习

雄鸡一唱天下白李贺

阅读(100)

本文为您介绍雄鸡一唱天下白李贺,内容包括雄鸡一唱天下白现代诗句,雄鸡一唱天下白李贺全诗,李贺为什么要写雄鸡一唱天下白。雄鸡一唱天下白李贺在日常学习、工作抑或是生活中,许多人都接触过一些比较经典的古诗吧,古诗是中文独有的一种文

学习

观察芸豆生长过程日记

阅读(101)

本文为您介绍观察芸豆生长过程日记,内容包括芸豆整个生长周期多长时间,芸豆生长的最佳温度是多少,芸豆发芽观察日记。芸豆的生长小学日记(通用55篇)一天的时间即将结束了,一定有不少感想,让我们一起认真地写一篇日记吧。日记怎么写才不会千

学习

父亲接送我上下学作文

阅读(141)

本文为您介绍父亲接送我上下学作文,内容包括父亲接送上学的文案,父母每天接送我上下学的感恩作文,冒雨接送我放学的作文。父亲的接送作文在日常学习、工作抑或是生活中,大家总免不了要接触或使用作文吧,借助作文人们可以实现文化交流的目

学习

如何快速找到电路中的短路

阅读(153)

本文为您介绍如何快速找到电路中的短路,内容包括怎么用烧机法检测电路短路故障,电路短路怎么排除故障,墙壁插座短路故障如何排除。怎样快速排除电路的短路故障?短路是指电路或电路中的一部分被短接,如负载与电源两端被导线连接在一起,就

学习

过于造句

阅读(102)

本文为您介绍过于造句,内容包括过于的意思造句,过于解释词语,用无过于造句。过于的解释及造句造句指懂得并使用字词,按照一定的句法规则造出字词通顺、意思完整、符合逻辑的句子。依据现代语文学科特征,可延伸为写段、作文的基础,是学生写

学习

路面硬化施工合同

阅读(106)

本文为您介绍路面硬化施工合同,内容包括路面硬化施工合同范本,路面硬化施工合同质保期,混凝土路面硬化施工合同。路面硬化施工合同随着时间的推移,人们运用到合同的场合不断增多,签订合同可以明确双方当事人的权利和义务。那么问题来了,到

学习

大蒜头的腌制方法

阅读(108)

本文为您介绍大蒜头的腌制方法,内容包括大蒜头的腌制方法和配方,大蒜腌制方法,大蒜头最好的腌制方法。大蒜头的腌制方法大蒜,多年生草本植物,百合科葱属。辛辣,有刺激性气味,可食用或供调味,亦可入药。大蒜有抗菌消炎的作用,可保护肝脏、调节

学习

整10的加减法教案

阅读(100)

本文为您介绍整10的加减法教案,内容包括分数除以整数教案,分数除以整数知识点整理,分数乘整数教案人教版。整数乘以分数的教案(精选7篇)作为一名为他人授业解惑的教育工作者,时常需要编写教案,教案是教学蓝图,可以有效提高教学效率。那要怎么

学习

成都东软学院

阅读(126)

本文为您介绍成都东软学院,内容包括成都东软学院吧,成都东软学院位置,成都东软学院几本。成都东软学院学院主要指门类科目较少、专业性强的高等教育机构。学院可以作为独立的学校,同时很多大学也拥有自己下属的二级学院(与系相同)或普通高

学习

中班语言瓜瓜吃瓜公开课

阅读(97)

本文为您介绍中班语言瓜瓜吃瓜公开课,内容包括幼儿园中班语言教案《瓜瓜吃瓜》,中班手指游戏瓜瓜花教案,瓜瓜吃瓜教案。幼儿园中班语言教案《瓜瓜吃瓜》在教学工作者开展教学活动前,通常需要用到教案来辅助教学,教案是实施教学的主要依据,

学习

c语言指针是什么意思

阅读(122)

本文为您介绍c语言指针是什么意思,内容包括C语言的指针类型详解,c语言指针类型总结,c语言中指针如何使用。C语言的指针类型详解C语言的指针类型包括两方面的信息:一是地址,存放在指针变量中;二是类型信息,关乎于读写的长度,没有存储在指针变

学习

小班语言教案小草青青故事

阅读(116)

本文为您介绍小班语言教案小草青青故事,内容包括小草青青教案(精选),小草青青科学教案,小草青青幼儿园教案反思。小草青青教案(精选7篇)作为一位优秀的人民教师,时常要开展教案准备工作,教案有助于顺利而有效地开展教学活动。教案要怎么写呢?以

学习

小班语言啪啦啪啦砰的反思

阅读(108)

本文为您介绍小班语言啪啦啪啦砰的反思,内容包括啪啦啪啦——砰中班语言活动教案,中班噼里啪啦教案,中班语言吧嗒吧嗒教案。啪啦啪啦——砰中班语言活动教案作为一名默默奉献的教育工作者,通常需要用到教案来辅助教学,教案有助于学生理解

学习

啪啦啪啦嘭中班语言教案和评语

阅读(214)

本文为您介绍啪啦啪啦嘭中班语言教案和评语,内容包括中班语言优质教案《啪啦啪啦——砰》(精选),中班语言活动啪啦啪啦嘭课件,中班语言活动啪啦啪啦砰绘本反思。中班语言优质教案《啪啦啪啦——砰》(精选12篇)作为一名人民教师,常常要根据教

学习

中班语言活动啪啦啪啦教案

阅读(125)

本文为您介绍中班语言活动啪啦啪啦教案,内容包括啪啦啪啦——砰中班语言活动教案,啪啦啪啦砰教案,啪啦啪啦砰教案反思。啪啦啪啦——砰中班语言活动教案作为一名默默奉献的教育工作者,通常需要用到教案来辅助教学,教案有助于学生理解并掌

学习

小班语言我的本领大教案反思

阅读(140)

本文为您介绍小班语言我的本领大教案反思,内容包括小班语言我的本领大教案,小乌龟学本领小班体育教案,谁的本领大小班教案。小班语言我的本领大教案作为一名教职工,通常需要用到教案来辅助教学,教案是教学活动的总的组织纲领和行动方案。

学习

谈时间梁实秋语言风格

阅读(134)

本文为您介绍谈时间梁实秋语言风格,内容包括谈时间梁实秋,时间与生命梁实秋完整版,梁实秋的经典散文时间即生命。谈时间梁实秋在时间面前我们似奴仆,似乎如何英勇的人遇上它也得俯首称臣。下面是为大家收集的谈时间梁实秋,希望对大家有所