我现在学习标志位,所以用标志位,在你原有程序上加入了a,b两个标志位。IF语句检测b的状态流水灯循环,每循环一次让a自加一。IF语句检测a的状态,加到四变更b状态,b变更流水灯不在循环。
#include <reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar temp,k,a,b;
void delay(uint);
void aaaa();
void bbbb();
void main()
{
b=1; //标志位赋初值
while(1)
{
bbbb();
aaaa();
}
}
void delay(uint x)
{
uint i,j;
for(i=0;i<x;i++)
for(j=0;j<110;j++);
}
void aaaa()
{
if(b==1) //检测标志位状态
{
temp=0Xfe;
for(k=0;k<3;k++)
{
P1=temp;
delay(200);
temp=_crol_(temp,3);
}
temp=0X7f;
for(k=0;k<8;k++)
{
P1=temp;
delay(300);
temp=_cror_(temp,1);
}
}
a++; //标志位自加一
}
void bbbb()
{
if(a==4) //检测标志位状态
b=0; //标志位变更
P1=0xff; //熄灭
}
|