2-1将寄存器某位清0或置1
将寄存器的某位清0同时不影响其他位
- 与操作:任何值与1相与,保持原值
任何值与0相与,结果为0
- 例:寄存器TMP的当前值为0x62,要将第2、3、6位清0
0x62: 0110 0010
1011 0011 0x4c: 0100 1100
相与: 0010 0010
用C语言表示:TMP &= ~0x4c
在程序设计中具体操作:
寄存器 &= ?;
0000 0000 --要操作的位置1--> 0100 1100 -- 取反-->1011 0011
寄存器 &= ~0x4c;
例题:
将寄存器P0SEL的第5位,第2位和第0位置1,同时不影响该寄存器的其他位
// 0010 0101 相或置1
即:P0SEL |= 0x25;
将寄存器P1DIR的第6位、第3位和第1位清0,同时不影响该寄存器其他位。
// 1011 0101 相与清0
P1DIR &= 0xb5;