最近某人要過生日,自己也是閑的無聊,便想做個單片機的東西來送人,自己做的,起碼也能代表自己的一片心意吧。
所謂的“呼吸燈”,就是通過程序控制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 }
程序不多,但是電路的制作的確很費時間和腦子,因為要考慮每條線的走線,還不能讓線太過於繁瑣
這是中間的一部分,像那個顯像管電視的樣子 哈哈哈
正面:
調試時的走線:(不堪入目啊)
最后的制作: