新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)按鍵程序中while(!key)的作用是什么

51單片機(jī)按鍵程序中while(!key)的作用是什么

作者: 時(shí)間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
我相信大家也是常常遇到過這一句代碼while(!key);,那么大家知道這句代碼是有什么用嗎?在這我就和大家分享一下,還是用代碼來說話吧:

#include

本文引用地址:http://butianyuan.cn/article/201611/323642.htm

typedef unsigned int uint;

typedef unsigned char uchar;

sbit key=P1^0;

void delay(uint x)

{

uchar i;

while(x--)for(i=0;i<120;i++);

}

void scan_key(void)

{

uchar j;

if(key==0)//判斷按鍵是否被按下

delay(10);//按鍵消抖

if(key==0)//再次判斷是否被下

{

while(!key);//等待按鍵釋放

j++;//J加1

}

}

大家不難看出程序中while(!key);的作用吧,在這起到是等待按鍵按開的作用,防止一直不按開按鍵判斷錯(cuò)誤。當(dāng)你的按鍵一直沒有釋放,key=0;那么while(!key);中的!key就為1,它這個(gè)語句一直為真,永遠(yuǎn)地循環(huán)下去。當(dāng)你松開按鍵,key=1,那么 while(!key);中的!key為0,這個(gè)語句為假,執(zhí)行j++;。所以while(!key);一般用在當(dāng)按一下,松開才執(zhí)行一下面的動(dòng)作的應(yīng)用中。



評(píng)論


技術(shù)專區(qū)

關(guān)閉