本人菜鸟,各位大神帮忙找一下问题,我自己找了两天没有发现问题点。
题目:8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。重复此过程。
问题,我的代码只会点亮第一个led,然后就一直亮着不动。
单片机是89C51,晶振频率11.0592MHz
代码如下,编译无报错。
[/code]#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar aa;
void delay(uint a);
void main()
{
uchar i,j,k;
while(1)
{
for(i=0;i<3;i++)
{
aa=0xfe;
for(j=0;j<7;j++)
{
P1=aa;
delay(200);
aa=_crol_(aa,1);
}
aa=0x7f;
for(k=0;k<8;k++)
{
P1=aa;
delay(200);
aa=_cror_(aa,1);
}
}
P1=0xff;
for(j=0;j<10;j++)
{
P1=~P1;
delay(300);
}
}
}
void delay(uint a)
{
uint x,y;
for(x=a;a>0;x--)
for(y=110;y>0;y--);
}