51单片机sbit位定义问题

图片说明
图片说明
1、请问sbit位定义中,^符号是异或操作么
2、我这里用的|和^等价出来的现象是一致的。
3、sbit是位定义,但是地质不可能是一个位,它存储的是最低位比如
sbit led =P2^1 P2为0xA0 那么led只会存储最低位1,请各位指教

^在C51中有两个作用,一个是表示一个地址中可独立寻址的位,P1^0表示P1端口组的0号引脚,也就是P1.0,用在sbit关键字后面,还有一个作用是C语言通用的按位异或,没有sbit关键字的语句中是按位异或。
|是按位进行或运。
sbit定义为一个位,任何非0数赋值给这个位,这个位的值就是1,0赋值给sbit才能得到0^在C51中有两个作用,一个是表示一个地址中可独立寻址的位,P1^0表示P1端口组的0号引脚,也就是P1.0,用在sbit关键字后面,还有一个作用是C语言通用的按位异或,没有sbit关键字的语句中是按位异或。
|是按位进行或运。
sbit定义为一个位,任何非0数赋值给这个位,这个位的值就是1,0赋值给sbit才能得到0

1、不是异或操作,这是头文件里面对寄存器中位的描述。P1^0 就是P1口的第0位。
2、用 | 来写,很怪,sbit定义位是 单片机的固定位。没有见过用 | 的。
3、sbit就是定义一个内存寄存器运行进行位操作的位。bit是定义位变量。