自制“心形”單片機(jī)呼吸燈
所謂的“呼吸燈”,就是通過(guò)程序控制led燈的閃爍過(guò)程,像呼吸一樣有節(jié)奏。有亮度漸變的過(guò)程。
先來(lái)張效果圖:
這圖片有點(diǎn)大。。。。
這是未加修飾的樣子,不過(guò)進(jìn)行了簡(jiǎn)單的裝飾后,就變身超級(jí)有愛(ài)的東西了
制作過(guò)程:
1 //******************************
2 // 51單片機(jī)模擬呼吸燈
3 // 2012.9.23
4 // menglei
5 // p0.0接一個(gè)LED燈,狀態(tài)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次,每個(gè)函數(shù)執(zhí)行的次數(shù)
26 while(1){
27 P0 = 0x00;
28 pwm(t); //Toff,亮的時(shí)間
29 //led0=1;
30 P0 = 0xff;
31 pwm(T-t+100);//Ton,暗的時(shí)間
32 if(!f) t+=N+1;//亮速率較快,模擬呼吸
33 else t-=N;//暗速率較慢
34 if(t>T) {f=1;t=T;}//超過(guò)最大值時(shí),返回最大值,標(biāo)志為暗
35 if(t<0) {f=0;t=0;}//超過(guò)最小值時(shí),返回最小值,標(biāo)志為亮
36 // count--;
37 }
38 }
39 void main()
40 {
41
42 while(1)
43 {
44 flash1();
45 }
46 }
程序不多,但是電路的制作的確很費(fèi)時(shí)間和腦子,因?yàn)橐紤]每條線的走線,還不能讓線太過(guò)于繁瑣
這是中間的一部分,像那個(gè)顯像管電視的樣子 哈哈哈
正面:
調(diào)試時(shí)的走線:(不堪入目?。?/p>
最后的制作: