一个简单程序,不知道问题出在哪里,求救啊
#include"reg52.h"
void main()
{
int j=1;
P1=0xfe;
if(P1^j==0)
P1=0xfd;
while(1);
}
运行后P1口的值为什么不是0Xfe;
[解决办法]
P1=0XFD?
忘了^是相同为1还是不同为1
这个P1你悬空了还是接有外部电路,如果不是和你想想的一样或许是有电平输入进来了
[解决办法]
我怎么觉得端口P1都没有定义呢?是不是需要定义一下
[解决办法]
^是等同于& ?
[解决办法]
如果^是等同于&的话,条件if(P1^j==0)满足,执行 P1=0xfd; 了
[解决办法]
你的程序里写的是P3吧……
然后在里面还将P3.4定义成了LED的控制
是在实物上进行调试的吗?有没有试过万用表测量按键按下后,P3对应位的电平是否拉低,在没有按键按下的时候,对应位是否保持在高电平,这根P3端口的推挽或是开漏设置有关的,也直接影响到工作效果
[解决办法]
既然定义了 int j=1;
为何不直接使用 if(P1^1==0),不知道P1^j这种写法有没有问题