51單片機(jī)按鍵程序中while(!key)的作用是什么
#include
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)論