在51单片机中,为什么写P3=P3|0x0f 是错的,而k=P3; k=k|0x0f; P3=k; 却是对的?

在51单片机中,我写代码P3=P3|0x0f ;(P3是端口号)下载进开发板是错的, k=P3; k=k|0x0f; P3=k;用一个变量k来中转一下就没问题,为什么?

第1个回答  2014-03-07
P3=P3|0x0f ;你这个冒号是中文的,编译都不能过
k=P3; k=k|0x0f; P3=k;你这个冒号是英文的,对的
要看你P3口接什么有关系??
第2个回答  2014-03-07
写成P3||0X0f.因为“|'或和”||“是不一样的。
第3个回答  2014-03-07
在51单片机中,我写代码P3=P3|0x0f ;(P3是端口号)下载进开发板是错的, k=P3; k=k|0x0f; P3=k;用一个变量k来中转一下就没问题,为什么?
P3是地址追问

那为什么又能对P3赋值呢,而且用P3来做if中的判断条件也可以,就是这个按位或运算不行

追答

别客气

本回答被提问者和网友采纳
相似回答