1.与或计算:
1.或操作
任何值与0相或,保持原值,任何值与1相或,结果为1
假设此寄存器命名为JCN。
寄存器JCN的当前值为0xXX,要将第5位置1。
0xXX: ???? ????(由于不知道这个寄存器的本身的值,所以在这里用符号?代替)
寄存器:???? ???? 与 0010 0000相或 用代码表达:JCN |=0x20;
在程序设计中的具体操作:
寄存器 |=__;
代码展示:
//将寄存器P1DIR的第5位置1
P1DIR |= 0x20;
2.与操作
任何值与1相与,保持原值,任何值与0相与,结果为0
假设此寄存器命名为JCN。
寄存器JCN的当前值为0xXX,要将第5位清0
0xXX: ???? ????(由于不知道这个寄存器的本身的值,所以在这里用符号?代替)
寄存器:???? ???? 与 0010 0000相与 用代码表达:JCN &= ~0x20;
~:取反
其实相当于???? ????与1101 1111相与,至于为什么要取反?是为了下面写代码的方便。
在程序设计中的具体操作:
寄存器 &=~__;
代码展示:
//将寄存器P1SEL的第5位清0
P1SEL &= ~0x20;
简便计算:
上述代码可以不用采用二进制转化十六进制的方法:
用<<或者>>代替,表示往左移或者往右移。
3.CC2530 相关寄存器:
CC2530采用QFN40封装,有40个引脚,有21个数字I/O端口,其中P0和P1是8 个引脚,P2有5个可以使用,可配置为通用I/O端口,或外部设备I/O。 输入端口具备上拉或下拉能力。 每个I/O端口都以配置成外围中断源的输入引脚。
P1_0和P11具没有上拉/下拉能力。
P1_0和P1_1具备20mA高驱动输出,其余I/O引脚是4mA的驱动能力。
常用寄存器:
1.PxSEL:端口功能选择,设置端口是通用I/O还是外设功能端口。
2.PxDIR:作为通用I/O时,用来设置数据的传输方向。
3.PxINP:作为通用输入端口时,选择输入模式是上拉、下拉还是三态。
4.Px:数据端口,用来控制端口的输出或获取端口的输入。