我现在想要这个单片机中原程序上要他左右循坏五遍然后就停下来(熄灯或亮灯都可以)

这个程序已经可以完成流水灯左右来回循坏了,我想他来回五遍后熄灯或全亮灯,谢谢,我是刚入门的小白,希望有师傅多多指点一下
#include <reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar i;
void delay(uint a);
void delay(uint a) // 延时函数,延时a毫秒
{
uint x,y;
for(x=a;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
P0=0xf8;
while(1)
{

// 向左循环点亮LED
for(i=0; i<5; i++)
{
delay(1000);
P0=_crol_(P0,1); // 左移一位,点亮下一位LED

}
// 向右循环点亮LED
for(i=0; i<5; i++)
{
delay(1000);
P0=_cror_(P0,1); // 右移一位,,点亮上一位LED
}
}
}

主程序这样改:
void main()
{
uchar a=5;
P0=0xf8;
while(a--)//原来死循环改为可以退出的
{
// 向左循环点亮LED
for(i=0; i<5; i++)
{
delay(1000);
P0=_crol_(P0,1); // 左移一位,点亮下一位LED
}
// 向右循环点亮LED
for(i=0; i<5; i++)
{
delay(1000);
P0=_cror_(P0,1); // 右移一位,,点亮上一位LED
}
}
while(1);//程序停止于此
}
while语句的用法,while(条件表达式){ 程序段}
条件成立则结果为1,条件不成立则结果为0,
直接写while(1)就不用判断了,条件永远满足,所以就是死循环了
写成while(a--),就是判断a不等于0的话,执行一次大括号里的程序,然后让a=a-1
温馨提示:答案为网友推荐,仅供参考
相似回答