自制“心形”单片机呼吸灯
扫描二维码
随时随地手机看文章
所谓的“呼吸灯”,就是通过程序控制led灯的闪烁过程,像呼吸一样有节奏。有亮度渐变的过程。
先来张效果图:
这图片有点大。。。。
这是未加修饰的样子,不过进行了简单的装饰后,就变身超级有爱的东西了
制作过程:
1 //******************************
2 // 51单片机模拟呼吸灯
3 // 2012.9.23
4 // menglei
5 // p0.0接一个LED灯,状态0为亮
6 //******************************
7
8
9 #include
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 }
程序不多,但是电路的制作的确很费时间和脑子,因为要考虑每条线的走线,还不能让线太过于繁琐
这是中间的一部分,像那个显像管电视的样子 哈哈哈
正面:
调试时的走线:(不堪入目啊)
最后的制作: