# define true 1//定義布爾量“1”:true。
# define false 0//定義布爾量“0”:false
# define uchar unsigned char//定義無符號字符數據的縮寫。
# define uint unsigned int//定義無符號整數數據的縮寫。
#定義觸發號319//觸發值
sbit key=p1^0;//關鍵接口
sbit led=p1^5;//LED接口
# define LED _ on LED = 0//點亮LED。
# define LED _ off LED = 1//關閉LED。
voidkey resp()//按鍵響應函數
{
靜態位KeyDownFlag,KeyReadyFlag//靜態變量,按鍵按標誌位,按鍵準備(響應)標誌位。
靜態uint KeyPressCount//靜態變量,按鍵計數(寄存器)
如果(!key)//如果按鍵被按下,則
{
KeyDownFlag = TRUE//設置按鍵按下標誌。
KeyReadyFlag = TRUE//設置密鑰準備(響應)標誌。
}
else KeyDownFlag = FALSE//如果沒有按下任何鍵,則清除該鍵並按下標誌。
如果(!KeyDownFlag & amp& ampkeyreadyflag)//如果鍵已就緒(已響應)並且沒有按下任何鍵(即放開)
{
keypress count++;//按鍵計數,加1。
If(keypress count = = trigger number)//如果擊鍵次數等於觸發值,則
{
LED = ~ LED//切換LED狀態。
keypress count = 0;//清除按鍵計數值
}
KeyReadyFlag = FALSE//清除密鑰準備標誌。
}
}
void system init()//系統初始化函數
{
key = 1;//關鍵接口初始化
LED _ Off//關閉LED
}
void main()//主函數
{
system init();//調用系統初始化函數
而(1)//循環系統
{
key resp();//調用按鍵響應函數
}
}