单片机C编程 为什么不能用 P0^0 = 0; 这种语句

单片机C编程 为什么不能用 P0^0 = 0; 这种语句

第1个回答  2010-07-12
没有定义头文件,怎么用啊!

单片机C编程 为什么不能用 P0^0 = 0; 这种语句
为什么不能用 P0^0 = 0 这是因为你的头文件不是自己写的,你也是用的他的标准文件,如果是你自己写的,在头文件中有P0^0的定义是可以的,所以你要用时先必须用sbit定义,在程序的前面定义sbit P0_0=P0^0,这样编译时就不会出现未定义的错误。

求助,51单片机keilC程序问题main(){while(1){P0^0=0;}}
是程序编译的结果不同。P0^0我们认为他是IO口。keil认为他是普通的寄存器的位元件。执行时会当寄存器处理。而不是位。而sbit 定义后。keil才会把他当成特殊位元件。

单片机中 c语言编程 能不能给P0的某一位直接赋值 如P0^0=5
可以的,必须先定义,再用 sbit led=P1^1;led = 0;单个io是只可以负值1或0

c51单片机错误,为什么不可以直接定义P0^0=1 ?
在你的程序中,P0^0=0; 表示什么呢?无法读解,你看左边是个P0和0异或运算,右边是个赋值运算,就不对了。在C51中,需要使用某个io口,需要首先定义这个位变量,才可以用,在前面加上位定义sbit P0_0=P0^0;然后对P0_0这个变量赋值才可以,如:P0_0=0; P0_0=1;...

51单片机c语言sbit的作用是什么
这个叫位定义 就是给P0^0又定义了个名字叫P00。这样在程序中用到P0^0的时候写P00就可以了,这样为的书写方便。如果没有SBIT就成了赋值语句。

C51中可以这样赋值么,P1^0=0?
不可以,因为P0^0表示一位,所以要定义位变量,加关键子sbit.

...led=P1^0可以亮,为什么直接给P1^0=0赋值编译就不通过?
典型应用是:sbit P0_0=P0^0;\/\/即定义P0_0为P0口的第1位,以便进行位操作。在C语言里,如果直接写P1.0,C编译器并 不能识别,而且P1.0也不是一个合法的C语言变量名,所以得给它另起一个名字,这里起的名为P1_0,可是P1_0是不是就是P1.0呢?你这么认 为,C编译器可不这么认为,...

单片机中,P0.0和P0^0意思一样么? 1. SFR P0=0x80h;\/\/0x80H=10000000 2...
两者不是一个意思。SFR P0 = 0x80;这是声明P0特殊寄存器的SFR地址。只有声明了这条语句,编译器才知道P0是什么东西。sbit LED = P0 ^ 0;在前一条声明有效的前提下,编译器才能识别出P0代表着0x80处的SFR,此时才能正确处理本条语句,将LED解析为0x80.0。如果缺少了前一条声明,编译器会告诉你...

单片机中,P0.0和P0^0意思一样么
一样的,只是,P0.0是汇编语言写法,P0^0是C语言中的写法。

单片机C编程sbit指令是什么意思
在单片机C编程中,sbit指令是一个特殊的用途,它用于定义特殊功能寄存器(Special Function Registers, SFR)的位变量。这种指令的主要作用是将特定的硬件引脚映射到程序中的一个位变量,从而简化编程操作并提高代码的可读性和效率。例如,sbit P0_0=P0^0; 这行代码的意义是将P0口的第0位置为P0_0,...

相似回答