心形花样LED流水灯带程序.docx

上传人:b****5 文档编号:8275569 上传时间:2023-01-30 格式:DOCX 页数:21 大小:153.64KB
下载 相关 举报
心形花样LED流水灯带程序.docx_第1页
第1页 / 共21页
心形花样LED流水灯带程序.docx_第2页
第2页 / 共21页
心形花样LED流水灯带程序.docx_第3页
第3页 / 共21页
心形花样LED流水灯带程序.docx_第4页
第4页 / 共21页
心形花样LED流水灯带程序.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

心形花样LED流水灯带程序.docx

《心形花样LED流水灯带程序.docx》由会员分享,可在线阅读,更多相关《心形花样LED流水灯带程序.docx(21页珍藏版)》请在冰豆网上搜索。

心形花样LED流水灯带程序.docx

心形花样LED流水灯带程序

心形花样LED流水灯(带程序)

1000146073713

使用89C52做的,原理图如下:

总共有32个LED灯,4个I/O全部用上了。

我在这里不加有LED保护电阻,用200的也可以

晶振用12M的或11.0592M也行,C1,C2用30PF。

PCB图如下:

作品效果录像:

程序是用C语言写的;

 

如下:

#include

#include

#defineuintunsignedint

#defineucharunsignedchar

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

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

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

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

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

voiddelay(uintt);//延时

voidzg(uintt,uchara);//两边逐个亮

voidqs(uintt,uchara);//全部闪烁

voidzgxh(uintt,uchara);//逆时针逐个点亮

//voidzgxh1(uintt,uchara);//顺时针逐个点亮

voiddjs(uintt,uchara);//对角闪

voidlbzgm(uintt,uchara);//两边逐个灭

//voidsszgm(uintt,uchara);//顺时针逐个灭

voidnszgm(uintt,uchara);//逆时针逐个灭

voidsztl(uintt,uchara);//顺时逐个同步亮

voidnztl(uintt,uchara);//逆时逐个同步亮

voidsztm(uintt,uchara);//顺时逐个同步灭

voidnztm(uintt,uchara);//逆时逐个同步灭

voidhwzjl(uintt,uchara);//横往中间亮

voidhwzjm(uintt,uchara);//横往中间灭

//voidswzjl(uintt,uchara);//竖往中间亮

//voidswzjm(uintt,uchara);//竖往中间灭

voidnzdl(uintt,uchara);//逆时逐段亮

voidnzdgl(uintt,uchara);//逆时逐段一个点亮

voidjgs(uintt,uchara);//间隔闪

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

voidzg(uintt,uchara)//两边逐个亮

{

uchari,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);

}

}

 

voidqs(uintt,uchara)//全部闪烁

{

ucharj;

for(j=0;j

{

P0=P1=P2=P3=0xff;

delay(t);

P0=P1=P2=P3=0x00;

delay(t);

}

}

 

voidzgxh(uintt,uchara)//逆时针逐个点亮

{

uchari,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);

}

}

}

voidnszgm(uintt,uchara)//逆时针逐个灭

{

uchari,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);

}

}

 

}

/*

voidzgxh1(uintt,uchara)//顺时针逐个点亮

{

uchari,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);

}

}

}

*/

/*

voidsszgm(uintt,uchara)//顺时针逐个灭

{

uchari,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);

}

}

 

}

*/

 

voiddjs(uintt,uchara)//对角闪

{

ucharj;

for(j=0;j

{

P0=P1=P2=P3=0xff;

P0=P3=0x00;

delay(t);

P0=P1=P2=P3=0xff;

P1=P2=0x00;

delay(t);

}

}

 

voidlbzgm(uintt,uchara)//两边逐个灭

{

uchari,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);

}

}

 

voidsztl(uintt,uchara)//顺时逐个同步亮

{

uchari,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);

}

}

}

voidnztl(uintt,uchara)//逆时逐个同步亮

{

uchari,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);

}

}

}

voidsztm(uintt,uchara)//顺时逐个同步灭

{

uchari,j;

for(j=0;j

{

P0=P1=P2=P3=0x00;

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

{

P0=table2[i];

P1=P2=P3=table3[i];

delay(t);

}

}

}

 

voidnztm(uintt,uchara)//逆时逐个同步灭

{

uchari,j;

for(j=0;j

{

P0=P1=P2=P3=0xff;

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

{

P0=table3[i];

P1=P2=P3=table2[i];

delay(t);

}

}

}

voidhwzjl(uintt,uchara)//横往中间亮

{

uchari,j;

for(j=0;j

{

P0=P1=P2=P3=0xff;

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

{

P0=P2=P1=table1[i];

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

}

}

}

voidhwzjm(uintt,uchara)//横往中间灭

{

uchari,j;

for(j=0;j

{

P0=P1=P2=P3=0x00;

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

{

P0=P2=P1=table3[i];

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

}

}

}

/*

voidswzjl(uintt,uchara)//竖往中间亮

{

uchari,j;

for(j=0;j

{

P0=P1=P2=P3=0xff;

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

{

P0=P2=P1=table[i];

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

}

}

}

voidswzjm(uintt,uchara)//竖往中间灭

{

uchari,j;

for(j=0;j

{

P0=P1=P2=P3=0x00;

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

{

P0=P2=P1=table2[i];

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

}

}

}

*/

voidnzdl(uintt,uchara)//逆时逐段亮

{

uchari,j;

for(j=0;j

{

P0=P1=P2=P3=0xff;

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

{

P0=table1[i];

delay(t);

}

P0=0xff;

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

{

P1=table[i];

delay(t);

}

P1=0xff;

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

{

P3=table[i];

delay(t);

}

P3=0xff;

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

{

P2=table[i];

delay(t);

}

P2=0xff;

}

}

 

voidnzdgl(uintt,uchara)//逆时逐段一个点亮

{

uchari,j,k,l;

for(j=0;j

{

k=table1[0];

P0=k;l=table[0];

P1=P2=P3=l;delay(t);

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

{

k=_crol_(k,-1);

P0=k;

l=_crol_(l,1);

P1=P2=P3=l;

delay(t);

}

}

}

 

voidjgs(uintt,uchara)//间隔闪

{

ucharj;

for(j=0;j

{

P0=0x55;P1=P2=P3=0xaa;

delay(t);

P0=0xaa;P1=P2=P3=0x55;

delay(t);

}

}

 

voidmain()

{

uchari;

while

(1)

{

zg(100,1);//两边逐个亮

lbzgm(100,1);//两边逐个灭

jgs(300,10);

djs(100,20);//对角闪

////////////////////////////////////////////

P1=P2=P3=0xff;

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

{

P0=0x00;delay(800);

P0=0xff;delay(800);

}

P0=0x00;

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

{

P1=0x00;delay(800);

P1=0xff;delay(800);

}

P1=0x00;

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

{

P3=0x00;delay(800);

P3=0xff;delay(800);

}

P3=0x00;

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

{

P2=0x00;delay(800);

P2=0xff;delay(800);

}

qs(500,3);

 

/////////////////////////////////////////////

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

{

zgxh(50,1);

nszgm(50,1);

}

djs(100,20);//对角闪

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

{

zg(100,1);//两边逐个亮

lbzgm(100,1);//两边逐个灭

}

qs(200,10);djs(100,50);

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

{

sztl(200,1);//顺时逐个同步亮

nztm(200,1);

nztl(200,1);

sztm(200,1);//顺时逐个同步灭

}

djs(300,10);//对角闪

nzdgl(300,10);//逆时逐段一个点亮

jgs(300,10);//间隔闪

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

{

zgxh(100,1);

nszgm(100,1);

}

 

/*

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

{

zgxh1(100,1);

sszgm(100,1);

}

*/

nzdl(200,3);//逆时逐段亮

jgs(50,100);//间隔闪

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

P0=P1=P2=P3=0xff;

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

{

P0=table1[i];

delay(200);

}

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

{

P1=table[i];

delay(200);

}

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

{

P0=P1=0x00;delay(200);

P0=P1=0xff;delay(200);

}

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

{

P2=table1[i];

delay(200);

}

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

{

P3=table1[i];

delay(200);

}

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

{

P2=P3=0x00;delay(200);

P2=P3=0xff;delay(200);

}

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

nzdgl(50,40);//逆时逐段一个点亮

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

{

zg(100,1);qs(100,10);

lbzgm(100,1);

}

//djs(50,100);//对角闪

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

{

zgxh(100,1);

nszgm(100,1);

}

 

djs(1000,10);

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

{

hwzjl(200,1);//横往中间亮

hwzjm(200,1);//横往中间灭

}

djs(300,10);//对角闪

/*for(i=0;i<10;i++)

{

swzjl(200,1);//竖往中间亮

swzjm(200,1);//竖往中间灭

}

*/

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

{

zgxh(100,1);

nszgm(100,1);

}

djs(100,20);//对角闪

zg(300,1);

lbzgm(300,1);

/*

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

{

zgxh1(100,1);

sszgm(100,1);

}

*/

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

{

sztl(200,1);//顺时逐个同步亮

nztm(200,1);

nztl(200,1);

sztm(200,1);//顺时逐个同步灭

}

djs(500,20);//对角闪

djs(100,30);//对角闪

djs(50,50);//对角闪

//djs(10,100);//对角闪

delay(1000);

}

}

 

voiddelay(uintt)

{

uintx,y;

for(x=t;x>0;x--)

{

for(y=120;y>0;y--);

}

}

 

因为89C52的容量有限,所以还有几个方式注释掉了。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1