看網上都是流水燈心形燈 剛學 做了一個星座燈也就是改了下布局 程序抄的
附加原理圖 PCB 還有程序
Altium Designer畫的單片機星座燈原理圖和PCB圖如下:(51hei附件中可下載工程文件)
0.jpg (39.21 KB, 下載次數: 32)
下載附件
2018-4-6 02:05 上傳
0.jpg (79.14 KB, 下載次數: 25)
下載附件
2018-4-6 02:04 上傳
0.png (49.14 KB, 下載次數: 35)
下載附件
2018-4-6 02:03 上傳
單片機源程序如下:
- #include<reg51.h>
- #define uint unsigned int
- #define uchar unsigned char
- uint n,n1,n2,n3,n4,n5,n6,n7;
- uchar code light[]={
- 0xbd,0xbb,0xbe,0xde,
- 0xdd,0xee,0xed,0xeb,
- 0xb5,0xba,0xd5,0xda,
- 0xe5,0xea,0x5a,0xe5};
- void delay(uint);
- void breath(); //呼吸
- void flashing(uint); //十六燈閃爍
- void flicker(uint); //間隔閃爍
- void waterlamp(uint); //流水燈
- void regainlamp0(uint); //復原燈 從前往后亮
- void regainlamp1(uint); //從后往前亮
- void regainlamp2(uint); //中間向兩邊滅燈
- void Kong_lamp(uint); //中間暗燈
- void irr_flashing(uint); //無規則閃爍
- void Qun_flashing(uint); //四個一閃,三個一閃,三個一閃,兩個一閃,四個一閃,亂閃
- void Y_lamp(uint); //從上往下亮
- void main()
- {
- uint i;
- while(1)
- {
- P1=P3=0x00;
- delay(100);
- for(i=3;i>0;i--)
- {
- breath();
- }
-
- for(i=5;i>0;i--)
- {
- flicker(500);
- }
- P1=P3=0xff;
- waterlamp(280);
- waterlamp(240);
- waterlamp(200);
-
- regainlamp0(200);
- breath();
- breath();
-
- for(i=2;i>0;i--);
- {
- flashing(500);
- }
- irr_flashing(200);
-
-
- P1=P3=0xff;
- regainlamp0(200);
-
- flashing(500);
- regainlamp1(300);
- Kong_lamp(200);
- regainlamp2(220);
-
- irr_flashing(300);
- waterlamp(800);
- Kong_lamp(800);
- for(i=2;i>0;i--)
- flicker(300);
-
- Y_lamp(500);
- }
- }
- void breath() //呼吸
- {
- n1=n3=25;
- n2=n4=0;
- for(n6=10;n6>0;n6--)
- {
- for(n=30;n>0;n--)
- {
- P1=0xff;
- P3=0xff;
- delay(n1);
- P1=0x00;
- P3=0x00;
- delay(n2);
- }
- n1--;
- n2++;
- if(n1==0)
- n1=20;
- if(n2==20)
- n2=0;
- }
-
-
- for(n7=10;n7>0;n7--)
- {
- for(n5=30;n5>0;n5--)
- {
- P1=0xff;
- P3=0xff;
- delay(n4);
- P1=0x00;
- P3=0x00;
- delay(n3);
- }
- n3--;
- n4++;
- if(n3==0)
- n3=20;
- if(n4==20)
- n4=0;
- }
- }
- void flashing(uint a) //十六燈閃爍
- {
- P1=0x00;
- P3=0x00;
- delay(a);
- P1=0xff;
- P3=0xff;
- delay(a);
- }
- void flicker(uint b) //間隔閃爍
- {
- P1=0xaa;
- P3=0xaa;
- delay(b);
- P1=0x55;
- P3=0x55;
- delay(b);
- P1=P3=0x00;
- }
- //流水燈
- void waterlamp(uint c)
- {
- P1=0xbe;
- delay(c);
- P1=0xdd;
- delay(c);
- P1=0xfb;
- delay(c);
- P1=0xf7;
- delay(c);
- P1=0xef;
- delay(c);
- P1=0x7f;
- delay(c);
- P1=0xff;
- P3=0xfe;
- delay(c);
- P3=0xfb;
- delay(c);
- P3=0xdf;
- delay(c);
- P3=0xbf;
- delay(c);
- P3=0xef;
- delay(c);
- P3=0xf7;
- delay(c);
- P3=0xfd;
- delay(c);
- P3=0x7f;
- delay(c);
- P3=0xff;
-
- }
- void regainlamp0(uint d)
- {
- P1=0xbe;
- delay(d);
- P1=0x9c;
- delay(d);
- P1=0x98;
- delay(d);
- P1=0x90;
- delay(d);
- P1=0x80;
- delay(d);
- P1=0x00;
- delay(d);
- P3=0xfe;
- delay(d);
- P3=0xfa;
- delay(d);
- P3=0xda;
- delay(d);
- P3=0x9a;
- delay(d);
- P3=0x8a;
- delay(d);
- P3=0x82;
- delay(d);
- P3=0x80;
- delay(d);
- P3=0x00;
- delay(d);
- }
- void regainlamp1(uint f)
- {
- P3=~0x00;
- delay(f);
- P3=~0x80;
- delay(f);
- P3=~0x82;
- delay(f);
- P3=~0x8a;
- delay(f);
- P3=~0x9a;
- delay(f);
- P3=~0xda;
- delay(f);
- P3=~0xfa;
- delay(f);
- P3=~0xfe;
- delay(f);
- P3=0x00;
- P1=~0x00;
- delay(f);
- P1=~0x80;
- delay(f);
- P1=~0x90;
- delay(f);
- P1=~0x98;
- delay(f);
- P1=~0x9c;
- delay(f);
- P1=~0xbe;
- delay(f);
- P1=P3=0x00;
- delay(f);
- }
- void regainlamp2(uint g)
- {
- P1=P3=0xff;
- delay(g);
- P1=0x80; P3=0x01;
- delay(g);
- P1=0x90; P3=0x05;
- delay(g);
- P1=0x98; P3=0x25;
- delay(g);
- P1=0x9c; P3=0xd5;
- delay(g);
- P1=0xbd; P3=0x7d;
- delay(g);
- P1=0xff; P3=0xff;
- delay(g);
- }
- void irr_flashing(uint e)
- {
- uchar j;
- for(j=0;j<16;j++)
- {
- P1=light[j];
- P3=light[16-j];
- delay(e);
- P1=P3=0xff;
- delay(e);
- }
- }
- void Kong_lamp(uint h)
- {
- P1=P3=0xff;
- delay(h);
- P1=0xef; P3=0xfe;
- delay(h);
- P1=0x3f; P3=0xcf;
- delay(h);
- P1=~0x98; P3=~0x25;
- delay(h);
- P1=~0x9c; P3=~0xd5;
- delay(h);
- P1=~0xbd; P3=~0x7d;
- delay(h);
- P1=~0xff; P3=~0xff;
- delay(h);
- }
- void Qun_flashing(uint j)
- {
- P1=P3=0xff;
- delay(j);
- P1=0x9c;
- delay(j);
- P1=P3=0xff;
- delay(j);
- P1=0xe3;
- delay(j);
- P1=P3=0xff;
- delay(j);
- P1=0x7f; P3=0xf6;
- delay(j);
- P1=P3=0xff;
- delay(j);
- P1=0xff; P3=0x9f;
- delay(j);
- P1=P3=0xff;
- delay(j);
- P3=0x65;
- delay(j);
- P1=P3=0xff;
- delay(j);
- P1=0xff; P3=0x9f;
- delay(j);
- P1=P3=0xff;
- delay(j);
- P3=0xff; P1=0xe3;
- delay(j);
- P1=P3=0xff;
- delay(j);
- P3=0x65;
- delay(j);
- P1=P3=0xff;
- delay(j);
- P3=0xff; P1=0x9c;
- delay(j);
- P1=P3=0xff;
- delay(j);
- P1=0xff; P3=0x00;
- delay(j);
- P1=P3=0xff;
- delay(j);
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
星座燈(天蝎座).zip
(6.94 MB, 下載次數: 9)
2018-4-5 21:34 上傳
點擊文件名下載附件
程序加板子 下載積分: 黑幣 -5
|