单片机流水灯,为什么这种情况只能循环一次

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

uchar aa,i;
void delay(uint xms){
uint m,n;
for(m=xms;m>0;m--)
for(n=110;n>0;n--);
}

void main(){
aa = 0x01;
while(1){
for(i=0;i<8;i++){
P1 = ~aa;
delay(500);
aa = aa<<1;
}
}

如代码.....我是用
P1 = aa;
delay(500);
aa = _crol_(aa,1); 来实现的。

另外求按键一下,流水灯停止,再按一下,就开始流水亮。只求代码怎么来写

第1个回答  2015-05-05
肯定是一次啊,你的aa每次左移一位,左移完8次之后又没有归 1
第2个回答  2015-05-05
只能循环一次??