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

標題: 關于單片機LED燈循環點亮程序調試問題 [打印本頁]

作者: 搖頭玩    時間: 2021-5-20 20:37
標題: 關于單片機LED燈循環點亮程序調試問題
為什么我這條LED閃爍程序,閃爍五次沒有停下來

#include <REGX52.H>
void delay(int t);
void main()
{
        char i;
        while(i<=5)
        {
                for(i=0;i<5;i++)
                {
                P2=0x00;
                delay(60000);
                P2=0xff;
                delay(60000);
                i=i+1;
                }
        }               
}
void delay(int t)
{
        while(--t);
}


作者: mffhxa    時間: 2021-5-21 02:00
因為c51必須封閉運行,唯一的一個 while( )必須為while(1)。
作者: wulin    時間: 2021-5-21 06:27
#include <REG52.H>

void delay(unsigned int t);

void main()
{
        char i;
        for(i=0;i<5;i++)
        {
                P2=0x00;
                delay(60000);
                P2=0xff;
                delay(60000);
        }
        while(1);               
}

void delay(unsigned int t)
{
        while(--t);
}
作者: timerzero    時間: 2021-5-21 09:33
似乎與函數的作用域有關,
您的代碼怎么看都挺危險
作者: 名字不是重點    時間: 2021-5-21 10:14
while(i<=5) //i<=5就一直運行
        {
                for(i=0;i<5;i++) //在這里,i被重置為0了
                {                        //以下代碼運行5次
                P2=0x00;
                delay(60000);
                P2=0xff;
                delay(60000);
                i=i+1;
                }
        }     
在for循環中只運行5次,但在 while(i<=5)循環中,i老是被 for(i=0;這個置0,所以就掉坑里,出不來了        

作者: kxcuser    時間: 2021-5-21 11:01
你想要跳出來那個i=0你要在while循環外面賦值,不然i=0一直在賦值,那肯定一直在里面循環出不來
  char i;
        while(i<=5)
        {
                for(;i<5;i++)
                {
                P2=0x00;
                delay(60000);
                P2=0xff;
                delay(60000);
                }
        }         
作者: chz131266    時間: 2021-5-21 11:14
while( )改為while(1)
作者: 搖頭玩    時間: 2021-5-21 11:39
mffhxa 發表于 2021-5-21 02:00
因為c51必須封閉運行,唯一的一個 while( )必須為while(1)。

那我去掉for循環,只用while(i<5)循環可以閃五次嗎
作者: 搖頭玩    時間: 2021-5-21 11:40
kxcuser 發表于 2021-5-21 11:01
你想要跳出來那個i=0你要在while循環外面賦值,不然i=0一直在賦值,那肯定一直在里面循環出不來
  char i; ...

只用while(i<5)循環可以閃五次嗎
作者: 菜鳥yc    時間: 2021-5-21 14:18
搖頭玩 發表于 2021-5-21 11:40
只用while(i

改為:
  1. #include <REGX52.H>
  2. void delay(int t);
  3. void main()
  4. {
  5.         char i;
  6.         while(i<=5)
  7.         {
  8.                 P2=0x00;
  9.                 delay(60000);
  10.                 P2=0xff;
  11.                 delay(60000);
  12.                 i=i+1;
  13.         }
  14.         while(1);     
  15. }
  16. void delay(int t)
  17. {
  18.         while(--t);
  19. }
復制代碼

作者: 老董    時間: 2021-5-21 20:26
這個程序運行到i=5的時候跳出了FOR 循環 但是while(i<=5)退出while循環的條件沒有具足 還在while中 就又回到了for 循環 i又被置零周而復始。。。。




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