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地址值^变量位地址值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-27
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这道菜你是打算点了自己吃,还是和大家一起吃……本回答被网友采纳
第2个回答  2017-07-30
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这道菜你是打算点了自己吃,还是和大家一起吃……
相似回答