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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4718|回復: 13
收起左側

去掉while(1)循環后就只能按住鍵盤才能使LED發光 走過路過的大哥幫忙看看

  [復制鏈接]
ID:156852 發表于 2017-4-23 18:35 | 顯示全部樓層 |閱讀模式
為什么去掉while(1)循環后就只能按住鍵盤才能使LED發光,松手后就熄滅了。#include <reg52.h>
#define uint unsigned int
sbit key=P3^1;     //獨立鍵盤
sbit led=P2^0;      //led
void delay(uint z)  //延時函數
{
while(z--);


}
void main()
{
if(key==0)   //消抖
{
delay(1000);    //延時
     if(key==0)
         {
          led=~led;   //點亮led
         }
  }
while(!key);   //松手消抖
}


/*void main()
{
  while(1)
{
   k1();
}
} */




回復

使用道具 舉報

ID:47286 發表于 2017-4-23 20:47 | 顯示全部樓層
本帖最后由 dzbj 于 2017-4-23 20:49 編輯

拷貝回去試試這樣行不行

#include <reg52.h>
#define uint unsigned int

sbit key=P3^1;     //獨立鍵盤
sbit led=P2^0;      //led

void delay(uint z)  //延時函數
{
        while(z--);
}

void main()
{
        while(1)
        {
                if(key==0)   //消抖
                {
                        delay(1000);    //延時
                        if(key==0)
                        {
                                while(!key);   //松手消抖
                                led=1;   //點亮led(如果你是灌電流 這里就應該是0才能亮)
                        }
                }
        }
}
回復

使用道具 舉報

ID:192838 發表于 2017-4-23 20:53 | 顯示全部樓層
我來看看 新手
回復

使用道具 舉報

ID:192841 發表于 2017-4-23 21:02 | 顯示全部樓層
你那個程序就像遙控器的按鈕,檢測到放開才就會中斷
回復

使用道具 舉報

ID:156852 發表于 2017-4-23 21:20 | 顯示全部樓層
Herscon 發表于 2017-4-23 21:02
你那個程序就像遙控器的按鈕,檢測到放開才就會中斷

但是為什么把這個K1()這個函數放到while(1)中就算松手也會保持發光,講道理while(1)中如果沒有進行第二次按鍵,也不會觸發K1()這個子函數
回復

使用道具 舉報

ID:156852 發表于 2017-4-23 21:22 | 顯示全部樓層
dzbj 發表于 2017-4-23 20:47
拷貝回去試試這樣行不行

#include

我的意思是在去掉while(1)這個循環時松手后led會熄滅,但是把K1()這個子函數放到while(1)中就算松手也不會熄滅。實在想不明白
回復

使用道具 舉報

ID:47286 發表于 2017-4-23 21:39 | 顯示全部樓層
qiran1818 發表于 2017-4-23 21:20
但是為什么把這個K1()這個函數放到while(1)中就算松手也會保持發光,講道理while(1)中如果沒有進行 ...

那你沒寫全啊 K1這個函數跟哪呢 根本沒看見啊
回復

使用道具 舉報

ID:192871 發表于 2017-4-23 22:20 | 顯示全部樓層
遇同問題
回復

使用道具 舉報

ID:191913 發表于 2017-4-24 08:28 | 顯示全部樓層
可能是延時消抖的問題,在延時消抖中,檢測不到按鍵狀態
回復

使用道具 舉報

ID:151348 發表于 2017-4-24 15:58 | 顯示全部樓層
1樓正解,關鍵是 while(!key);   //松手消抖
回復

使用道具 舉報

ID:192523 發表于 2017-4-24 16:40 | 顯示全部樓層
主程序沒有while(1)是不完整的,那樣程序就只會執行一次,必須要一個while(1)
回復

使用道具 舉報

ID:187614 發表于 2017-4-24 19:55 | 顯示全部樓層
主程序只執行了一遍,LED不會反轉,把MAIN()中的代碼寫到while(1){    }中
回復

使用道具 舉報

ID:193421 發表于 2017-4-25 14:59 | 顯示全部樓層
主程序沒有while(1),那樣程序就只會走一次,打多程序都要while(1)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本中文在线视频 | 亚洲视频精品 | 伊人网站 | 日本精品一区二区 | 日韩久久成人 | 国产一区二区影院 | 久久久久久久国产精品 | 中文字幕一区二区三区四区五区 | 成人三区 | 在线观看成人 | 在线亚洲一区二区 | 97伦理最新伦理 | 午夜精品一区二区三区免费视频 | 久久久精品一区二区三区 | 国产三区视频在线观看 | 日韩精品久久一区二区三区 | 亚洲视频在线一区 | 九九精品在线 | 日韩福利在线 | 盗摄精品av一区二区三区 | 91在线视频观看 | 欧美国产精品 | 日本亚洲一区二区 | 激情自拍偷拍 | 精品国产免费一区二区三区五区 | 黄页网址在线观看 | 91久操网 | 在线一级片 | 亚洲国产精品久久久 | 亚洲精品久久久蜜桃 | 国产精品久久久久久福利一牛影视 | 亚洲乱码国产乱码精品精的特点 | 欧美成人久久 | 午夜精品一区二区三区在线观看 | 81精品国产乱码久久久久久 | 台湾a级理论片在线观看 | 国产精品美女久久久久aⅴ国产馆 | 欧美日韩国产高清 | 人人干天天干 | 亚洲视频在线观看免费 | 久久久久国产一区二区三区 |