看网上都是流水灯心形灯 刚学 做了一个星座灯也就是改了下布局 程序抄的
附加原理图 PCB 还有程序
Altium Designer画的单片机星座灯原理图和PCB图如下:(51hei附件中可下载工程文件)
单片机源程序如下:
- #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)
|