新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 自制“心形”單片機(jī)呼吸燈

自制“心形”單片機(jī)呼吸燈

作者: 時(shí)間:2017-01-06 來(lái)源:網(wǎng)絡(luò) 收藏

  所謂的“呼吸燈”,就是通過(guò)程序控制燈的閃爍過(guò)程,像呼吸一樣有節(jié)奏。有亮度漸變的過(guò)程。

本文引用地址:http://m.butianyuan.cn/article/201701/342565.htm

  先來(lái)張效果圖:

    

 

  這圖片有點(diǎn)大。。。。

  這是未加修飾的樣子,不過(guò)進(jìn)行了簡(jiǎn)單的裝飾后,就變身超級(jí)有愛(ài)的東西了

    

 

  制作過(guò)程:

  1 //******************************

  2 // 51模擬呼吸燈

  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 0=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 //0=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í)的走線:(不堪入目啊)

    

 

  最后的制作:

    

 



關(guān)鍵詞: 單片機(jī) led

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉