主程序大致是这样的 flag=0;//记录按键次数While(1){ if(key==0){delayms(20);if(key==0)flag++;}//按键检测if(flag==3)flag=0;if(flag==0){正向流水}else if(flag==1){反向流水}else {间隔流水}}存在问题,由于流水灯执行时间较长,因此对按键响应缓慢,可以在流水灯之间加入按键检测语句,当检测到按键按下时,用break语句退出当前循环