msp430扫描键盘设计的问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 06:58:32
程序中有一小段是
np10 = P1IN & BIT0;
np11 = (P1IN & BIT1) >> 1
np12 = (P1IN & BIT2) >> 2
np13 = (P1IN & BIT3) >> 3
它说这就是读取了p1的各个管脚的状态,解释一下谢了

MSP430 C语言中没有提供位操作语句,这点和C51是有区别的。
程序片段中P1IN&BIT0此类语句的目的就是达到对端口的位操作效果。
详细解释下:
P1IN&BIT0:P1.0和1与运算,结果返回1或0;
P1IN&BIT1:P1.1和1与运算,返回10或00,右移运算后(>>1),返回1或0;
P1IN&BIT2:P1.2和1与运算,返回100或000,右移2位后,结果为1或0;
P1IN&BIT3:P1.3和1与运算,返回1000或0000,右移3位,结果为1或0。
这样就可以达到读取各个管脚状态的目的了。