求大神赐教这段代码什么意思?4*4按键接单片机p2,行高四位,列第四位,显示在八位数码管,
时间:10-02
整理:3721RD
点击:
void ReadKeyValue()//放在2ms分时中执行,20ms执行一次 键值转换处理
{
if((KeyDly++ >= 2))
{
R_keybuf=0;
FLG_keymark=0;
KeyDly=0;
R_KeyValue=0;
KeyMarkDly=0;
}
if(R_KeyValue != 0) //有键按下
{
KeyDly=0;
if(R_KeyValue == R_keybuf)
{
KeyMarkDly++;
if(FLG_keymark==0)
{
if(KeyMarkDly >= 50)
{
KeyMarkDly=0;
FLG_keymark=1;
R_keybuf=R_curkey=R_KeyValue;
R_KeyValue=0;
}
else
{
R_KeyValue=0;
}
}
else
{
if(KeyMarkDly >= 25)
{
KeyMarkDly=0;
FLG_keymark=1;
R_keybuf=R_curkey=R_KeyValue;
R_KeyValue=0;
}
else
{
R_KeyValue=0;
}
}
}
else//非连续建
{
R_keybuf=R_curkey=R_KeyValue;
R_KeyValue=0;
FLG_keymark=0;
KeyMarkDly=0;
}
}
else //无按键按下
{
//R_keybuf=0;
//FLG_keymark=0;
//KeyDly=0;
//R_KeyValue=0;
//KeyMarkDly=0;
}
}
{
if((KeyDly++ >= 2))
{
R_keybuf=0;
FLG_keymark=0;
KeyDly=0;
R_KeyValue=0;
KeyMarkDly=0;
}
if(R_KeyValue != 0) //有键按下
{
KeyDly=0;
if(R_KeyValue == R_keybuf)
{
KeyMarkDly++;
if(FLG_keymark==0)
{
if(KeyMarkDly >= 50)
{
KeyMarkDly=0;
FLG_keymark=1;
R_keybuf=R_curkey=R_KeyValue;
R_KeyValue=0;
}
else
{
R_KeyValue=0;
}
}
else
{
if(KeyMarkDly >= 25)
{
KeyMarkDly=0;
FLG_keymark=1;
R_keybuf=R_curkey=R_KeyValue;
R_KeyValue=0;
}
else
{
R_KeyValue=0;
}
}
}
else//非连续建
{
R_keybuf=R_curkey=R_KeyValue;
R_KeyValue=0;
FLG_keymark=0;
KeyMarkDly=0;
}
}
else //无按键按下
{
//R_keybuf=0;
//FLG_keymark=0;
//KeyDly=0;
//R_KeyValue=0;
//KeyMarkDly=0;
}
}
检测有没有按键被按下,且检测出按下的是几号键
亲,能告诉我一下 R_keybuf=0; FLG_keymark=0; KeyDly=0; R_KeyValue=0;
KeyMarkDly=0; 这5个分别定义的什么意思吗
我知道是检测按键,但不知道为什么这么写?依据是什么?能帮忙讲解一下吗
这几个都是Define的变量名,你要看它们的定义声明代码