关于51单片机io口sbit赋值的问题

2025-04-11 18:14:59
推荐回答(3个)
回答1:

你的l1是一个位变量,而a是一个8位的字符型,a=0x40,是第七位为1,你执行把a赋值给l1,得到的是把a的最低位给了位变量l1,所以l1是得0。l1的值要么是1,要么是0。

回答2:

DAT=num&0x80;是逻辑与的结果送DAT,这里由最高位决定。

l1=a; 屏蔽后送最低位。

回答3:

把l1改成P1
0x40 的二进制是 0100 0000
P1^0 只是一个位
P1 有八个io口,即8位,
P1=0X40,就是把 0100 0000 分别赋给P1的八个位