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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3058|回復(fù): 12
打印 上一主題 下一主題
收起左側(cè)

C語(yǔ)言if判斷怎么不靈,按一次按鍵LED都全亮了,IF判斷無(wú)效樣的,那問(wèn)題?

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:475031 發(fā)表于 2019-12-28 12:06 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
if判斷怎么不靈,按一次按鍵LED都全亮了,IF判斷無(wú)效樣的,那問(wèn)題?

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned  int

unsigned int ID=0;

sbit  k1=P2^0;  //按鍵1

sbit  k2=P2^1;  //按鍵2

sbit  LED1=P2^2;  //LED1

sbit  LED2=P2^3;  //LED2

void delay(uint z)

{

     uint x,y;

         for(x=z;x>0;x--)

             for(y=110;y>0;y--);

}



//------------延時(shí)-----------------



void key_control()

{



if(k1==0)

         {

            delay(5);

                 if(k1==0)

{            

ID=ID+1;//每按一次按鍵,ID加1

}

}







if(ID==8) //判斷ID是不是等于8,是就運(yùn)行下面,2個(gè)LED燈點(diǎn)亮

{

ID=0;
LED1=0;
LED2=0;



}





}



void main()

{

     while(1)

         {

             key_control();                                                         

}
                                 

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

使用道具 舉報(bào)

沙發(fā)
ID:395068 發(fā)表于 2019-12-28 12:45 | 只看該作者
程序里按鍵沒(méi)有松手檢測(cè),按下去等于是ID一直在+,速度很快,看上去燈就是一直亮著

評(píng)分

參與人數(shù) 1黑幣 +8 收起 理由
鬼推磨 + 8

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

板凳
ID:332444 發(fā)表于 2019-12-28 12:51 | 只看該作者
按鈕程序沒(méi)寫(xiě)等待釋放語(yǔ)句,因此,按鍵值會(huì)不停增大,某時(shí)候會(huì)超過(guò)8,如果你改判斷為>=8試一下肯定不同。
回復(fù)

使用道具 舉報(bào)

地板
ID:437615 發(fā)表于 2019-12-28 12:59 | 只看該作者
去抖的時(shí)間太短,沒(méi)有松手檢測(cè),沒(méi)有后沿去抖
回復(fù)

使用道具 舉報(bào)

5#
ID:395068 發(fā)表于 2019-12-28 13:07 | 只看該作者
而且你的燈點(diǎn)亮后,也沒(méi)關(guān)掉
回復(fù)

使用道具 舉報(bào)

6#
ID:475031 發(fā)表于 2019-12-28 13:20 | 只看該作者
166864646883 發(fā)表于 2019-12-28 12:45
程序里按鍵沒(méi)有松手檢測(cè),按下去等于是ID一直在+,速度很快,看上去燈就是一直亮著

if(k1==0)//判斷按鍵是不是按下
         {
delay(5);
if(k1==0)//再次判斷按鍵是不是按下
{           
while(!k1);//等待按鍵釋放
ID=ID+1;
}
}

我硬是搞的懷疑人生了,
的確是你說(shuō)的這個(gè)問(wèn)題。我增加按鍵松手檢測(cè),就好使了,謝謝你指導(dǎo)。。
回復(fù)

使用道具 舉報(bào)

7#
ID:394424 發(fā)表于 2019-12-28 13:24 | 只看該作者
按鍵檢測(cè)不建議你用delay做  你去看看別人怎么做的  ,  按鍵觸發(fā)后 又可能一直在觸發(fā),你要控制好條件,是在按下去觸發(fā)還是松手觸發(fā),還是一直按著觸發(fā)
回復(fù)

使用道具 舉報(bào)

8#
ID:395068 發(fā)表于 2019-12-28 13:38 | 只看該作者
166864646883 發(fā)表于 2019-12-28 12:45
程序里按鍵沒(méi)有松手檢測(cè),按下去等于是ID一直在+,速度很快,看上去燈就是一直亮著

而且你的燈打開(kāi)之后就沒(méi)有關(guān)掉了,所以肯定是一直亮著
回復(fù)

使用道具 舉報(bào)

9#
ID:481073 發(fā)表于 2019-12-28 14:32 | 只看該作者
代碼沒(méi)有寫(xiě)好,放到死循環(huán)里面了,建議用一個(gè)標(biāo)志位來(lái)進(jìn)行判斷,這樣是達(dá)不到按鍵的效果的,死循環(huán)里面肯定會(huì)一直增加的。
回復(fù)

使用道具 舉報(bào)

10#
ID:676031 發(fā)表于 2019-12-28 14:59 | 只看該作者
在if檢測(cè)按鍵后面加一個(gè)松手檢測(cè),,也就是用while一直循環(huán)k1==0;當(dāng)k1==1表示松手跳出while
回復(fù)

使用道具 舉報(bào)

11#
ID:676596 發(fā)表于 2019-12-29 14:15 | 只看該作者
沒(méi)有去抖動(dòng)吧,設(shè)置一個(gè)延時(shí)去抖動(dòng)就行了
回復(fù)

使用道具 舉報(bào)

12#
ID:130230 發(fā)表于 2019-12-30 16:46 | 只看該作者
沒(méi)有抬起檢測(cè)。
回復(fù)

使用道具 舉報(bào)

13#
ID:677934 發(fā)表于 2019-12-31 13:36 | 只看該作者
你加完之后要再檢測(cè)一遍是否還是高電平,不是就停止
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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