char led,i;while(1){ for(i=0;i<8;i++) { led = (0x80>>i ); P0=~led; }}执行段程序并不是单灯右移但把led = (0x80>>i ); 改为 led = (0x01<<i);却是单灯左移是怎么回事。注:8个灯接P0口 低电平灯亮
不好意思。右移的数据是0x80,所以修改led类型不行,而应该修改这个数的类型才有用。led赋值语句改为: led=(unsigned char)0x80 >> i;