求你89C52单片机流水灯移动的程序

先一个盏从左往右移,再二盏从左往右移,再三盏从左往右移,这样循环到四、五、六盏,直到全亮闪烁,最后又从第一盏从左往右移,一直循环。求程序,谢谢。

第1个回答  2012-10-21
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int

uchar num,m,led,a;
delay(uint ms)
{
uint i,j;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}

uchar code table[]={
0xfe,0xfc,0xf8,0xf0,
0xe0,0xc0,0x80,0x00};

void main()
{
m=8;
num=0;
while(1)
{
led=table[num];
for(a=m;a>0;a--)
{
P1=led;
delay(500);
led=_crol_(led,1);
delay(500);

}
m--;
num++;
if(num==8)
num=0;
if(m==0)
m=8;
}

}
不知道你要的是不是这个效果本回答被提问者采纳