永发信息网

我想实现LED灯循环左移,可是只循环了一次 ,就不循环了,求大神指教,程序如下:

答案:3  悬赏:40  手机版
解决时间 2021-11-12 13:59
  • 提问者网友:骨子里的高雅
  • 2021-11-11 15:46
我想实现LED灯循环左移,可是只循环了一次 ,就不循环了,求大神指教,程序如下:
最佳答案
  • 五星知识达人网友:轮獄道
  • 2021-11-11 15:54
你好!!
    for(i=8;i>0;i--)   // 这里的循环是错的,应该是 i--;
    {
    }
    i=8;               // 循环退出后,i 重新赋值 8        
修改后的完整代码:
#include 
void delay(unsigned int t);
void main(void)
{
unsigned char i;

while(1)
{
delay(5000);
P1=0xfe;

for(i=8;i>0;i--)
{
delay(5000);
P1<<=1;
P1=P1|0x01;
}
i=8;
P1=0xFE;
}
}
void delay(unsigned int t)
{
while(--t);
}追问太感谢了,方便留下扣扣,以后向您请教吗?追答满意请采纳,私信联系吧
全部回答
  • 1楼网友:污到你湿
  • 2021-11-11 17:19
for循环的判断条件错了
i++之后永远出不了循环,不能给P1重新赋值,所以只有一次追问3Q!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯