Altium Designer畫的心形流水燈原理圖和PCB圖如下:(51hei附件中可下載工程文件)
0.png (56.85 KB, 下載次數(shù): 99)
下載附件
2018-5-6 01:25 上傳
0.png (61.67 KB, 下載次數(shù): 95)
下載附件
2018-5-6 01:25 上傳
0.png (11.37 KB, 下載次數(shù): 79)
下載附件
2018-5-6 01:25 上傳
單片機源程序如下:
- #include <reg52.h>
- #include<intrins.h> //包含_crol_函數(shù)的頭文件
- #define uchar unsigned char
- #define uint unsigned int
- uchar aa,bb,cc,dd,ee;
- void delayms(uint t);
- void a();
- void b();
- void c();
- void d();
- void e();
- void f();
- void g();
- void h();
- void k();
- void q();
- void p();
- void l();
- void x();
- void v();
- void z();
- void y();
- void w();
- void m();
- void r();
- void i();
- uchar code LP0[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//半個心向下
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,//半心向上
- 0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//從右到左全心
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff//從左到全心
-
- };
- uchar code LP1[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,//
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,//
- 0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
-
- };
- uchar code LP3[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,//
- 0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff ,//
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff ,//
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff ,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
-
-
- };
- uchar code LP2[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,//
- 0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff ,//
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
-
- };
- uchar code LP01[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80//從0到7的一個一個亮
-
- };
- uchar code LP02[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};//從7到0的一個一個亮
-
-
- uchar code LP03[]={
- 0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff
- };
- uchar code LP04[]={
- 0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00
- };//從7開始逐個滅
- uchar code LP05[]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00
- };//從0開始到7逐個滅
- uchar code LP06[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- uchar code LP07[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff
- };//從7逐個亮
- uchar code LP08[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff
- }; //從0開始逐個亮
- void main()
- {
- k();q();p();v();v();l();l();w();h();h();h();k();m();e();p();c();c();c();c();
- r();d();d();h();h();l();p();d();
- d();y();i();p();v();l();k();h();g();
- f();d();k();p();h();h();z();x();c();v();b();m();
- z();q();f();k();v();v();w();r(); d();d();x();y();i();l();k();h();
- c();v();p();g();k();l();l();b();m();k(); g(); p();
- v();e();y();p();i();p();p();k();g();f(); w();
- z();l();x();c();c();c();c();c();k();p();e();q();v();v();r();b();m();h();
- m();h();d();w();r();k();k();g();k();k();k();x();
- k();d();d();y();l();z();k();j();g();
- f();p();c();c();c();c();i();v();p();k();k();p();k();b(); a();q();
- }
-
- void a() //順時針一個流水
- {
- uint i,m=150;
- for(m;m>80;m=m-8)
- {
- for(i=0;i<8;i++)
- {
- P1=P2=P3=0X00;
- P0=LP01[i];
- delayms(m);
- }
- for(i=0;i<8;i++)
- {
- P0=P1=P3=0X00;
- P2=LP02[i];
- delayms(m);
- }
-
- for(i=0;i<8;i++)
- {
- P1=P2=P0=0X00;
- P3=LP02[i] ;
- delayms(m);
- }
- for(i=0;i<8;i++)
- {
- P0=P2=P3=0X00;
- P1=LP02[i];
- delayms(m);
-
- }
- }
- }
-
- void b()
- { uint i;
- for(i=0;i<97;i++)
- {
- uint m=150;
- P0=LP0[i];
- P1=LP1[i];
- P2=LP2[i];
- P3=LP3[i];
- delayms(m);
- }
- }
- void c() //一起閃滅
- {
- uint m=380;
- for(m;m>30;m=m-50)
- {P0=P1=P2=P3=0X00;
- delayms(m);
- P0=P1=P2=P3=0xff;
- delayms(m);
-
- }
- }
- void d() //8燈順時針行走
- { uint m=140,j=0,i=0,k=0,q=0;
-
- for(j;j<9;j++) //從0到2過度
- {
- P0=LP05[j];
- P2=LP07[j];
- P1=P3=LP06[j];
- delayms(m);
- }
-
-
-
- for(i;i<9;i++) //從2到3過度
- {
- P0=P1=LP06[i];
- P2=LP04[i];
- P3=LP07[i];
- delayms(m);
- }
- for(k;j<9;k++)//從3到1過度
- {
- P0=P2=LP06[k];
- P3=LP04[k];
- P1=LP07[k];
- delayms(m);
- }
-
- for(q;q<9;q++)//從3到0過度
- {
- P3=P2=LP06[q];
- P1=LP04[q];
- P0=LP08[q];
- delayms(m);
- }
- }
- void e() //單個從倆邊向中間
- { uint i,j,m=250;
- for(i=0;i<8;i++)
- {
- P0=P1=LP01[i];
- P2=P3=LP06[i];
- delayms(m);
- for(j=0;j<8;j++)
- {
- P3=LP01[j];
- P2=LP02[j];
- P0=P1=LP06[j];
- delayms(m);
- }
- }
- }
- void f()//從中間一個向兩邊
- { uint i,m=200;
- for(i=0;i<8;i++)
- {
- P0=P2=P1=LP02[i];
- P3=LP01[i];
- delayms(m);
- }
-
-
- }
- void g()//中間向倆邊亮著走向倆邊收回
- { uint i,j,m=200;
- for(i=0;i<8;i++)
- {
- P0=P2=P1=LP07[i];
- P3=LP08[i];
- delayms(m);
- }
- for(j=0;j<9;j++)
- {
- P0=P2=P1=LP04[j];
- P3=LP05[j];
- delayms(m);
- }
- }
- void h()//從中間亮再從下面回來
- { uint i,j,m,n;
- for(i=0;i<8;i++)
- {m=200;
- P0=P2=P1=LP07[i];
- P3=LP08[i];
- delayms(m);
- }
- for(n=0;n<5;n++)
- { m=200;
- P0=P2=P1=P3=0xff;
- delayms(m);
- }
- for(j=0;j<9;j++)
- { m=200;
- P0=P2=P1=LP08[j];
- P3=LP07[j];
- delayms(m);
- }
-
- for(n=0;n<5;n++)
- { m=200;
- P0=P2=P1=P3=0xff;
- delayms(m);
- }
-
- }
- void k() //亂花閃
- { uint i,m=100;
- for(i=0;i<8;i++)
- {
- P0=P1=P2=P3=0xaa;
- delayms(m);
- P0=P1=P2=P3=0x55;
- delayms(m);
-
- }
- }
- void q() //逆時針一個流水
- {
- uint i,m=180;
- for(m;m>0;m=m-10)
- {
-
- for(i=0;i<8;i++)
- {
- P0=P2=P3=0X00;
- P1=LP01[i];
- delayms(m);
-
- }
-
- for(i=0;i<8;i++)
- {
- P1=P2=P0=0X00;
- P3=LP01[i]
- ;
- delayms(m);
- }
- for(i=0;i<8;i++)
- {
- P0=P1=P3=0X00;
- P2=LP01[i];
- delayms(m);
- }
-
-
- for(i=0;i<8;i++)
- {
- P1=P2=P3=0X00;
- P0=LP02[i];
- delayms(m);
- }
- }
- }
- void p()//先左邊亮在右邊亮
- {
- uint i,j,k,o,m=160;
- for(i=0;i<8;i++)
- {
- P0=P2=P3=0X00;
- P1=LP08[i];
- delayms(m);
- }
- for(j=0;j<8;j++)
- {
- P0=P2=0X00;
- P3=LP08[j];
- delayms(m);
- }
- for(k=0;k<8;k++)
- {
- P1=P3=0Xff;
- P0=LP08[k];
- delayms(m);
- }
- for(o=0;o<8;o++)
- {
- P1=P3=P0=0Xff;
- P2=LP07[o];
- delayms(m);
- }
- }
- void l() //先從左一半滅全滅完后在右邊
- {
- uint i,j,x,s,m=300;
- P1=P3=P0=0Xff;
- delayms(80);
- for(i=0;i<8;i++)
- {
- P1=P3=P0=0Xff;
- P2=LP05[i];
- delayms(m);
- }
- for(j=0;j<8;j++)
- {
- P1=P3=0Xff;
- P2=0x00;
- P0=LP04[j];
- delayms(m);
- }
- for(x=0;x<8;x++)
- {
- P0=P2=0x00;
- P1=0xff;
- P3=LP04[x];
- delayms(m);
- }
-
- for(s=0;s<8;s++)
- {
- P0=P2=P3=0x00;
-
- P1=LP04[s];
- delayms(m);
- }
-
- }
- void x()//逆時針流水
- {
- uint i,j,k,n;
- for(i=0;i<8;i++)
- {
- P0=P2=P3=0x00;
-
- P1=LP01[i];
- delayms(250);
- }
- for(j=0;j<8;j++)
- {
- P0=P2=P1=0x00;
-
- P3=LP01[j];
- delayms(200);
- }
- for(k=0;k<8;k++)
- {
- P0=P3=P1=0x00;
-
- P2=LP01[k];
- delayms(170);
- }
- for(n=0;n<8;n++)
- {
- P2=P3=P1=0x00;
-
- P0=LP02[n];
- delayms(130);
- }
-
-
- }
- void v()//中間向倆邊
- {
- uint i,j,k,n,p,m;
- for(i=0;i<8;i++)
- { m=300;
- P0=P2=P3=P1=0X00;
- P3=LP08[i];
- delayms(m);
- }
- for(j=0;j<8;j++)
- { m=300;
- P0=P1=0X00;
- P3=0xff;
- P2=LP07[j];
- delayms(m);
- }
- for(k=0;k<8;k++)
- { m=300;
- P3=P2=0Xff;
- P0=0x00;
- P1=LP07[k];
- delayms(m);
- }
- for(n=0;n<8;n++)
- { m=300;
- P1=P3=P2=0Xff;
- P0=0x00;
- P0=LP07[n];
- delayms(m);
- }
- for(p=0;p<3;p++)
- { m=80;
- P0=P1=P3=P2=0Xff;
- delayms(m);
-
- }
-
-
-
- }
- void z()//對角開始亮
- {
- uint i,j,k,m;
- for(i=0;i<8;i++)
- {
- m=200;
- P0=LP08[i];
- P3=LP07[i];
- P1=P2=0x00;
- delayms(m);
- }
-
- for(j=0;i<j;j++)
- {
- m=200;
- P2=P1=LP08[j];
-
- P3=P0=0xff;
- delayms(m);
- }
- for(k=0;k<3;k++)
- { m=40;
- P0=P1=P3=P2=0Xff;
- delayms(m);
-
- }
-
- }
- void y() //從左邊向倆邊滅
- {uint i,j,k,m;
- for(i=0;i<8;i++)
- { m=200;
- P1=LP04[i];
- P3= LP05[i];
- P0=P2=0xff;
- delayms(m);
-
- }
- for(j=0;j<8;j++)
- { m=200;
- P2=P0=LP05[j];
- P1=P3=0x00;
- delayms(m);
-
- }
- for(k=0;k<3;k++)
- { m=160;
- P0=P1=P3=P2=0Xff;
- delayms(m);
-
- }
- }
-
- void i()
- {
- uint n,j,m=200;
- for(m=200;m>20;m=m-15)
-
- {
- for(n=0;n<8;n++)
- {
- P0=LP08[n];
- P3=LP07[n];
- P1=P2=0x00;
- delayms(m);
-
- }
- for(j=0;j<8;j++)
- {
- P1=P2=LP07[j];
- P0=P3=0xff;
- delayms(m);
-
- }
-
- }
- }
- void w()//半個反向像一起
- {
- uint n,j,m=200;
- for(m=200;m>20;m=m-15)
-
- {
- for(n=0;n<8;n++)
- {
- P0=LP08[n];
- P3=LP07[n];
- P1=P2=0x00;
- delayms(m);
-
- }
- for(j=0;j<8;j++)
- {
- P1=P2=LP07[j];
- P0=P3=0xff;
- delayms(m);
- }
- }
- }
- void m() //一半反著走
- {
- uint i,n,j,m=200;
- for(m=100;m>20;m=m-15)
-
- {
- for(n=0;n<8;n++)
- {
- P1=P2=LP08[n];
-
- P0=P3=0x00;
- delayms(m);
-
- }
- for(j=0;j<8;j++)
- {
- P3=P0=LP08[j];
- P0=LP07[j];
- P1=P2=0xff;
- delayms(m);
- }
-
- }
- for(i=0;i<3;i++)
- {
- m=150;
-
- P3=P0=P1=P2=0xff;
- delayms(m);
- }
- }
- void r()
- {uint m;
-
- for(m=400;m>10;m=m-10)
-
- {
- P3=P1=0xff;
- P0=P2=0x00;
- delayms(m);
- P3=P1=0x00;
- P0=P2=0xff;
- delayms(m);
- }
- }
-
-
- void delayms(uint t) //毫秒延時
- {
- uint i,j;
- for(i=t;i>0;i--)
- for(j=110;j>0;j--);
-
- }
-
復(fù)制代碼
所有資料51hei提供下載:
心形流水燈制作.rar
(662.86 KB, 下載次數(shù): 106)
2018-5-6 01:27 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|