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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2211|回復(fù): 5
收起左側(cè)

單片機(jī)呼吸燈代碼問題求教

[復(fù)制鏈接]
ID:469787 發(fā)表于 2019-10-26 20:40 | 顯示全部樓層 |閱讀模式
不知道哪里出了問題呼吸燈在逐漸達(dá)到最亮后會突然滅掉零點(diǎn)幾秒  然后在亮起來逐漸變暗

代碼如下


#include <reg52.h>
sbit led=P1^1;
void time(unsigned int t)
{
while(--t);
}                            //延時函數(shù)
void main()
     {
unsigned int m=400,k=0;
          while(1)        //主循環(huán)
            {
                       for(k=1;k<m;k++)
               {
          led=0;
     time(k);
          led=1;        
          time(m-k);
               }              //逐漸變亮


               for(k=400;k>0;k--)
               {
                         led=0;
                         time(k);
                         led=1;
                         time(m-k);
                   }           //逐漸變暗
            }                                             
          }


回復(fù)

使用道具 舉報

ID:89515 發(fā)表于 2019-10-27 06:44 來自觸屏版 | 顯示全部樓層
查看一下K值的變化就知道了
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2019-10-27 09:54 | 顯示全部樓層
錯誤在K值不能為0,否則帶入延時函數(shù)后while(--t);,--t是先運(yùn)算再判斷,t值就成了65535。led=1;就要延時2*t+5us。
可以改為while(t--);,t--是先判斷再運(yùn)算。當(dāng)然也可以不改延時函數(shù)而是改for循環(huán)條件解決。
回復(fù)

使用道具 舉報

ID:151924 發(fā)表于 2019-10-27 10:45 | 顯示全部樓層
K值出問題了。
回復(fù)

使用道具 舉報

ID:469787 發(fā)表于 2019-10-27 11:01 | 顯示全部樓層
wulin 發(fā)表于 2019-10-27 09:54
錯誤在K值不能為0,否則帶入延時函數(shù)后while(--t);,--t是先運(yùn)算再判斷,t值就成了65535。led=1;就要延時2* ...

https://v.youku.com/v_show/id_XNDQxMzIzMDA0MA==.html?spm=a2h3j.8428770.3416059.1


視頻如上  我改成while(t--)還是一樣
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2019-10-27 12:22 | 顯示全部樓層
在線 發(fā)表于 2019-10-27 11:01
視頻如上  我改成while(t--)還是一樣

改延時while(t--);或改for循環(huán)中參數(shù)time(m-k+1);,隨便改哪一種都可以,只是呼吸周期略有區(qū)別。
  1. #include <reg52.h>
  2. sbit led=P1^1;
  3. void time(unsigned int t)
  4. {
  5.         while(t--);
  6. }                            //延時函數(shù)
  7. void main()
  8. {
  9.         unsigned int m=500,k=0;
  10.         while(1)        //主循環(huán)
  11.         {
  12.                 for(k=1;k<m;k++)
  13.                 {
  14.                         led=0;
  15.                         time(k);
  16.                         led=1;        
  17.                         time(m-k);
  18.                 }              //逐漸變亮
  19.                 for(k=500;k>0;k--)
  20.                 {
  21.                         led=0;
  22.                         time(k);
  23.                         led=1;
  24.                         time(m-k);
  25.                 }           //逐漸變暗
  26.         }
  27. }
復(fù)制代碼


#include <reg52.h>
sbit led=P1^1;
void time(unsigned int t)
{
        while(--t);
}                            //延時函數(shù)
void main()
{
        unsigned int m=500,k=0;
        while(1)        //主循環(huán)
        {
                for(k=1;k<m;k++)
                {
                        led=0;
                        time(k);
                        led=1;        
                        time(m-k+1);
                }              //逐漸變亮
                for(k=500;k>0;k--)
                {
                        led=0;
                        time(k);
                        led=1;
                        time(m-k+1);
                }           //逐漸變暗
        }                                             
}
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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