51单片机流水灯程序

使用4组I/O控制心形流水灯,花样多种。已经通过硬件测试,效果不错。
(硬件:用32个led做成一个 爱心 ,直接用4组I/O控制)
#include //包含单片机寄存器的头文件
char code table[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,};//P0123向下合拢
char code table1[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,};//P0123向下合拢

char code table2[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,};//P0123向上收回
char code table3[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,};//P0123向上收回

char code table4[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,};//P0123 一个灯走动
char code table5[]={0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,};//P0123 两个灯走动
char code table6[]={0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,};//P0123 三个灯走动
char code table7[]={0xf0,0xe1,0xc3,0x87,0x0f,};//P0123 四个灯走动
char code table8[]={0xe0,0xc1,0x83,0x07,};//P0123 五个灯走动
char code table9[]={0xc0,0x81,0x03,};//P0123 六个灯走动
char code table10[]={0x80,0x01,};//P0123 七个灯走动
/***************************** 函数功能:延时一段时间 *****************************/
void delay(unsigned int z)
{
unsigned int n,k;
for(n=0;n<3250;n++)
for(k=0;k;
}
/***************************** 函数功能:主函数 *****************************/
void main(void)
{
char i,j,k;
while(1)
{
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(i=0;i<8;i++)//P0123左移
{ P0=P0>>1;
P1=P1>>1;
P2=P2>>1;
P3=P3>>1;
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(k=0;k<8;k++)//P0123右移
{ P0=P0<<1;
P1=P1<<1;
P2=P2<<1;
P3=P3<<1;
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<8;j++)//P01心形合拢
{ P0=table[j];
P1=table1[j];
delay(5);
}
for(j=0;j<8;j++)//P23心形合拢
{ P2=table[j];
P3=table1[j];
delay(5);
}

for(j=0;j<8;j++)//P23心形收回
{ P2=table2[j];
P3=table3[j];
delay(5);
}
P2=0xff;P3=0xff;
for(j=0;j<8;j++)//P01心形收回
{ P0=table2[j];
P1=table3[j];
delay(5);
}

for(j=0;j<10;j++)//P0123心形走动
{ P0=0xaa;
P1=0xaa;
P2=0xaa;
P3=0xaa;
delay(10);
P0=0x55;
P1=0x55;
P2=0x55;
P3=0x55;
delay(10);
}
for(j=0;j<3;j++)//P0123 8位闪动
{ P0=0x00;
P1=0xff;
P2=0xff;
P3=0x00;
delay(10);
P0=0xff;
P1=0x00;
P2=0x00;
P3=0xff;
delay(10);
}
for(j=0;j<3;j++)//P0123心形笑脸
{ P0=0x00;
P1=0x00;
P2=0xff;
P3=0xff;
delay(10);
P0=0xff;
P1=0xff;
P2=0x00;
P3=0x00;
delay(10);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(i=0;i<8;i++)//P0123一条龙
{ P0=P0<<1;
delay(5);
}P0

=0x00;
for(i=0;i<8;i++)//P0123一条龙
{ P2=P2<<1;
delay(5);
}P2=0x00;
for(i=0;i<8;i++)//P0123一条龙
{ P3=P3<<1;
delay(5);
}P3=0x00;
for(i=0;i<8;i++)//P0123一条龙
{ P1=P1<<1;
delay(5);
}P1=0x00;

P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(i=0;i<8;i++)//P0123一条龙
{ P1=P1>>1;
delay(5);
}P1=0x00;
for(i=0;i<8;i++)//P0123一条龙
{ P3=P3>>1;
delay(5);
}P3=0x00;
for(i=0;i<8;i++)//P0123一条龙
{ P2=P2>>1;
delay(5);
}P2=0x00;
for(i=0;i<8;i++)//P0123一条龙
{ P0=P0>>1;
delay(5);
}P0=0x00;
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<8;j++)//P0123 一个灯走动
{ P0=table4[j];
P1=table4[j];
P2=table4[j];
P3=table4[j];
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<7;j++)//P0123 两个灯走动
{ P0=table5[j];
P1=table5[j];
P2=table5[j];
P3=table5[j];
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<6;j++)//P0123 三个灯走动
{ P0=table6[j];
P1=table6[j];
P2=table6[j];
P3=table6[j];
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<5;j++)//P0123 四个灯走动
{ P0=table7[j];
P1=table7[j];
P2=table7[j];
P3=table7[j];
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<4;j++)//P0123 五个灯走动
{ P0=table8[j];
P1=table8[j];
P2=table8[j];
P3=table8[j];
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<3;j++)//P0123 六个灯走动
{ P0=table9[j];
P1=table9[j];
P2=table9[j];
P3=table9[j];
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<2;j++)//P0123 七个灯走动
{ P0=table10[j];
P1=table10[j];
P2=table10[j];
P3=table10[j];
delay(5);
} P0=0x00;P1=0x00;P2=0x00;P3=0x00;delay(5);
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<8;j++)//P0123 一条龙一个灯走动
{ P0=table4[j];
delay(5);
} P0=0xff;
for(j=0;j<8;j++)//P0123 一条龙一个灯走动
{ P2=table4[j];
delay(5);
} P2=0xff;
for(j=0;j<8;j++)//P0123 一条龙一个灯走动
{ P3=table4[j];
delay(5);
} P3=0xff;
for(j=0;j<8;j++)//P0123 一条龙一个灯走动
{ P1=table4[j];
delay(5);
} P1=0xff;

for(j=0;j<7;j++)//P0123 一条龙两个灯走动
{ P0=table5[j];
delay(5);
} P0=0x7f;P2=0xfe;delay(5);P0=0xff;
for(j=1;j<7;j++)//P0123 一条龙两个灯走动
{ P2=table5[j];
delay(5);
} P2=0x7f;P3=0xfe;delay(5);P2=0xff;
for(j=1;j<7;j++)//P0123 一条龙两个灯走动
{ P3=table5[j];
delay(5);
} P3=0x7f;P1=0xfe;delay(5);P3=0xff;
for(j=1;j<7;j++)//P0123 一条龙两个灯

走动
{ P1=table5[j];
delay(5);
} P1=0xff;


for(j=0;j<6;j++)//P0123 一条龙三个灯走动
{ P0=table6[j];
delay(5);
} P0=0x3f;P2=0xfe;delay(5);P0=0x7f;P2=0xfc;delay(5);P0=0xff;
for(j=0;j<6;j++)//P0123 一条龙三个灯走动
{ P2=table6[j];
delay(5);
}P2=0x3f;P3=0xfe;delay(5);P2=0x7f;P3=0xfc;delay(5);P2=0xff;
for(j=0;j<6;j++)//P0123 一条龙三个灯走动
{ P3=table6[j];
delay(5);
} P3=0x3f;P1=0xfe;delay(5);P3=0x7f;P1=0xfc;delay(5);P3=0xff;
for(j=0;j<6;j++)//P0123 一条龙三个灯走动
{ P1=table6[j];
delay(5);
}P1=0x3f;P0=0xfe;delay(5);P1=0x7f;P0=0xfc;delay(5);P1=0xff;
P0=0xf8;delay(5);
for(j=0;j<5;j++)//P0123 一条龙四个灯走动
{ P0=table7[j];
delay(5);
} P0=0x1f;P2=0xfe;delay(5);P0=0x3f;P2=0xfc;delay(5);P0=0x7f;
P2=0xf8;delay(5);P0=0xff;
for(j=0;j<5;j++)//P0123 一条龙四个灯走动
{ P2=table7[j];
delay(5);
} P2=0x1f;P3=0xfe;delay(5);P2=0x3f;P3=0xfc;delay(5);P2=0x7f;
P3=0xf8;delay(5);P2=0xff;
for(j=0;j<5;j++)//P0123 一条龙四个灯走动
{ P3=table7[j];
delay(5);
} P3=0x1f;P1=0xfe;delay(5);P3=0x3f;P1=0xfc;delay(5);P3=0x7f;
P1=0xf8;delay(5);P3=0xff;
for(j=0;j<5;j++)//P0123 一条龙四个灯走动
{ P1=table7[j];
delay(5);
}P1=0x1f;P0=0xfe;delay(5);P1=0x3f;P0=0xfc;delay(5);P1=0x7f;
P0=0xf8;delay(5);P1=0xff;P0=0xf0;delay(5);

for(j=0;j<4;j++)//P0123 一条龙五个灯走动
{ P0=table8[j];
delay(5);
} P0=0x0f;P2=0xfe;delay(5);P0=0x1f;P2=0xfc;delay(5);P0=0x3f;
P2=0xf8;delay(5);P0=0x7f;P2=0xf0;delay(5);P0=0xff;
for(j=0;j<4;j++)//P0123 一条龙五个灯走动
{ P2=table8[j];
delay(5);
} P2=0x0f;P3=0xfe;delay(5);P2=0x1f;P3=0xfc;delay(5);P2=0x3f;
P3=0xf8;delay(5);P2=0x7f;P3=0xf0;delay(5);P2=0xff;
for(j=0;j<4;j++)//P0123 一条龙五个灯走动
{ P3=table8[j];
delay(5);
} P3=0x0f;P1=0xfe;delay(5);P3=0x1f;P1=0xfc;delay(5);P3=0x3f;
P1=0xf8;delay(5);P3=0x7f;P1=0xf0;delay(5);P3=0xff;
for(j=0;j<4;j++)//P0123 一条龙五个灯走动
{ P1=table8[j];
delay(5);
} P1=0x0f;P0=0xfe;delay(5);P1=0x1f;P0=0xfc;delay(5);P1=0x3f;
P0=0xf8;delay(5);P1=0x7f;P0=0xf0;delay(5);P1=0xff;

for(j=0;j<3;j++)//P0123 一条龙六个灯走动
{ P0=table9[j];
delay(5);
}P0=0x07;P2=0xfe;delay(5);P0=0x0f;P2=0xfc;delay(5);P0=0x1f;P2=0xf8;delay(5);
P0=0x3f;P2=0xf0;delay(5);P0=0x7f;P2=0xe0;delay(5);P0=0xff;
for(j=0;j<3;j++)//P0123 一条龙六个灯走动
{ P2=table9[j];
delay(5);
} P2=0x07;P3=0xfe;delay(5);P2=0x0f;P3=0xfc;delay(5);P2=0x1f;P3=0xf8;delay(5);
P2=0x3f;P3=0xf0;delay(5);P2=0x7f;P3=0xe0;delay(5);P2=0xff;
for(j=0;j<3;j++)//P0123 一条龙六个灯走动
{ P3=table9[j];
delay(5);
} P3=0x07;P1=0xfe;d

elay(5);P3=0x0f;P1=0xfc;delay(5);P3=0x1f;P1=0xf8;delay(5);
P3=0x3f;P1=0xf0;delay(5);P3=0x7f;P1=0xe0;delay(5);P3=0xff;
for(j=0;j<3;j++)//P0123 一条龙六个灯走动
{ P1=table9[j];
delay(5);
} P1=0x07;P0=0xfe;delay(5);P1=0x0f;P0=0xfc;delay(5);P1=0x1f;P0=0xf8;delay(5);
P1=0x3f;P0=0xf0;delay(5);P1=0x7f;P0=0xe0;delay(5);P1=0xff;

for(j=0;j<2;j++)//P0123 一条龙七个灯走动
{ P0=table10[j];
delay(5);
} P0=0x03;P2=0xfe;delay(5); P0=0x07;P2=0xfc;delay(5);
P0=0x0f;P2=0xf8;delay(5);P0=0x1f;P2=0xf0;delay(5);
P0=0x3f;P2=0xe0;delay(5);P0=0x7f;P2=0xc0;delay(5);P0=0xff;
for(j=0;j<2;j++)//P0123 一条龙七个灯走动
{ P2=table10[j];
delay(5);
} P2=0x03;P3=0xfe;delay(5); P2=0x07;P3=0xfc;delay(5);
P2=0x0f;P3=0xf8;delay(5);P2=0x1f;P3=0xf0;delay(5);
P2=0x3f;P3=0xe0;delay(5);P2=0x7f;P3=0xc0;delay(5);P2=0xff;
for(j=0;j<2;j++)//P0123 一条龙七个灯走动
{ P3=table10[j];
delay(5);
} P3=0x03;P1=0xfe;delay(5); P3=0x07;P1=0xfc;delay(5);
P3=0x0f;P1=0xf8;delay(5);P3=0x1f;P1=0xf0;delay(5);
P3=0x3f;P1=0xe0;delay(5);P3=0x7f;P1=0xc0;delay(5);P3=0xff;
for(j=0;j<2;j++)//P0123 一条龙七个灯走动
{ P1=table10[j];
delay(5);
} P1=0xff;
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(i=0;i<8;i++)//P0123双边合拢
{ P0=P0<<1;
P1=P1>>1;
P2=P2>>1;
P3=P3<<1;
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(k=0;k<8;k++)//P0123双边分开
{ P0=P0>>1;
P1=P1<<1;
P2=P2<<1;
P3=P3>>1;
delay(5);
}
}
}

相关文档
最新文档