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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關于單片機LED燈循環點亮程序調試問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:924630 發表于 2021-5-20 20:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
為什么我這條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);
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:195446 發表于 2021-5-21 02:00 | 只看該作者
因為c51必須封閉運行,唯一的一個 while( )必須為while(1)。
回復

使用道具 舉報

板凳
ID:213173 發表于 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);
}
回復

使用道具 舉報

地板
ID:917199 發表于 2021-5-21 09:33 | 只看該作者
似乎與函數的作用域有關,
您的代碼怎么看都挺危險
回復

使用道具 舉報

5#
ID:824490 發表于 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,所以就掉坑里,出不來了        
回復

使用道具 舉報

6#
ID:136485 發表于 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);
                }
        }         
回復

使用道具 舉報

7#
ID:924861 發表于 2021-5-21 11:14 | 只看該作者
while( )改為while(1)
回復

使用道具 舉報

8#
ID:924630 發表于 2021-5-21 11:39 | 只看該作者
mffhxa 發表于 2021-5-21 02:00
因為c51必須封閉運行,唯一的一個 while( )必須為while(1)。

那我去掉for循環,只用while(i<5)循環可以閃五次嗎
回復

使用道具 舉報

9#
ID:924630 發表于 2021-5-21 11:40 | 只看該作者
kxcuser 發表于 2021-5-21 11:01
你想要跳出來那個i=0你要在while循環外面賦值,不然i=0一直在賦值,那肯定一直在里面循環出不來
  char i; ...

只用while(i<5)循環可以閃五次嗎
回復

使用道具 舉報

10#
ID:711539 發表于 2021-5-21 14:18 | 只看該作者

改為:
  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. }
復制代碼
回復

使用道具 舉報

11#
ID:849913 發表于 2021-5-21 20:26 | 只看該作者
這個程序運行到i=5的時候跳出了FOR 循環 但是while(i<=5)退出while循環的條件沒有具足 還在while中 就又回到了for 循環 i又被置零周而復始。。。。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品免费观看 | 成人小视频在线 | 国产精品久久久久久亚洲调教 | 国产一区二区三区四区三区四 | 精品国产一区二区在线 | 免费国产一区 | 日韩成人免费 | 国产乱码久久久久久一区二区 | 亚洲视频区 | 欧美福利三区 | 久在线观看 | 国产在线一区二 | 久久精品97 | 黄色免费av| 99亚洲精品视频 | 日韩一区二区在线视频 | 一区二区高清不卡 | 日本一区二区三区免费观看 | 成人福利在线观看 | 亚洲一区国产精品 | 久草精品在线 | 亚洲精品视频在线 | 蜜桃av一区二区三区 | 2020天天操| 岛国av一区二区 | 免费在线观看毛片 | 午夜视频在线 | 成人欧美一区二区三区在线观看 | 国产69精品久久99不卡免费版 | 久久久久一区二区三区 | 亚洲精品视频免费观看 | 日本电影一区二区 | 欧美日韩综合一区 | 日韩中文字幕一区二区三区 | 亚洲一区播放 | 日日操网站 | 亚洲国产18| 亚洲一区播放 | 免费在线一区二区三区 | 最新中文字幕在线 | 99爱在线视频 |