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;
合集:
ZigBee模块(CC2530)
标签:
ZigBee模块(CC2530)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步