1.8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。重复此过程。
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp1;
uchar temp2;
unsigned int a;
uint d;
uint b;
uint e;
uint f;
void delay(uint);
void main()
{
while(1)
{
uint c;
for(c=2;c>0;c--)
{
temp1=0XFE;
for(a=8;a>0;a--)
{
P0=temp1;
delay(2);
temp1=_crol_(temp1,1);
}
temp1=0X7F;
for(b=8;b>0;b--)
{
P0=temp1;
delay(2);
temp1=_cror_(temp1,1);
}
}
P0=0X00;
delay(5);
for(d=5;d>0;d--)
{
temp2=0XFE;
for(e=8;e>0;e--)
{
P0=temp2;
delay(3);
temp2=_crol_(temp2,1);
}
temp2=0X7F;
for(f=8;f>0;f--)
{
P0=temp2;
delay(3);
temp2=_cror_(temp2,1);
}
}
}
}
void delay(uint z)
{
uint x,y;
for(x=100;x>0;x--)
for(y=z*246;y>0;y--);
}
两部分单独运行还可以,但两个大的for语句合并起来,就不行了。编译没有错误,就是单片机执行不了