久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

如何用51單片機實現呼吸燈(2秒變亮,4秒變暗)

[復制鏈接]
跳轉到指定樓層
樓主
ID:613250 發表于 2020-10-4 15:56 來自手機 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
是利用占空比嗎?比如我把初始占空比設為50%,每次增加2%,到90%時,再每次減少1%,到50%.這樣可行嗎?還有pwm的周期一般設為多少合適。再者,利用proteus如何看到呼吸燈的效果。初學51,求各路大佬賜教!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:138956 發表于 2020-10-4 18:50 | 只看該作者

//包含該文件可以使用_nop_()函數
#include <intrins.h>

unsigned int Num=0;         //聲明遞增 遞減變量
unsigned int Clock=3000;  //聲明變量 這個變量就是肉眼看到的變快變慢的參數

/***********************************************
函數名稱:Delay_us
功    能:
入口參數:us:延時
返 回 值:無        
備    注:內部時鐘:24MHz           
************************************************/
void Delay_us(unsigned int i) //這個延時就是PWM的頻率了 太大眼睛能看到閃來閃去
{
        for(;i>0;i--)               
                _nop_();        
}
/***********************************************
函數名稱:husi_led
功    能:呼吸燈
入口參數:us:延時數量
返 回 值:無        
備    注:
************************************************/
void husi_led(void)
{
while(1)
   {
      for(Num=Clock;Num>0;Num--) //led逐漸變暗
          {                        
       P05=1;                       //測試LED燈                        
       Delay_us(Num);         //3000慢慢減 慢慢變暗
       P05=0;                       //測試LED燈                                         
       Delay_us(Clock-Num);     
          }                                       
       P05=0;                  //測試LED燈
//**************************************//                                       
      for(Num=0;Num<Clock;Num++)  //led逐漸變亮
         {
       P05=1;                     //測試LED燈
       Delay_us(Num);       //0慢慢加 慢慢變亮
       P05=0;                     //測試LED燈            
       Delay_us(Clock-Num);                                                   
         }                                       
       P05=1;                    //測試LED燈
         }
}
大致是變亮3秒,變暗3秒,你看看吧!
回復

使用道具 舉報

板凳
ID:825447 發表于 2020-10-4 21:28 | 只看該作者
你在延時函數上稍加改動即可
聲明延時函數void delay(uint)
然后主函數
void main()
{}
在主函數里加上延時函數delay(m)//此處m值你可以直接改,m值改變延時用的時間也隨之改變了
最后再寫下具體的延時函數
void delay(uint m)
{
  uint x , y ;
  for(x = m ; x > 0 ; x-- )
     for(y = 110 ; y > 0 ; y--);
}
想要具體調時間可以用keil里面的調試器,設置斷點執行
回復

使用道具 舉報

地板
ID:337139 發表于 2020-10-5 20:43 | 只看該作者
有多種方法的呀!占空比是其中一種,頻率在nHz比較好。看得清楚一些。二三樓的方法也是可取的。樓主你試一下。多調試就OK了。
回復

使用道具 舉報

5#
ID:613250 發表于 2020-10-5 21:40 | 只看該作者
長風007 發表于 2020-10-5 20:43
有多種方法的呀!占空比是其中一種,頻率在nHz比較好。看得清楚一些。二三樓的方法也是可取的。樓主你試一 ...

嗯,nHz大概是多少
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 夜夜精品视频 | 看av网址| 久久精品成人 | 欧美一级久久精品 | 亚洲精品成人网 | 国产成人午夜精品影院游乐网 | 91精品国产色综合久久 | 一本色道精品久久一区二区三区 | 黄片毛片免费观看 | 日韩亚洲一区二区 | 亚洲欧美日韩在线不卡 | 国产一区二区免费 | 久久久久久久久久久久久久国产 | 欧美日韩不卡 | 亚洲一区 中文字幕 | 日韩在线免费 | 成人一区二区在线 | 超碰在线人人 | 男人的天堂久久 | 亚洲精品久久久久久久久久吃药 | 黄色在线观看网站 | 免费一区 | 色婷婷激情综合 | 久久亚洲国产精品 | 日韩成人免费中文字幕 | 精品不卡 | 在线观看免费福利 | 亚洲精品二三区 | 久久精品播放 | 成av在线 | www.嫩草 | 久久国产婷婷国产香蕉 | 在线观看视频h | 日本一区二区在线视频 | 夜夜草 | 在线视频一区二区 | www.久| 国产精彩视频一区 | 国产午夜精品一区二区三区四区 | 人人九九精 | 欧美一区二区在线观看 |