標(biāo)題:
心形花樣LED流水燈(帶程序)
[打印本頁]
作者:
diy-xue
時間:
2016-3-30 23:21
標(biāo)題:
心形花樣LED流水燈(帶程序)
心形花樣LED流水燈51單片機程序:
#include<reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar code zou[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//單個從0到7
uchar code you[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};//單個從7到0
uchar code liang0_7[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff}; // 逐個點亮0~7
uchar code liang7_0[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}; // 逐個點亮7~0
uchar code mie0_7[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00}; // 逐個滅0~7
uchar code mie7_0[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; // 逐個滅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<a;j++)
{
P0=P1=P2=P3=0x00;
P0=0x01;
delay(t);
for(i=0;i<7;i++)
{
P0=liang0_7[i+1];
P3=liang7_0[i];
delay(t);
}
P3=0xff;P1=0x01;
delay(t);
for(i=0;i<7;i++)
{
P1=liang0_7[i+1];
P2=liang7_0[i];
delay(t);
}
P2=0xff;delay(t);
}
}
void qs(uint t,uchar a) //全部閃爍
{
uchar j;
for(j=0;j<a;j++)
{
P0=P1=P2=P3=0x00;
delay(t);
P0=P1=P2=P3=0xff;
delay(t);
}
}
void zgxh(uint t,uchar a) // 逆時針逐個點亮
{
uchar i,j;
for (j=0;j<a;j++)
{
P0=P1=P2=P3=0xff;
for (i=0;i<8;i++)
{
P3=liang7_0[i];
delay(t);
}
for(i=0;i<8;i++)
{
P2=liang7_0[i];
delay(t);
}
for(i=0;i<8;i++)
{
P1=liang7_0[i];
delay(t);
}
for(i=0;i<8;i++)
{
P0=liang7_0[i];
delay(t);
}
}
}
void nszgm(uint t,uchar a) // 逆時針逐個滅
{
uchar i,j;
for(j=0;j<a;j++)
{
P0=P1=P2=P3=0xff;
for (i=0;i<8;i++)
{
P3=mie7_0[i];delay(t);
}
for (i=0;i<8;i++)
{
P2=mie7_0[i];delay(t);
}
for (i=0;i<8;i++)
{
P1=mie7_0[i];delay(t);
}
for (i=0;i<8;i++)
{
P0=mie7_0[i];delay(t);
}
}
}
void djs(uint t,uchar a) //對角閃
{
uchar j;
for(j=0;j<a;j++)
{
P0=P1=P2=P3=0x00;
P0=P3=0xff;
delay(t);
P0=P1=P2=P3=0x00;
P1=P2=0xff;
delay(t);
}
}
void lbzgm(uint t,uchar a)//兩邊逐個滅
{
uchar i,j;
for (j=0;j<a;j++)
{
P0=P1=P2=P3=0x00;
P3=0x7f;delay(t);
for(i=0;i<7;i++)
{
P3=mie7_0[i+1];
P0=mie0_7[i];
delay(t);
}
P0=0x00;
P2=0x7f;delay(t);
for(i=0;i<7;i++)
{
P2=mie7_0[i+1];
P1=mie0_7[i];
delay(t);
}
P1=0x00;delay(t);
}
}
void sztl(uint t,uchar a)//順時逐個同步亮
{
uchar i,j;
for(j=0;j<a;j++)
{
P0=P1=P2=P3=0x00;
for(i=0;i<8;i++)
{
P0=liang0_7[i];
P1=P2=P3=liang0_7[i];
delay(t);
}
}
}
void nztl(uint t,uchar a)//逆時逐個同步亮
{
uchar i,j;
for(j=0;j<a;j++)
{
P0=P1=P2=P3=0x00;
for(i=0;i<8;i++)
{
P0=liang7_0[i];
P1=P2=P3=liang7_0[i];
delay(t);
}
}
}
void sztm(uint t,uchar a)//順時逐個同步滅
{
uchar i,j;
for(j=0;j<a;j++)
{
P0=P1=P2=P3=0xff;
for(i=0;i<8;i++)
{
P0=mie0_7[i];
P1=P2=P3=mie0_7[i];
delay(t);
}
}
}
void nztm(uint t,uchar a)//逆時逐個同步滅
{
uchar i,j;
for(j=0;j<a;j++)
{
P0=P1=P2=P3=0xff;
for(i=0;i<8;i++)
{
P0=mie7_0[i];
P1=P2=P3=mie7_0[i];
delay(t);
}
}
}
void hwzjl(uint t,uchar a) //橫往中間亮
{
uchar i,j;
for (j=0;j<a;j++)
{
P0=P1=P2=P3=0x00;
for(i=0;i<8;i++)
{
P0=P2=liang0_7[i];
P1=P3=liang7_0[i];delay(t);
}
}
}
void hwzjm(uint t,uchar a) //橫往中間滅
{
uchar i,j;
for (j=0;j<a;j++)
{
P0=P1=P2=P3=0xff;
for(i=0;i<8;i++)
{
P0=P2=mie0_7[i];
P1=P3=mie7_0[i];delay(t);
}
}
}
void nzdl(uint t,uchar a) //逆時逐段亮
{
uchar i,j;
for (j=0;j<a;j++)
{
P0=P1=P2=P3=0x00;
for(i=0;i<8;i++)
{
P0=liang0_7[i];
delay(t);
}
P0=0x00;
for(i=0;i<8;i++)
{
P1=liang0_7[i];
delay(t);
}
P1=0x00;
for(i=0;i<8;i++)
{
P2=liang0_7[i];
delay(t);
}
P2=0x00;
for(i=0;i<8;i++)
{
P3=liang0_7[i];
delay(t);
}
P3=0x00;
}
}
void nzdgl(uint t,uchar a) //逆時逐段一個點亮
{
uchar i,j;
for (j=0;j<a;j++)
{
P0=P1=P2=P3=0x00;
for(i=0;i<8;i++)
{
P3=liang7_0[i];
delay(t);
}
P3=0x00;
for(i=0;i<8;i++)
{
P2=liang7_0[i];
delay(t);
}
P2=0x00;
for(i=0;i<8;i++)
{
P1=liang7_0[i];
delay(t);
}
P1=0x00;
for(i=0;i<8;i++)
{
P0=liang7_0[i];
delay(t);
}
P0=0x00;
}
}
void jgs(uint t,uchar a) //間隔閃
{
uchar j;
for (j=0;j<a;j++)
{
P0=P1=P2=P3=0x55;
delay(t);
P0=P1=P2=P3=0xaa;
delay(t);
}
}
void main()
{
uchar i;
while(1)
{
zg(100,1); //兩邊逐個亮
lbzgm(100,1); //兩邊逐個滅
jgs(300,10);
djs(100,20); //對角閃
////////////////////////////////////////////
P1=P2=P3=0x00;
for(i=0;i<3;i++)
{
P0=0xff;delay(800);
P0=0x00;delay(800);
}
P0=0xff;
for(i=0;i<3;i++)
{
P1=0xff;delay(800);
P1=0x00;delay(800);
}
P1=0xff;
for(i=0;i<3;i++)
{
P2=0xff;delay(800);
P2=0x00;delay(800);
}
P2=0xff;
for(i=0;i<3;i++)
{
P3=0xff;delay(800);
P3=0x00;delay(800);
}
P3=0xff;
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);
}
nzdl(200,3); //逆時逐段亮
jgs(50,100); //間隔閃
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<5;i++)
{
zgxh(100,1);
nszgm(100,1);
}
djs(100,20); //對角閃
zg(300,1);
lbzgm(300,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);
}
}
void delay(uint t)
{
uint x,y;
for (x=t;x>0;x--)
{
for (y=120;y>0;y--);
}
}
復(fù)制代碼
作者:
hqboy
時間:
2016-3-31 22:09
謝謝分享! 要有PCB 圖就更好了。
作者:
隨意
時間:
2016-4-1 17:40
有效果圖嘛
作者:
diy-xue
時間:
2016-4-1 21:31
本帖最后由 diy-xue 于 2016-4-1 21:43 編輯
隨意 發(fā)表于 2016-4-1 17:40
有效果圖嘛
恩……我拍了視頻。但是不知如何上傳。
作者:
雨軒wyx
時間:
2017-7-23 21:59
樓主,可以留下qq嗎?好多看不懂
作者:
啟暖愛人
時間:
2017-7-27 18:06
通過附件試試吧
作者:
一簇情人成
時間:
2021-1-7 10:10
樓主,請問這是32燈的程序嗎?
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1