keil编程时sbit的意义及用法
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地址值^变量位地址值。
推荐于2018-02-27
如果程序中只是使用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这道菜你是打算点了自己吃,还是和大家一起吃……
如果程序中只是使用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这道菜你是打算点了自己吃,还是和大家一起吃……