心形LED流水灯制作方法资料

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LED心形流水灯加程序

1.原件清单:一个万能板,一个底座,一个STC89C52芯片,32个LED 灯,32个贴片电阻,两个30uf电容,一个晶振。

2.原理图:

注:电源处的复位可以不用;就是上面红框里的内容

3.正面图

背面图:

亮灯图:

4. 程序代码:

#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

相关文档
最新文档