#include <reg51.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
void main()
{
uint8 j = 0;
uint16 i;
while(1)
{
P3 = ~(0x01 << j++);
for(i = 0;i< 20000;i++);
if(8 == j)
{
j = 0;
}
}
}
其中“P3 = ~(0x01 << j++);” 这一行为什么要用~ 用了的话不是应该亮的灯反而灭了,其他灯全亮了吗?? 比如左移一位时:P3=11111101