C51单片机被定义的值怎么会变了的呢a=0xfe; P1=a为什么不等于P1=0xfe,这两个完全相反呢?#include //包含51单片机寄存器定义的头文件sbit a=0xfe;void main(){while(1){P1=a; //这个值怎么会等于(00000001)?P1=0
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 11:42:28
![C51单片机被定义的值怎么会变了的呢a=0xfe; P1=a为什么不等于P1=0xfe,这两个完全相反呢?#include //包含51单片机寄存器定义的头文件sbit a=0xfe;void main(){while(1){P1=a; //这个值怎么会等于(00000001)?P1=0](/uploads/image/z/11943960-24-0.jpg?t=C51%E5%8D%95%E7%89%87%E6%9C%BA%E8%A2%AB%E5%AE%9A%E4%B9%89%E7%9A%84%E5%80%BC%E6%80%8E%E4%B9%88%E4%BC%9A%E5%8F%98%E4%BA%86%E7%9A%84%E5%91%A2a%3D0xfe%3B+P1%3Da%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E7%AD%89%E4%BA%8EP1%3D0xfe%2C%E8%BF%99%E4%B8%A4%E4%B8%AA%E5%AE%8C%E5%85%A8%E7%9B%B8%E5%8F%8D%E5%91%A2%3F%23include+%2F%2F%E5%8C%85%E5%90%AB51%E5%8D%95%E7%89%87%E6%9C%BA%E5%AF%84%E5%AD%98%E5%99%A8%E5%AE%9A%E4%B9%89%E7%9A%84%E5%A4%B4%E6%96%87%E4%BB%B6sbit+a%3D0xfe%3Bvoid+main%28%29%7Bwhile%281%29%7BP1%3Da%3B+%2F%2F%E8%BF%99%E4%B8%AA%E5%80%BC%E6%80%8E%E4%B9%88%E4%BC%9A%E7%AD%89%E4%BA%8E%EF%BC%8800000001%EF%BC%89%3FP1%3D0)
C51单片机被定义的值怎么会变了的呢a=0xfe; P1=a为什么不等于P1=0xfe,这两个完全相反呢?#include //包含51单片机寄存器定义的头文件sbit a=0xfe;void main(){while(1){P1=a; //这个值怎么会等于(00000001)?P1=0
C51单片机被定义的值怎么会变了的呢a=0xfe; P1=a为什么不等于P1=0xfe,这两个完全相反呢?
#include //包含51单片机寄存器定义的头文件
sbit a=0xfe;
void main()
{
while(1)
{
P1=a; //这个值怎么会等于(00000001)?
P1=0xfe;//这个值怎么会等于(11111110)?
}
}
C51单片机被定义的值怎么会变了的呢a=0xfe; P1=a为什么不等于P1=0xfe,这两个完全相反呢?#include //包含51单片机寄存器定义的头文件sbit a=0xfe;void main(){while(1){P1=a; //这个值怎么会等于(00000001)?P1=0
因为P1=a,且a是一个位变量,位变量非0即1
P1=0Xfe,就是11111110,没错啊
sbit只能定义一个位,是用来进行位操作的。
所以 sbit a =0xfe; a=0x0000 0001
P1的缺省值是0, 所以 P1=a; P1=0x0000 0001
1楼正确。
a是位变量,初始值为1(只要不为0都是1,所以FE也是1)初始值为1,0xfe二进制不就是11111110 是不是按最后那个0为准,如是最后一位的话那不是只输出一个0?前面7位就不算了,但按 #include
全部展开
1楼正确。
a是位变量,初始值为1(只要不为0都是1,所以FE也是1)
收起
一楼是对的。C51是这么规定的
你弄乱了