单片机设置两个独立按键,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; //重新计时
}
}
|