白滚滚 发表于 2012-11-27 11:08:25

【求助】液晶显示计数器按键重键问题T T

还是偶....
又有问题想请教各位
最近在写一个液晶计数器,是1602液晶
摁下SB1,数值+1,摁下SB2,数值——1,摁下SB3,清零,将数据用1602液晶显示屏来显示
但是出现一个问题,就是特别容易重键,摁下一次加键,一般会加10次左右不等
已经延时10ms去抖动了
这种情况应该怎么处理?

无级电工 发表于 2012-11-27 11:12:12

应该检测按键是否弹起,没有弹起不接受新的按键输入。

Tliang 发表于 2012-11-27 11:25:27

OverTime = 0;
if(!Key1)
{
    delay_ms(10);
    while(!Key1)
    {
      count++;
      while(!Key1 && OverTime < 200)
      {
            OverTime++;
            delay_ms(10);
         }
         OverTime = 100;
         Dispaly(count);
    }
}

白滚滚 发表于 2012-11-27 11:26:18

无级电工 发表于 2012-11-27 11:12 static/image/common/back.gif
应该检测按键是否弹起,没有弹起不接受新的按键输入。

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊,对!!!忘记检测按键弹起了,康桑康桑

白滚滚 发表于 2012-11-27 11:28:01

Tliang 发表于 2012-11-27 11:25 static/image/common/back.gif
OverTime = 0;
if(!Key1)
{


这个检测overtime的想法不错,谢谢,一直只是延时10ms去抖动,有的时候不是很准确,加上overtime的检测应该就是很准确的啦

白滚滚 发表于 2012-11-27 11:32:23

因为是新手自学,总是碰到各种各样的问题,谢谢大家的指点
鞠躬感谢~~
页: [1]
查看完整版本: 【求助】液晶显示计数器按键重键问题T T