-
你这个解释也比较合理。
-
符号的重载?
-
屏蔽某些位倒是挺简单的,只是最开始的时候没有懂为什么不能直接用P1^0,而非得进行位定义。
-
这个解释很合理
-
头文件里有定义P1,没有定义P1^0。至于为什么直接用P1^0编译时不出错就不知道为什么了。在C语言中^这个符号是按位异或运算符。
-
你试试就知道了
-
最后总结:板子的硬件原因,换其他灯都能正常工作。
-
其实最让我不理解就是:关掉电源后重新接上电源,开始的一段时间内是正常工作的,过了一会儿后就又出现两个LED灯同时闪烁的情况。
-
下载指示灯?当然不可能啦
-
额……近这个论坛还没有多久,不了解这些,惭愧啊
-
是这样的,不过怎么没有提示语法错误呢?还有就是位定义的作用我不是很清楚,你能和我讲一下不?谢了!
[ 本帖最后由 若如 于 2011-11-10 00:13 编辑 ]
-
的确不是语法错误。
-
那你还那么多的芯币,羡慕啊。
-
你的这个解释应该是最合理的,谢了!
-
我传上来的这个程序是经过我改正后的,是正确的程序,可是如果把关于P1^0~P1^3的位定义去掉,直接在程序中使用P1^0这种形式程序就不能正常工作了(编译的时候还是不会提示错误)。
-
编译当然可以通过啊,连个warning都没有。
-
我也不知道倒三角符号能不能用,不过我打开的reg52.h文件里定义了P1^0的,我就直接用了,不过程序工作不正常,还是得进行一次位定义后才能使用。不过你说为什么关于定时器的位如TR0,关于中断的位如EA,ET0,EX0这些就可以直接使用呢?
[ 本帖最后由 若如 于 2011-11-9 21:46 编辑 ]
-
刚才试了一下,就算加上括号也不行,非得在前面进行位定义之后再使用才正常。
-
我发上来的程序是正确的,我编写的过程中直接用P1^0这种形式的时程序的运行就不正常了,我不知道是什么原因。为什么不能直接用P1^0而非得在主程序前进行类似sbit line1=P1^0;的位定义,再在程序中使用line1才能使程序工作正常?
-
非常感谢,现在总算明白了。:)