msp430输入输出口定义问题,请解释一下下面的程序(每句都要)

问题描述:

msp430输入输出口定义问题,请解释一下下面的程序(每句都要)
if((P1IN&BIT0) == BIT0)
P1OUT |= BIT1;
else
P1OUT &= ^BIT1;

if((P1IN&BIT0) == BIT0)//BIT0位是否1
P1OUT |= BIT1;//BIT0为1,则BIT1位输出1
else
P1OUT &= ^BIT1;//BIT0为0,则BIT1位输出0能解释下这句么?怎么判断的(P1IN&BIT0) == BIT0//BIT0位是否1#define BIT0 0x01//定义BITO为第一位P1IN & BIT0 就相当于 P1IN & 0x01如果P1IN为XXXX XXX1 那么 P1IN&0x01 就等于 0x01 所以 P1IN的第一位就等于1啦如果P1IN为XXXX XXX0 那么 P1IN&0x01 就等于 0x00 所以 P1IN的第一位就不等于1啦要判断第二位就是 #define BIT0 0x02要判断第三位就是 #define BIT0 0x04 以此类推~