找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

自己做了一個(gè)呼吸燈,給大家分享一下程序,用了PWM調(diào)節(jié)頻率,還有一個(gè)用藍(lán)牙點(diǎn)燈程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:219350 發(fā)表于 2017-7-17 20:51 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

#include<reg51.h>
/*-----------定義單片機(jī)引腳-----*/
sbit LED0=P1^0;
sbit LED1=P1^1;
sbit LED2=P1^2;
sbit LED3=P1^3;
sbit LED4=P1^4;
sbit LED5=P1^5;
sbit LED6=P1^6;
sbit LED7=P1^7;

void Delay(unsigned int t); //函數(shù)聲明
unsigned int z,y;
void main (void)//主函數(shù)
{
        unsigned int CYCLE=500,PWM_LOW=0;//定義周期并賦值
        while (1)         //主循環(huán)
        {

/*--------整排LED燈呼吸---------*/
                P1=0x00;
                Delay(500);                                                                 //加延時(shí),可以看到熄滅的過(guò)程(下面程序同理)
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)           //PWM_LOW表示低
                        {
                                P1=0x00;                                       
                                Delay(PWM_LOW);
                                P1=0xff;
                                Delay(CYCLE-PWM_LOW);
                        }
        //        P1=0xff;                                                                               
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)         //與逐漸變亮相反的過(guò)程
                        {
                                   P1=0x00;                                                        //點(diǎn)亮LED
                                   Delay(PWM_LOW);
                                   P1=0xff;                                                        //熄滅LED
                                  Delay(CYCLE-PWM_LOW);                                //主循環(huán)中添加其他需要一直工作的程序,延時(shí)長(zhǎng)度,600次循環(huán)中從599減至1
                        }


/*--------第一顆LED燈呼吸---------*/
                LED0=1;
                Delay(500);         
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)          
                        {
                                LED0=0;                                                         
                                Delay(PWM_LOW);
                                LED0=1;                                                      
                                Delay(CYCLE-PWM_LOW);
                        }
                LED0=0;                                                                               
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)   
                        {
                                   LED0=0;
                                   Delay(PWM_LOW);
                                   LED0=1;
                                  Delay(CYCLE-PWM_LOW);                          
                        }


/*--------第二顆LED燈呼吸----------*/
                LED1=1;
                Delay(500);      
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)   
                        {
                                   LED1=0;
                                   Delay(PWM_LOW);
                                   LED1=1;        
                                  Delay(CYCLE-PWM_LOW);
                        }
                LED1=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                        {
                                LED1=0;
                                Delay(PWM_LOW);
                                LED1=1;
                                Delay(CYCLE-PWM_LOW);
                        }


/*--------第三顆LED燈呼吸----------*/
                LED2=1;
                Delay(500);
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                        {
                                   LED2=0;      
                                   Delay(PWM_LOW);
                                LED2=1;     
                                Delay(CYCLE-PWM_LOW);             
                        }
                LED2=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                        {
                                   LED2=0;
                                   Delay(PWM_LOW);
                                   LED2=1;
                              Delay(CYCLE-PWM_LOW);
                           }

/*--------第四顆LED燈呼吸----------*/
                LED3=1;
                Delay(500);
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                        {
                                  LED3=0;        
                                 Delay(PWM_LOW);
                                LED3=1;
                            Delay(CYCLE-PWM_LOW);
                        }
                LED3=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                        {
                                   LED3=0;
                                   Delay(PWM_LOW);
                                   LED3=1;
                              Delay(CYCLE-PWM_LOW);
                    }

/*--------第五顆LED燈呼吸----------*/
                LED4=1;
                Delay(500);     
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                        {
                                   LED4=0;      
                                   Delay(PWM_LOW);
                                   LED4=1;      
                              Delay(CYCLE-PWM_LOW);
                    }
                LED4=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                        {
                                   LED4=0;
                                   Delay(PWM_LOW);
                                   LED4=1;
                              Delay(CYCLE-PWM_LOW);
                    }

/*--------第六顆LED燈呼吸----------*/
                LED5=1;
                Delay(500);      
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                        {
                                   LED5=0;      
                                   Delay(PWM_LOW);
                                   LED5=1;        
                              Delay(CYCLE-PWM_LOW);
                    }
                LED5=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                        {
                                   LED5=0;
                                   Delay(PWM_LOW);
                                   LED5=1;
                              Delay(CYCLE-PWM_LOW);
                    }

/*--------第七顆LED燈呼吸----------*/
                LED6=1;
                Delay(500);      
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                        {
                                   LED6=0;   
                                   Delay(PWM_LOW);
                                   LED6=1;      
                              Delay(CYCLE-PWM_LOW);
                    }
                LED6=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                        {
                                   LED6=0;
                                   Delay(PWM_LOW);
                                   LED6=1;
                              Delay(CYCLE-PWM_LOW);
                    }

/*--------第八顆LED燈呼吸----------*/
                LED7=1;
                Delay(500);     
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                        {
                                   LED7=0;   
                                   Delay(PWM_LOW);
                                   LED7=1;
                              Delay(CYCLE-PWM_LOW);
                    }
                LED7=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                        {
                                   LED7=0;
                                   Delay(PWM_LOW);
                                   LED7=1;
                              Delay(CYCLE-PWM_LOW);
                          }

                P1=0x00;
                for(z=500;z>0;z--)
                        for(y=110;y>0;y--);
                P1=0xff;
                for(z=500;z>0;z--)
                        for(y=110;y>0;y--);
                                P1=0x00;
                for(z=500;z>0;z--)
                        for(y=110;y>0;y--);
                P1=0xff;
                for(z=500;z>0;z--)
                        for(y=110;y>0;y--);       
        }
}
void Delay(unsigned int t)
{
while(--t);
}


p2-3.rar

28.01 KB, 下載次數(shù): 37, 下載積分: 黑幣 -5

藍(lán)牙點(diǎn)燈.rar

23.28 KB, 下載次數(shù): 51, 下載積分: 黑幣 -5

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

使用道具 舉報(bào)

沙發(fā)
ID:159139 發(fā)表于 2017-7-21 13:31 來(lái)自手機(jī) | 只看該作者
謝謝分享,下來(lái)學(xué)習(xí)一下。
回復(fù)

使用道具 舉報(bào)

板凳
ID:222772 發(fā)表于 2017-8-16 14:38 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

地板
ID:130345 發(fā)表于 2017-8-17 10:25 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

5#
ID:461671 發(fā)表于 2019-1-10 10:58 | 只看該作者
這個(gè)程序大神樓主運(yùn)行過(guò)可以實(shí)現(xiàn)呼吸效果么。
回復(fù)

使用道具 舉報(bào)

6#
ID:470528 發(fā)表于 2019-1-19 14:12 來(lái)自手機(jī) | 只看該作者
好的值得學(xué)習(xí)收藏
回復(fù)

使用道具 舉報(bào)

7#
ID:470714 發(fā)表于 2019-1-19 21:40 | 只看該作者

好的值得學(xué)習(xí)收藏
回復(fù)

使用道具 舉報(bào)

8#
ID:466430 發(fā)表于 2019-1-20 17:55 來(lái)自手機(jī) | 只看該作者
值得學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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