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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3419|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品99久久久久久www | 亚洲福利在线观看 | 亚洲免费在线 | 久久成人一区 | 欧美舔穴 | 中文字幕一区二区三区精彩视频 | 亚洲一区二区精品视频 | 中文字幕一区二区三区四区五区 | 精品亚洲永久免费精品 | 国产精品一区二区三区久久久 | 亚洲最大的成人网 | 婷婷色网| 亚洲最大av网站 | 一区二区视频在线 | 欧美理论| 国产精品久久九九 | 午夜久久av| 在线日韩不卡 | 国产清纯白嫩初高生在线播放视频 | 狠狠av | 欧美群妇大交群中文字幕 | 亚州中文字幕 | 7777久久| 亚洲一区二区三区在线视频 | avmans最新导航地址 | 欧美精品三区 | 国产做a爱免费视频 | 黄色av一区| 999免费网站 | 亚州精品天堂中文字幕 | 欧美成人a∨高清免费观看 老司机午夜性大片 | 中文字幕国产 | 亚洲高清视频在线观看 | 91观看 | 成人影院一区二区三区 | 国产美女特级嫩嫩嫩bbb片 | 欧美精品久久久久 | 亚洲a毛片 | 亚洲欧美综合 | 欧美人人 | 2019中文字幕视频 |