能把程序中的两个 while 的作用都运行起来吗,我只能运行第一个,第二个不行。怎么改能把两个的作用都发挥出来,效果是 8个灯从外向内逐一点亮#include<> #include<> #include<> delay() { long i; for(i=1;i<40000;i++); } main() { unsigned char output=0x80; while(1) { while(1) { P1=output; delay(); output>>=1; output&=0xf0; if(output==0xf0)output=0x80; } while(1) { P1=output; delay(); output<<=1; output&=0x0f; if(output==0x0f)output=0x01; }}} 回答:3 人气:11 解决时间:2009-10-25 12:09 好评率: 0% 呵呵,你那样写第一个 while 跳不出,误以为是两段代码同时工作吧?帮你改了你那个程序,但是那样的话效果不是同时往中间亮,而是一边先亮到中间,再是另一边亮到中间 while(1) { loop: while(1) { P1=output; delay(); output>>=1; output&=0xf0; if(output==0xf0){ output=0x01 ; break; }} while(1) { P1=output; delay(); output<<=1; output&=0x0f; if(output==0x0f) { output=0x80 ; goto loop; }}}以上代码冗余度
流水灯_单片机C程序_初学者 来自淘豆网m.daumloan.com转载请标明出处.