|
#define K P0_7 //独立按键
#define ON 0 //按键按下的电平值
#define OFF 1
#define JSQ_L 5 //消除抖动计数器门限下限
#define JSQ_H 60 //消除抖动计数器门限上限
#define KEY_SHORT 0X20 //自定义短按标志
#define KEY_LOG 0X22 //自定义长按标志
#define DLEPY f() //f()是系统中实时性要求较高的函数,在这里插入充当消抖可以兼顾实时性方面的要求
/********************************************************************
函数名称:按键检测
**********************************************************************/
unsigned char key_scan(void)
{
unsigned char timer=0,key_vlu=0;
while(K==ON)
{
DELPY;
timer++; //按键计数器计数
if(timer>JSQ_H) break; //溢出退出
}
if(timer> JSQ_L && timer< JSQ_H) key_vlu=KEY_SHORT; //判为短按
if( timer >JSQ_H ) key_vlu=KEY_LOG; //判为长按
return ( key_vlu );
} |
评分
-
1
查看全部评分
-
|