sbit在单片机中的表示和作用?

如题所述

位定义,如 sbit a=P0^0; 就表示a代表P0^0口。

a=1; P0^0口就输出高电平,sbit就是s位,代表二进制数的多少位,在单片机里面一般有8位和16位立即数和地址。

位定义:

sbit led=P1^1;

//LED灯接在P1.1口

扩展资料:

注意事项

在C语言里,如果直接写P1.0,C编译器并不能识别,而且P1.0也不是一个合法的C语言变量名,所以得给它另起一个名字。

sbit的用法有三种: 

1、sbit 位变量名=地址值 

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

3、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一类的名字,只要下面程序中也随之更改就行了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-01

位定义,如sbita=P0^0;假设a是P0^0。

=1;P0^0端口上输出的高级位,sbit就是sbit,表示二进制数的位数,在单片机中一般拷贝有8位和16位的直接数字和地址。

一个定义:

SbitledP1=^1;

//LED灯连接到P1.1端口

扩展资料:

注意事项

在C语言中,如果直接编写P1.0,C编译器不会识别它,而且P1.0不是有效的zhidaoC变量名,因此必须给它一个不同的名称。

sbit有三种用途:

1.Sbit变量名=地址值

2.sbit位变量名=SFR名^变量位地址值

3.sbit位变量名=SFR地址值^可变位地址值

例如:PSW中的OV可以通过以下三种方法定义:sbitOV=0xd2

1.说明:0xd2是OV的位地址值,sbit OV=PSW^2

2.说明:PSW必须先用SFR定义sbitOV=0xD0^2

3.描述:0xD0是PSW的地址值

所以SFRP1_0等于P1的0次方;即使您定义了代表P1.0pin的符号P1_0,您也可以将它命名为P10,只要您在下面的程序中更改它。

本回答被网友采纳
第2个回答  推荐于2017-10-05
在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一类的名字,只要下面程序中也随之更改就行了。

参考资料:http://baike.baidu.com/view/4394144.htm#sub4394144

本回答被提问者采纳
第3个回答  2011-04-17
sbit就是s位,代表二进制数的多少位,在单片机里面一般有8位和16位立即数和地址。
第4个回答  2011-04-17
位定义,
sbit led=P1^1;
//LED灯接在P1.1口