自制“心形”单片机呼吸灯

最近某人要过生日,自己也是闲的无聊,便想做个单片机的东西来送人,自己做的,起码也能代表自己的一片心意吧。

所谓的“呼吸灯”,就是通过程序控制led灯的闪烁过程,像呼吸一样有节奏。有亮度渐变的过程。

先来张效果图:

这图片有点大。。。。

这是未加修饰的样子,不过进行了简单的装饰后,就变身超级有爱的东西了

制作过程:

程序是我之前在9月份就找好的了,符上代码:

 1 //******************************
 2 //   51单片机模拟呼吸灯
 3 //     2012.9.23
 4 //      menglei
5 // p0.0接一个LED灯,状态0为亮 6 //****************************** 7 8 9 #include<reg52.h> 10 #define N 2 //亮暗的速率 11 #define T 800 //PWM的周期 12 #define T1 1400 13 #define T2 900 14 //sbit led0=P0^0; 15 //====================== 16 void pwm(int x) 17 { 18 while(x--); 19 } 20 //====================== 21 22 void flash1(void){ 23 int t = 0; 24 char f = 0; 25 int count = 5;//5次,每个函数执行的次数 26 while(1){ 27 P0 = 0x00; 28 pwm(t); //Toff,亮的时间 29 //led0=1; 30 P0 = 0xff; 31 pwm(T-t+100);//Ton,暗的时间 32 if(!f) t+=N+1;//亮速率较快,模拟呼吸 33 else t-=N;//暗速率较慢 34 if(t>T) {f=1;t=T;}//超过最大值时,返回最大值,标志为暗 35 if(t<0) {f=0;t=0;}//超过最小值时,返回最小值,标志为亮 36 // count--; 37 } 38 } 39 void main() 40 { 41 42 while(1) 43 { 44 flash1(); 45 } 46 }


 

程序不多,但是电路的制作的确很费时间和脑子,因为要考虑每条线的走线,还不能让线太过于繁琐

这是中间的一部分,像那个显像管电视的样子  哈哈哈

正面:

调试时的走线:(不堪入目啊)

最后的制作:

转载文章请注明出处: http://www.cnblogs.com/menglei/
原文地址:https://www.cnblogs.com/menglei/p/2798728.html