找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4065|回復: 1
打印 上一主題 下一主題
收起左側

呼吸燈-一個LED燈加單片機最小系統(tǒng)

[復制鏈接]
跳轉到指定樓層
樓主
ID:56331 發(fā)表于 2016-8-2 14:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一個LED燈加單片機最小系統(tǒng),就能組成一個呼吸燈
我用的是P3.4口,可以自己任意調換,建議用STC15F104W,一個是便宜另外一個原因就是小巧,精細。
用89系列做的話占地太大。
這個可以更改成一個指示燈,可以將程序做成一個函數加入到其他程序中,用來指示運行情況,例如,正常的時候是均勻閃,非正常的時候可以用呼吸燈快閃來表達程序運行問題。


#include<reg52.h>
#define N 2 //亮暗的速率
#define T 2000 //PWM的周期                          15F104W運行速度比89系類快           1T
sbit led=P3^4;
void pwm(int x)
{
         while(x--);
}
void main()
{
         int t=0;
         char f=0;//亮暗標志,0為亮
         while(1)
         {
                  led=0;
                  pwm(t);//Toff,亮的時間

                 led=1;
                  
                pwm(T-t);//Ton,暗的時間
                  
                if(!f) t+=N+4;//亮速率較快,模擬呼吸
                  else t-=N+2;//暗速率較慢
                 if(t>T) {f=1;t=T;}//超過最大值時,返回最大值,標志為暗
                 if(t<0) {f=0;t=0;}//超過最小值時,返回最小值,標志為亮
         }
}

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:56331 發(fā)表于 2016-8-2 14:22 | 只看該作者
#include<reg52.h>
#define N 2 //亮暗的速率
#define T 2000 //PWM的周期                          15F104W運行速度比89系類快           1T
sbit led=P3^4;
void pwm(int x)
{
        while(x--);
}
void main()
{
        int t=0;
        char f=0;//亮暗標志,0為亮
        while(1)
        {
                  led=0;
                  pwm(t);//Toff,亮的時間

                led=1;
                  
                pwm(T-t);//Ton,暗的時間
                  
                if(!f) t+=N+4;//亮速率較快,模擬呼吸
                  else t-=N+2;//暗速率較慢
                if(t>T) {f=1;t=T;}//超過最大值時,返回最大值,標志為暗
                if(t<0) {f=0;t=0;}//超過最小值時,返回最小值,標志為亮
        }
}

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表