我相信大家也是常常遇到過這一句代碼while(!key);,那麽(me) 大家知道這句代碼是有什麽(me) 用嗎?在這我就和大家分享一下,還是用代碼來說話吧:
#include <reg52.h>
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);的作用吧,在這起到是等待按鍵按開的作用,防止一直不按開按鍵判斷錯誤。當你的按鍵一直沒有釋放,key=0;那麽(me) while(!key);中的!key就為(wei) 1,它這個(ge) 語句一直為(wei) 真,永遠地循環下去。當你鬆開按鍵,key=1,那麽(me) while(!key);中的!key為(wei) 0,這個(ge) 語句為(wei) 假,執行j++;。 所以while(!key);一般用在當按一下,鬆開才執行一下麵的動作的應用中。