找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 22145|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

我制作的單片機呼吸燈程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:232530 發(fā)表于 2017-12-8 18:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
參考了51hei論壇 hongru的作品,做出了一點修改
呼吸燈就是讓LED燈的閃爍像呼吸一樣,時呼時吸,時亮?xí)r暗,利用LED的余輝和人眼的暫留效應(yīng),看上去和人的呼吸一樣。
用C語言編程實現(xiàn)PWM(脈寬調(diào)制)輸出驅(qū)動LED,逐漸增加PWM的占空比從而實現(xiàn)LED模擬呼吸的過程,即漸亮再漸暗再漸亮再漸暗……如此往復(fù),再利用LED的余輝和人眼的暫留效應(yīng),看上去就和人的呼吸一樣。
我認為這個程序不需要先拉低P1口,如果拉低了,燈會有卡頓的感覺。

單片機源程序如下:
  1. #include<reg51.h>
  2. void Delay1(int del)
  3. {
  4.         int i,j;
  5.         for(i=0; i<del; i++)
  6.         for(j=0; j<1827; j++)   
  7.         ;
  8. }
  9. void Delay(unsigned int t)
  10. {
  11. while(--t);
  12. }
  13. //函數(shù)聲明
  14. unsigned int z,y;
  15. void main (void)//主函數(shù)
  16. {
  17.         unsigned int CYCLE=400,PWM_LOW=0;//定義周期并賦值
  18.         while (1)         //主循環(huán)
  19.         {

  20. /*--------整排LED燈呼吸---------*/
  21.                
  22.                 Delay1(100);                                                                 //加延時,可以看到熄滅的過程(下面程序同理)
  23.                 for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)           //PWM_LOW表示低
  24.                         {
  25.                                 P1=0x00;                                       
  26.                                 Delay(PWM_LOW);
  27.                                 P1=0xff;
  28.                                 Delay(CYCLE-PWM_LOW);
  29.                         }
  30.                 P1=0xff;                                                                               
  31.                 for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)         //與逐漸變亮相反的過程
  32.                         {
  33.                                    P1=0x00;                                                        //點亮LED
  34.                                    Delay(PWM_LOW);
  35.                                    P1=0xff;                                                        //熄滅LED
  36.                                   Delay(CYCLE-PWM_LOW);                                //主循環(huán)中添加其他需要一直工作的程序,延時長度,600次循環(huán)中從599減至1
  37.                         }

  38. }
  39. }
復(fù)制代碼

所有資料51hei提供下載:
呼吸燈.zip (13.83 KB, 下載次數(shù): 156)


評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:483535 發(fā)表于 2019-3-3 09:25 | 只看該作者
有用,有用,有用
回復(fù)

使用道具 舉報

板凳
ID:18591 發(fā)表于 2019-3-3 19:18 | 只看該作者
不錯~~~~~~~~~~~~~~~
回復(fù)

使用道具 舉報

地板
ID:471632 發(fā)表于 2019-3-30 11:51 | 只看該作者
硬件連接呢?也順便公布一下呀!
回復(fù)

使用道具 舉報

5#
ID:99259 發(fā)表于 2019-9-22 10:50 | 只看該作者
好用,學(xué)習(xí)了。
回復(fù)

使用道具 舉報

6#
ID:743219 發(fā)表于 2020-5-5 19:29 來自手機 | 只看該作者
tigerzq 發(fā)表于 2019-3-30 11:51
硬件連接呢?也順便公布一下呀!

led接p1
回復(fù)

使用道具 舉報

7#
ID:762422 發(fā)表于 2020-6-12 20:11 | 只看該作者
我led接P1口,可是二極管沒反應(yīng),求解答
回復(fù)

使用道具 舉報

8#
ID:138956 發(fā)表于 2020-10-4 18:34 | 只看該作者
qwertyuiop_zsq 發(fā)表于 2020-6-12 20:11
我led接P1口,可是二極管沒反應(yīng),求解答

你怎么接的?按我的理解,發(fā)光二極管的A極接+5V,K極接P1口,你這樣試試。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表