/*设置GPB5~GPB8为输出端口*/
rGPBCON &= ~((3<<10)|(3<<12)|(3<<14)|(3<<16));
rGPBCON |= ~((1<<10)|(1<<12)|(1<<14)|(1<<16));
上面的两条指令的含义:
rGPBDAT = rGPBDAT&(LED1_ON)&(LED2_ON)&(LED3_ON)&(LED4_ON)
分析:为什么不是直接把(LED1_ON)&(LED2_ON)&(LED3_ON)&(LED4_ON)的值赋给寄存器,还要与其本身"&"呢?
原因:因为前面已经知道要想使LED亮,只需要修改GPB5、GPB6、GPB7、GPB8,使它们输出为1.而不能修改其他的寄存器的值
如果直接赋值的话有可能会修改其他的寄存器的值(其他的寄存器有可能正在被使用)。