32位流水灯程序.docx
《32位流水灯程序.docx》由会员分享,可在线阅读,更多相关《32位流水灯程序.docx(43页珍藏版)》请在冰豆网上搜索。
32位流水灯程序
耗时两天,终于写完32位流水灯的程序,建议用stc89c58的芯片,因为有16.16K,原理图网上很多的。
祝你们好运!
#include
typedefunsignedcharuint8;
typedefunsignedintuint16;
typedefunsignedlonguint32;
uint8codetable0[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};//由低位到高位;
uint8codetable1[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};//由高位到低位;
uint8codetable2[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00};//一个亮到八个亮,低位到高位渐亮;
uint8codetable3[]={0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00};//一个亮到八个亮,高位到低位渐亮;
uint8codetable4[]={0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF};//八个亮到一个亮,低位到高位;
uint8codetable5[]={0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF};//八个亮到一个亮,高位到低位;
uint8codetable6[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//一个灯移位,低位到高位;
uint8codetable7[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};//一个灯移位,高位到低位;
uint8codetable8[]={0x01,0x03,0x06,0x0C,0x18,0x30,0x60,0xC0,0x80};//两个灯的移位,低位到高位;
uint8codetable9[]={0x80,0xC0,0x60,0x30,0x18,0x0C,0x06,0x03,0x01};//两个灯的移位,高位到低位;
voiddelay(uint16time)
{
uint16i,j;
for(i=0;i<=time;i++)
for(j=0;j<5;j++);
}
uint16i,j;
voiddisp0()//逆时针四灯旋转
{for(i=0;i<8;i++)
{P0=table0[i];P1=table1[i];P2=table1[i];P3=table1[i];delay(1000);}
}
voiddisp1()//顺时针四灯旋转
{
for(i=0;i<8;i++)
{P2=table0[i];P3=table0[i];P1=table0[i];P0=table1[i];delay(1000);}
P0=0xFF;P1=0xFF;P2=0xFF;P3=0xFF;
}
voiddisp2()//逆时针旋转
{
for(i=0;i<8;i++){P0=table1[i];delay(1000);}P0=0xFF;
for(i=0;i<8;i++){P1=table0[i];delay(1000);}P1=0xFF;
for(i=0;i<8;i++){P3=table0[i];delay(1000);}P3=0xFF;
for(i=0;i<8;i++){P2=table0[i];delay(1000);}P2=0xFF;
}
voiddisp3()//顺时针旋转
{
for(i=0;i<8;i++){P2=table1[i];delay(1000);}P2=0xFF;
for(i=0;i<8;i++){P3=table1[i];delay(1000);}P3=0xFF;
for(i=0;i<8;i++){P1=table1[i];delay(1000);}P1=0xFF;
for(i=0;i<8;i++){P0=table0[i];delay(1000);}P0=0xFF;
}
voiddisp4()//上到下的逐个点亮
{
for(i=0;i<8;i++){P0=table1[i];P2=table1[i];delay(1000);}P0=0xFF;P2=0xFF;
for(i=0;i<8;i++){P1=table0[i];P3=table1[i];delay(1000);}P1=0xFF;P3=0xFF;
}
voiddisp5()//下到上的逐个点亮
{
for(i=0;i<8;i++){P1=table1[i];P3=table0[i];delay(1000);}P1=0xFF;P3=0xFF;
for(i=0;i<8;i++){P0=table0[i];P2=table0[i];delay(1000);}P0=0xFF;P2=0xFF;
}
voiddisp6()//左右分别从一个亮到全亮
{
for(i=0;i<8;i++){P0=table3[i];P2=table3[i];delay(1000);}P0=0x00;P1=0x00;
for(i=0;i<8;i++){P1=table2[i];P3=table3[i];delay(1000);}P1=0x00;P3=0x00;
}
voiddisp7()//左右分别八个全亮到一个都不亮
{
for(i=0;i<9;i++)
{P3=table4[i];P1=table5[i];P0=0x00;P2=0x00;delay(1000);}
P3=0xFF;P1=0xFF;
for(i=0;i<9;i++){P2=table4[i];P0=table4[i];delay(1000);}
}
voiddisp8()//逆时针全部点亮
{
for(i=0;i<8;i++){P0=table3[i];delay(1000);}
for(i=0;i<8;i++){P1=table2[i];delay(1000);}
for(i=0;i<8;i++){P3=table2[i];delay(1000);}
for(i=0;i<8;i++){P2=table2[i];delay(1000);}
}
voiddisp9()//顺时针全部熄灭
{
for(i=0;i<9;i++){P2=table5[i];delay(1000);}
for(i=0;i<9;i++){P3=table5[i];delay(1000);}
for(i=0;i<9;i++){P1=table5[i];delay(1000);}
for(i=0;i<9;i++){P0=table4[i];delay(1000);}
}
voiddisp10()//顺时针全部点亮
{
for(i=0;i<8;i++){P2=table3[i];delay(1000);}
for(i=0;i<8;i++){P3=table3[i];delay(1000);}
for(i=0;i<8;i++){P1=table3[i];delay(1000);}
for(i=0;i<8;i++){P0=table2[i];delay(1000);}
}
voiddisp11()//逆时针全部熄灭
{
for(i=0;i<9;i++){P0=table5[i];delay(1000);}
for(i=0;i<9;i++){P1=table4[i];delay(1000);}
for(i=0;i<9;i++){P3=table4[i];delay(1000);}
for(i=0;i<9;i++){P2=table4[i];delay(1000);}
}
voiddisp12()//一个灯亮到16灯亮,之后灭,追逐式,逆时针
{
for(i=0;i<8;i++){P0=table3[i];delay(1000);}
for(i=0;i<8;i++){P1=table2[i];delay(1000);}
P0=0x00;P1=0x00;delay(3000);
for(i=0;i<9;i++){P0=table5[i];delay(1000);}
for(i=0;i<9;i++){P1=table4[i];delay(1000);}
//************************************************
for(i=0;i<8;i++){P3=table2[i];delay(1000);}
for(i=0;i<8;i++){P2=table2[i];delay(1000);}
P3=0x00;P2=0x00;delay(3000);
for(i=0;i<9;i++){P3=table4[i];delay(1000);}
for(i=0;i<9;i++){P2=table4[i];delay(1000);}
}
voiddisp13()//一个灯亮到16灯亮,之后灭,追逐式,顺时针
{
for(i=0;i<8;i++){P2=table3[i];delay(1000);}
for(i=0;i<8;i++){P3=table3[i];delay(1000);}
P2=0x00;P3=0x00;delay(3000);
for(i=0;i<9;i++){P2=table5[i];delay(1000);}
for(i=0;i<9;i++){P3=table5[i];delay(1000);}
//***************************************************
for(i=0;i<8;i++){P1=table3[i];delay(1000);}
for(i=0;i<8;i++){P0=table2[i];delay(1000);}
P1=0x00;P0=0x00;delay(3000);
for(i=0;i<9;i++){P1=table5[i];delay(1000);}
for(i=0;i<9;i++){P0=table4[i];delay(1000);}
}
voiddisp14()//一个灯亮到16个灯亮,追逐式,逆时针
{
for(i=0;i<8;i++){P0=table3[i];delay(1000);}
for(i=0;i<8;i++){P1=table2[i];delay(1000);}
P0=0xFF;P1=0xFF;
for(i=0;i<8;i++){P3=table2[i];delay(1000);}
for(i=0;i<8;i++){P2=table2[i];delay(1000);}
P2=0xFF;P3=0xFF;
}
voiddisp15()//一个灯亮到16个灯亮,追逐式,顺时针
{
for(i=0;i<8;i++){P2=table3[i];delay(1000);}
for(i=0;i<8;i++){P3=table3[i];delay(1000);}
P2=0xFF;P3=0xFF;
for(i=0;i<8;i++){P1=table3[i];delay(1000);}
for(i=0;i<8;i++){P0=table2[i];delay(1000);}
P0=0xFF;P1=0xFF;
}
voiddisp16()//一个灯亮到八个灯亮,追逐式,逆时针
{
for(i=0;i<8;i++){P0=table3[i];delay(1000);}P0=0xFF;
for(i=0;i<8;i++){P1=table2[i];delay(1000);}P1=0xFF;
for(i=0;i<8;i++){P3=table2[i];delay(1000);}P3=0xFF;
for(i=0;i<8;i++){P2=table2[i];delay(1000);}P2=0xFF;
}
voiddisp17()//一个灯亮到八个灯亮,追逐式,顺时针
{
for(i=0;i<8;i++){P2=table3[i];delay(1000);}P2=0xFF;
for(i=0;i<8;i++){P3=table3[i];delay(1000);}P3=0xFF;
for(i=0;i<8;i++){P1=table3[i];delay(1000);}P1=0xFF;
for(i=0;i<8;i++){P0=table2[i];delay(1000);}P1=0xFF;
}
voiddisp18()//四灯,一个亮到八个亮,逆时针
{
for(i=0;i<8;i++)
{P0=table3[i];P1=table2[i];P3=table2[i];P2=table2[i];delay(1000);}
P0=0x00;P1=0x00;P2=0x00;P3=0x00;delay(5000);
}
voiddisp19()//四灯,八个亮到全灭,顺时针
{
for(i=0;i<9;i++)
{P0=table4[i];P1=table5[i];P2=table5[i];P3=table5[i];delay(1000);}
}
voiddisp20()//四灯,一个亮到八个亮,顺时针
{
for(i=0;i<8;i++)
{P2=table3[i];P3=table3[i];P1=table3[i];P0=table2[i];delay(1000);}
}
voiddisp21()//四灯,八个亮到全灭,逆时针
{
for(i=0;i<9;i++)
{P0=table5[i];P1=table4[i];P3=table4[i];P2=table4[i];delay(1000);}
}
voiddisp22()//LED交替闪烁
{
for(i=0;i<9;i++)
{P0=0x55;P1=0x55;P2=0x55;P3=0x55;delay(3000);
P0=~P0;P1=~P1;P2=~P2;P3=~P3;delay(3000);}
for(i=0;i<17;i++)
{P0=0x55;P1=0x55;P2=0x55;P3=0x55;delay(1500);
P0=~P0;P1=~P1;P2=~P2;P3=~P3;delay(1500);}
for(i=0;i<27;i++)
{P0=0x55;P1=0x55;P2=0x55;P3=0x55;delay(700);
P0=~P0;P1=~P1;P2=~P2;P3=~P3;delay(700);}
for(i=0;i<9;i++)
{P0=0xAA;P1=0xAA;P2=0xAA;P3=0xAA;delay(2000);
P0=~P0;P1=~P1;P2=~P2;P3=~P3;delay(2000);}
for(i=0;i<6;i++)
{P0=0xAA;P1=0xAA;P2=0xAA;P3=0xAA;delay(4000);
P0=~P0;P1=~P1;P2=~P2;P3=~P3;delay(4000);}
}
voiddisp23()//一个灯的双边移位,PO,P1逆时针,P2,P3顺时针
{
for(i=0;i<8;i++)
{P1=0x00;P3=0x00;P0=table7[i];P2=table7[i];delay(1000);}
P0=0x00;P2=0x00;
for(i=0;i<8;i++)
{P1=table6[i];P3=table7[i];delay(1000);}
}
voiddisp24()//一个灯的逆双边移位,P1,P0逆时针,P3,P2顺时针
{
for(i=0;i<8;i++)
{P1=table7[i];P3=table6[i];delay(1000);}
P1=0x00;P3=0x00;
for(i=0;i<8;i++)
{P0=table6[i];P2=table6[i];delay(1000);}
}
voiddisp25()//两个灯的双边移位
{
for(i=0;i<9;i++)
{P1=0x00;P3=0x00;P0=table9[i];P2=table9[i];delay(1000);}
P0=0x00;P2=0x00;
for(i=0;i<9;i++)
{P1=table8[i];P3=table9[i];delay(1000);}
P0=0x00;P1=0x00;P2=0x00;P3=0x00;
}
voiddisp26()//两个灯的逆双边移位
{
for(i=0;i<9;i++)
{P1=table9[i];P3=table8[i];delay(1000);}
P1=0x00;P3=0x00;
for(i=0;i<9;i++)
{P0=table8[i];P2=table8[i];delay(1000);}
P0=0x00;P1=0x00;P2=0x00;P3=0x00;
}
voiddisp27()//四个灯的相互追逐,顺时针
{
for(j=0;j<5;j++)
{
for(i=0;i<8;i++)
{P0=table0[i];P2=table1[i];P3=table1[i];P1=table1[i];delay(1000);}
}
for(i=0;i<8;i++)
{P0=table2[i];P2=table3[i];P3=table3[i];P1=table3[i];delay(2000);}
for(i=0;i<9;i++)
{P0=table5[i];P1=table4[i];P3=table4[i];P2=table4[i];delay(1000);}
}
voiddisp28()//四个灯的相互追逐,逆时针
{
for(j=0;j<5;j++)
{
for(i=0;i<8;i++)
{P0=table1[i];P1=table0[i];P2=table0[i];P3=table0[i];delay(1000);}
}
for(i=0;i<8;i++)
{P0=table3[i];P1=table2[i];P3=table2[i];P2=table2[i];delay(2000);}
for(i=0;i<9;i++)
{P0=table4[i];P1=table5[i];P3=table5[i];P2=table5[i];delay(1000);}
}
voiddisp29()//两个灯的追逐,逆时针
{
for(i=0;i<8;i++){P0=table1[i];P3=table0[i];delay(1000);}P0=0xFF;P3=0xFF;
for(i=0;i<8;i++){P1=table0[i];P2=table0[i];delay(1000);}P1=0xFF;P2=0xFF;
for(i=0;i<8;i++){P0=table3[i];P3=table2[i];delay(1000);}P0=0x00;P3=0x00;
for(i=0;i<8;i++){P1=table2[i];P2=table2[i];delay(1000);}P1=0x00;P2=0x00;
P0=0xFF;P1=0xFF;P2=0xFF;P3=0xFF;
}
voiddisp30()//两个灯的追逐,顺时针
{
for(i=0;i<8;i++){P2=table1[i];P1=table1[i];delay(1000);}P2=0xFF;P1=0xFF;
for(i=0;i<8;i++){P3=table1[i];P0=table0[i];delay(1000);}P3=0xFF;P0=0xFF;
for(i=0;i<8;i++){P2=table3[i];P1=table3[i];delay(1000);}P2=0x00;P1=0x00;
for(i=0;i<8;i++){P3=table3[i];P0=table2[i];delay(1000);}P3=0x00;P0=0x00;
P0=0xFF;P1=0xFF;P2=0xFF;P3=0xFF;
}
voiddisp31()//P0,P2一个灯到八个灯亮,之后灭;P1,P3一个灯到八个灯亮,之后灭
{
for(i=0;i<8;i++){P0=table3[i];P2=table3[i];delay(1000);}P0=0x00;P2=0x00;
for(i=0;i<9;i++){P0=table5[i];P2=table5[i];delay(1000);}P0=0xFF;P2=0xFF;
for(i=0;i<8;i++){P1=table2[i];P3=table3[i];delay(1000);}P1=0x00;P3=0x00;
for(i=0;i<9;i++){P1=table4[i];P3=table5[i];delay(1000);}P1=0xFF;P3=0xFF;
}
voiddisp32()//P1,P3一个灯到八个灯亮,之后灭;P0,P2一个灯到八个灯亮,之后灭
{
for(i=0;i<8;i++){P1=table3[i];P3=table2[i];delay(1000);}P1=0x00;P3=0x00;
for(i=0;i<9;i++){P1=table5[i];P3=table4[i];delay(1000);}P1=0xFF;P3=0xFF;
for(i=0;i<8;i++){P0=table2[i];P2=table2[i];delay(1000);}P0=0x00;P2=0x00;
for(i=0;i<9;i++){P0=table4[i];P2=table4[i];delay(1000);}P0=0xFF;P2=0xFF;
}
voiddisp33()//一个亮到八个亮,P0,P2向下亮,P1,P3向上亮
{
for(i=0;i<8;i++)
{P0=table3[i];P2=table3[i];P1=table3[i];P3=table2[i];delay(1000);}
P0=0x00;P1=0x00;P2=0x00;P3=0x00;delay(1000);
for(i=0;i<9;i++)
{P0=tabl