一个按键怎么实现长短按键,以实现两种或多种功能?

2020-01-30 13:34发布

一个按键怎么实现长短按键,以实现两种或多种功能?

老师们,请问问一个按键怎么实现不同的功能呢?简单的根据变量的值不同,来执行不同的功能已经会了。
现在的问题是:硬件只有一个按键,比如一般按下键(一般500MS,1S钟)就给一个变量 "VALUE",加一,然后送给打印机打印。比如长按按键(达到5S钟以上),就将这个变量 VALUE 清零。这个怎么做呢要,?谢谢大家。
现在用了死的键盘检测程序:可以实现按一下打印一下变量
VALUE 的值了。长短按的不知道怎么实现,谢谢大家!

sbit KEY1 = P2^2;

if (KEY1 == 0)
{
        delay_ms(10);
        if(KEY1 == 0)
        {
                VALUE ++;
                if(VALUE >= 100 )
                {
                        VALUE = 0;
                }
         while(KEY1 == 0);
        Print_data();//打印数据VALUE函数
        }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
43条回答
jeffernpeng
1楼-- · 2020-02-03 12:42
mark 做云台控制键盘需要
zjk
2楼-- · 2020-02-03 12:50
来学习下,看到好几个不错的
jqbkl007
3楼-- · 2020-02-03 13:28
小风呼呼 发表于 2012-11-12 22:51
从论坛上收藏的,感觉方法很巧妙,希望对你有帮助。
新型的按键扫描程序
不过我在网上游逛了很久,也看过 ...

感觉不错。。学习了!!!
zwg0106
4楼-- · 2020-02-03 17:48
 精彩回答 2  元偷偷看……
磊磊映画
5楼-- · 2020-02-03 21:23
延时啊  
mii
6楼-- · 2020-02-03 23:41
在实际应用中就使用了状态机来实现,论坛连接http://www.amobbs.com/forum.php? ... =%E9%95%BF%E6%8C%89

一周热门 更多>