專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

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

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2013年04月10日   【字體:

我相信大家也是常常遇到過這一句代碼while(!key);,那么大家知道這句代碼是有什么用嗎?在這我就和大家分享一下,還是用代碼來說話吧:

#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);的作用吧,在這起到是等待按鍵按開的作用,防止一直不按開按鍵判斷錯誤。當(dāng)你的按鍵一直沒有釋放,key=0;那么while(!key);中的!key就為1,它這個語句一直為真,永遠地循環(huán)下去。當(dāng)你松開按鍵,key=1,那么 while(!key);中的!key為0,這個語句為假,執(zhí)行j++;。 所以while(!key);一般用在當(dāng)按一下,松開才執(zhí)行一下面的動作的應(yīng)用中。

關(guān)閉窗口

相關(guān)文章