心形花样LED流水灯程序

  • 格式:doc
  • 大小:61.00 KB
  • 文档页数:14

/*心形花样LED 流水灯程序*/

#include

#include

#define uint unsigned int

#define uchar unsigned char

uchar code table[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00}; // 逐个点亮0~7

uchar code table1[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; // 逐个点亮7~0

uchar code table2[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff}; // 逐个灭0~7

uchar code table3[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}; // 逐个灭7~0

/***********************************************************/

void delay(uint t); //延时

void zg(uint t,uchar a);//两边逐个亮

void qs(uint t,uchar a);//全部闪烁

void zgxh(uint t,uchar a); // 逆时针逐个点亮

//void zgxh1(uint t,uchar a); // 顺时针逐个点亮

void djs(uint t,uchar a); //对角闪

void lbzgm(uint t,uchar a);//两边逐个灭

//void sszgm(uint t,uchar a); // 顺时针逐个灭

void nszgm(uint t,uchar a); // 逆时针逐个灭

void sztl(uint t,uchar a);//顺时逐个同步亮

void nztl(uint t,uchar a);//逆时逐个同步亮

void sztm(uint t,uchar a);//顺时逐个同步灭

void nztm(uint t,uchar a);//逆时逐个同步灭

void hwzjl(uint t,uchar a); //横往中间亮

void hwzjm(uint t,uchar a); //横往中间灭

//void swzjl(uint t,uchar a); //竖往中间亮

//void swzjm(uint t,uchar a); //竖往中间灭

void nzdl(uint t,uchar a); //逆时逐段亮

void nzdgl(uint t,uchar a); //逆时逐段一个点亮

void jgs(uint t,uchar a); //间隔闪

/**********************************************************/

void zg(uint t,uchar a)//两边逐个亮

{

uchar i,j;

for(j=0;j

{

P0=P1=P2=P3=0xff;

P0=0x7f;delay(t);

for(i=0;i<7;i++) {

P0=table1[i+1];

P2=table1[i];

delay(t);

}

P2=0x00;P1=0xfe;

delay(t);

for(i=0;i<7;i++)

{

P1=table[i+1];

P3=table1[i];

delay(t);

}

P3=0x00;delay(t);

}

}

void qs(uint t,uchar a) //全部闪烁

{

uchar j;

for(j=0;j

{

P0=P1=P2=P3=0xff;

delay(t);

P0=P1=P2=P3=0x00;

delay(t);

}

}

void zgxh(uint t,uchar a) // 逆时针逐个点亮

{

uchar i,j;

for (j=0;j

{

P0=P1=P2=P3=0xff;

for (i=0;i<8;i++)

{

P0=table1[i];

delay(t); }

for(i=0;i<8;i++)

{

P1=table[i];

delay(t);

}

for(i=0;i<8;i++)

{

P3=table[i];

delay(t);

}

for(i=0;i<8;i++)

{

P2=table[i];

delay(t);

}

}

}

void nszgm(uint t,uchar a) // 逆时针逐个灭

{

uchar i,j;

for(j=0;j

{

P0=P1=P2=P3=0x00;

for (i=0;i<8;i++)

{

P0=table3[i];delay(t);

}

for (i=0;i<8;i++)

{

P1=table2[i];delay(t);

}

for (i=0;i<8;i++)

{

P3=table2[i];delay(t);

}

for (i=0;i<8;i++)

{

P2=table2[i];delay(t);

}

}

}

/*

void zgxh1(uint t,uchar a) // 顺时针逐个点亮

{

uchar i,j;

for (j=0;j

{

P0=P1=P2=P3=0xff;

for (i=0;i<8;i++)

{

P2=table1[i];

delay(t);

}

for(i=0;i<8;i++)

{

P3=table1[i];

delay(t);

}

for(i=0;i<8;i++)

{

P1=table1[i];

delay(t);

}

for(i=0;i<8;i++)

{

P0=table[i];

delay(t);

}

}

}

*/

/*

void sszgm(uint t,uchar a) // 顺时针逐个灭

{

uchar i,j;

for(j=0;j

{

P0=P1=P2=P3=0x00;

for (i=0;i<8;i++)

{

P2=table3[i];delay(t);

}

for (i=0;i<8;i++) {

P3=table3[i];delay(t);

}

for (i=0;i<8;i++)

{

P1=table3[i];delay(t);

}

for (i=0;i<8;i++)

{

P0=table2[i];delay(t);

}

}

}

*/

void djs(uint t,uchar a) //对角闪

{

uchar j;

for(j=0;j

{

P0=P1=P2=P3=0xff;

P0=P3=0x00;

delay(t);

P0=P1=P2=P3=0xff;

P1=P2=0x00;

delay(t);

}

}

void lbzgm(uint t,uchar a)//两边逐个灭

{

uchar i,j;

for (j=0;j

{

P0=P2=0x00;

P3=0x01;delay(t);

for(i=7;i>1;i--)

{ P1=table[i-1];P3=table1[i-2];

delay(t);

}

P1=0xfe;P3=0xff;delay(t);

P1=0xff;P2=0x01;delay(t);

for(i=7;i>1;i--)

{

P0=table1[i-1];

P2=table1[i-2];

delay(t);

}

P0=0x7f;P2=0xff;delay(t);

P0=0xff;delay(t);

}

}

void sztl(uint t,uchar a)//顺时逐个同步亮

{

uchar i,j;

for(j=0;j

{

P0=P1=P2=P3=0xff;

for(i=0;i<8;i++)

{

P0=table[i];

P1=P2=P3=table1[i];

delay(t);

}

}

}

void nztl(uint t,uchar a)//逆时逐个同步亮

{

uchar i,j;

for(j=0;j

{

P0=P1=P2=P3=0xff;

for(i=0;i<8;i++)

{

P0=table1[i];

P1=P2=P3=table[i];

delay(t);

}