C51单片机被定义的值怎么会变了的呢a=0xfe; P1=a为什么不等于P1=0xfe,这两个完全相反呢?#include //包含51单片机寄存器定义的头文件sbit a=0xfe;void main(){while(1){P1=a; //这个值怎么会等于(00000001)?P1=0
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/24 15:42:53
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是这么规定的
你弄乱了