keil编程时sbit的意义及用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keil编程时sbit的意义及用法相关的知识,希望对你有一定的参考价值。

如题,keil 编程时sbit的意义及用法。例如,sbit LED=P0^6;这一句是什么意思?有什么用?还有,为什么这一句要写在main函数的前面?

    keil编程时sbit的意义及用法:

    定义 P0.6为LED ,程序中的P0.6都用LED表明 。

    是编译器不识别P0.6(P0.6用P^6表明)。

    用LED程序比较易读,知道这个口是接1个LED。

    sbit是C51扩展的变量类型。

    典型应用是sbit P0_0=P0^0://即定义P0_0为P0口的第1位,以便进行位操作。

    sbit一定要写在MAIN函数前面,不然主函数里不识别未定义的这些。

    Keil C51简介:

    是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。

    与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

    Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。

    运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。

    如果使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

    sbit简介:

    是定义特殊功能寄存器的位变量。

    bit和sbit都是C51扩展的变量类型。

    典型应用是:sbit P0_0=P0^0;//即定义P0_0为P0口的第1位,以便进行位操作。

    bit和int char之类的差不多,只不过char=8位,bit=1位而已。

    都是变量,编译器在编译过程中分配地址。

    sbit的用法:

    sbit 位变量名=地址值。

    sbit 位变量名=SFR名称^变量位地址值。

    sbit 位变量名=SFR地址值^变量位地址值。

参考技术A sbit是定义一个变量类型,而P0^6则是单片机上的6号IO口管脚
如果程序中只是使用P0^6、P0^1、P0^3这种写法,很可能就记不住每个管脚都是什么功能的了,所以把P0^6定义成LED,就是为了方便记忆和明确——P0^6链接的是一个LED设备,而不是其他的什么

sbit LED=P0^6
所以就用这种格式将P0^6这个管脚定义成LED变量,这样在程序中使用LED这个变量和直接使用P0^6是一样的效果

至于为什么写在main前面,这么说吧,程序是从main开始运行的,在它运行之前,你要告诉它要做哪些前期准备工作(比如你和朋友一起到饭店吃饭前要先点菜吧,你是想好吃什么再点快呢,还是拿了菜单再边想边点快?),所以一般写在main前面就是先告诉程序,运行时要用到LED这个东西,你先准备好~~

如果你不写在main前面也是可以的,这就是全局变量和局部变量的问题了,说白了就是LED这道菜你是打算点了自己吃,还是和大家一起吃……
参考技术B sbit是定义一个变量类型,而P0^6则是单片机上的6号IO口管脚
如果程序中只是使用P0^6、P0^1、P0^3这种写法,很可能就记不住每个管脚都是什么功能的了,所以把P0^6定义成LED,就是为了方便记忆和明确——P0^6链接的是一个LED设备,而不是其他的什么

sbit LED=P0^6
所以就用这种格式将P0^6这个管脚定义成LED变量,这样在程序中使用LED这个变量和直接使用P0^6是一样的效果

至于为什么写在main前面,这么说吧,程序是从main开始运行的,在它运行之前,你要告诉它要做哪些前期准备工作(比如你和朋友一起到饭店吃饭前要先点菜吧,你是想好吃什么再点快呢,还是拿了菜单再边想边点快?),所以一般写在main前面就是先告诉程序,运行时要用到LED这个东西,你先准备好~~

如果你不写在main前面也是可以的,这就是全局变量和局部变量的问题了,说白了就是LED这道菜你是打算点了自己吃,还是和大家一起吃……

c51编程中sbit 和bit有啥区别

如上。请高手回答,谢谢。

首先,bit和sbit都是C51扩展的变量类型
sbit一般用来定义特殊功能寄存器的位变量,以方便对寄存器的某位进行操作的
例如:sbit TXD=P3^0; 这样就定义了TXD为位变量,并且这个sbit量有确定的地址
bit则与一般的变量差不多,只不过bit定义的变量只有两种值存在0或是1
例如:bit p=0;编译器在编译过程将分配地址,所分配的地址是随机的
参考技术A sbit用于定义可位寻址字符型变量
bit应该是位变量
参考技术B http://zhidao.baidu.com/question/72536362.html 参考技术C sbit用于声明可位寻址字符型变量(例如特殊功能寄存器)的某些位。
bit用于声明位变量。本回答被提问者采纳

以上是关于keil编程时sbit的意义及用法的主要内容,如果未能解决你的问题,请参考以下文章

RECT的意义及用法

我的keil软件为啥写程序时就include变蓝,其余的像sbit,void等关键字都不变蓝

python中 的意义及用法

JavaSE基础 数组 面向对象编程理解部分关键字的解释及用法

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

sys.argv的意义及用法