欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 如何用51單片機實現(xiàn)呼吸燈(2秒變亮,4秒變暗) [打印本頁]

作者: 武。。。。    時間: 2020-10-4 15:56
標(biāo)題: 如何用51單片機實現(xiàn)呼吸燈(2秒變亮,4秒變暗)
是利用占空比嗎?比如我把初始占空比設(shè)為50%,每次增加2%,到90%時,再每次減少1%,到50%.這樣可行嗎?還有pwm的周期一般設(shè)為多少合適。再者,利用proteus如何看到呼吸燈的效果。初學(xué)51,求各路大佬賜教!
作者: 大漠游民    時間: 2020-10-4 18:50

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

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

/***********************************************
函數(shù)名稱:Delay_us
功    能:
入口參數(shù):us:延時
返 回 值:無        
備    注:內(nèi)部時鐘:24MHz           
************************************************/
void Delay_us(unsigned int i) //這個延時就是PWM的頻率了 太大眼睛能看到閃來閃去
{
        for(;i>0;i--)               
                _nop_();        
}
/***********************************************
函數(shù)名稱:husi_led
功    能:呼吸燈
入口參數(shù):us:延時數(shù)量
返 回 值:無        
備    注:
************************************************/
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秒,你看看吧!
作者: 上進求學(xué)    時間: 2020-10-4 21:28
你在延時函數(shù)上稍加改動即可
聲明延時函數(shù)void delay(uint)
然后主函數(shù)
void main()
{}
在主函數(shù)里加上延時函數(shù)delay(m)//此處m值你可以直接改,m值改變延時用的時間也隨之改變了
最后再寫下具體的延時函數(shù)
void delay(uint m)
{
  uint x , y ;
  for(x = m ; x > 0 ; x-- )
     for(y = 110 ; y > 0 ; y--);
}
想要具體調(diào)時間可以用keil里面的調(diào)試器,設(shè)置斷點執(zhí)行
作者: 長風(fēng)007    時間: 2020-10-5 20:43
有多種方法的呀!占空比是其中一種,頻率在nHz比較好。看得清楚一些。二三樓的方法也是可取的。樓主你試一下。多調(diào)試就OK了。
作者: 武。。。。    時間: 2020-10-5 21:40
長風(fēng)007 發(fā)表于 2020-10-5 20:43
有多種方法的呀!占空比是其中一種,頻率在nHz比較好。看得清楚一些。二三樓的方法也是可取的。樓主你試一 ...

嗯,nHz大概是多少




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1