我的意思是既然在程序中能将P1^0的地址赋给P1.0,那说明计算机能过识别P1^0,那为什么不对他直接操作呢?
但是好像如果不用sbit 这个声明的话就会提示有错误,这又是怎么回事呢
本回答被提问者采纳...P1.0=P1^0这样的语句,为什么不在函数中对P1^0直接操作呢?
" ^ ”貌似只能在sbit语句中使用才表示某个io口的位,否则单独用的时候,会被编译器理解为按位异或。
单片机让一个灯亮sbit led=P1^0可以亮,为什么直接给P1^0=0赋值编译就...
因此这里用sbit P1_0=P1^0;就是定义用符号P1_0来表示P1.0引脚,如果你愿意也可以起P10一类的名字,只要下面程序中也随之更改就行了。
单片机程序中sbit p1_1=P1^0是什么意思?
while(a--); }}sbit是位定义,sbit p1_1=P1^0;是为把P1.0这一位定义成p1_1(相当于一个标识符),在main函数中的p1_1=0; 相当于P1.0=0 ,即P1.0输出低电平。 在函数中不允许对P0~P3口进行为位操作的,故使用前要先进行位定义。 又如:#include<reg52.h>sbit led=P1^0;unsig...
...C语言对单个端口进行操作时,就必须像sbit s=P1^0定义,然后才能借助s...
因为涉及到“^”这个符号的解析问题。在标准C中这是异或运算符,因此在程序段中无法区分你是要做异或运算还是要取位偏移。所以折中的方法就是增加sbit这种特殊声明来将符号绑定到位寻址变量。
51单片问题: sbit P1.0=P1^0; P1.0=1; 为什么是给一个变量赋两次值,有...
是用KEIL软件吗?楼主给出的两个语句,都是错误的:sbit P1.0 = P1^0;P1.0 = 1;不能使用小数点。可以写成:sbit P1_0 = P1^0; \/\/为引脚P1.0指定一个变量名P1_0;P1_0 = 1; \/\/在该引脚输出1。
单片机 初级 流水灯问题求教... sbit led1=P1^0;这句定义为什么不能放在...
指定一个端口P1的0号接脚的别名为led1,不是动态分配内存哦,相当于申明全局变量,全局变量就应当是放在函数之外的,而且,如果编译器支持的话,你也可以试着把它放函数里,C51比C++死板得多,很多就是一个硬性的规定,方便编译器处理,有了规范了才以少出错 ...
单片机c语言 sbit P1_0 = P1 ^ 0;
“^”是取位符号,去P1口的第0位
单片机程序中sbitp1_1=P1^0是什么意思?
在单片机程序中,`sbit p1_1=P1^0;` 这行代码的意思是:1. `sbit` 是一个位定义指令,它用于将特定的I\/O端口的一位定义为一个可以使用的位名称。2. `p1_1` 是定义的位名称,它可以被用作该端口位的代号。3. `P1^0` 表示的是端口1的第0位,即P1.0。在`main` 函数中的代码段:1....
kill编程 为什么P1^0不能赋值,先要sbit 变量=P1^0;然后给变量赋值,这 ...
这是进行位声明,你可以先看其包含的头文件reg52.h或reg51.h就懂为什么了
为什么51单片机编程中P1^0 表示 P1I\/O口里面的0号引脚
如果直接写P1.0,C 编译器并不能识别,而且P1.0 也不是一个合法的C语言变量名,所以得给它另起一个名字,比如P1_0,可是P1_0 是不是就是P1.0呢?C 编译器可不这么认为,所以必须给它们建立联系,这里使用了Keil C的关键字sbit 来定义,sbit 的用法有三种:第一种方法:sbit 位变量名=...