單片機設置兩個獨立按鍵,key1 和key2 key1 按下加0.1或10 ,key2 按下減0.1或10 ,想問一下,這個程序里判斷key1 和key2同時按下有什么意義嗎,是消抖嗎還是什么,在仿真里反正是同時按下不增也不減,程序如下:
void key()
{
if(OK==1)
{
if(!key_1) //判斷按鍵是否按下
{
OK=0;
if(sec==3) //執行按鍵對應的控制內容
{
if(shu<3000)shu+=10; //長按處理
}elseif(sec>1)
{
if(shu<3000)shu+=1; //短按處理
}
else
{
if(key_flag1)
{
key_flag1=0;
if(shu<3000)shu+=1;
}
}
SectorErase(0x2000); //保存數據到單片機EEPROM中
byte_write(0x2000,shu/256);
byte_write(0x2001,shu%256);
}
elsekey_flag1=1;
if(!key_2) //判斷按鍵是否按下
{
OK=0; //執行按鍵對應的控制內容
if(sec==3)
{
if(shu>200)shu-=10;//長按處理
}elseif(sec>1)
{
if(shu>200)shu-=1; //短按處理
}
else
{
if(key_flag2)
{
key_flag2=0;
if(shu>200)shu-=1; //短按處理
}
}
SectorErase(0x2000); //保存數據到單片機EEPROM中
byte_write(0x2000,shu/256);
byte_write(0x2001,shu%256);
}
elsekey_flag2=1;
}
if(key_1==1&&key_2==1) //判斷按鍵是否按下
{
sec=0; //重新計時
}
}
|