⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 int.txt

📁 按键次数判断程序
💻 TXT
字号:
(只在一定的时候内一直扫描不就得了.比如在1S里面有几次按按键.每一次做个标记.应该可以.到主程序一判断就知道了)




另一方法:
以下代码为按键服务程序

将KeyServer放在10ms的中断中,因为用10ms作为消抖时间,也可以是别的时间

void     KeyServer()
{
     if(KeyUp)  //确认按键抬起
     {
          if(Key)
          {
               KeyDown=1;
               KeyUp=0;
          }
          else
          {
               KeyUp=0;
               KeyDown=0;
               KeyDetect=0;

               if(KeyTime)   //如果第二次按下小于双击时间间隔,则确定是一次双击
               {

                    KeyTime=DbClickDelay; //重新设置连续按键超时时间

                    KeyHits++;     //按键次数加1
               }
               else          //否则,这是第一次击键,设置双击时间,当双击超时则为单击
               {
                    KeyTime=DbClickDelay;
               }
          }
     }

     if(KeyDown)   //确认按键按下
     {
          if(Key)
          {
               KeyDelay++;
               KeyDelay&=0x7F;  //不让按键时间溢出
          }
          else
          {
               KeyUp=1;
               KeyDown=0;
          }
     }

     if(KeyTime)     //如果超出双击间隔时间,则确定为一次单击
     {
          KeyTime--;
          if(!KeyTime)

          {

               if (KeyHits)

                         DbClick =1;

              else
                         Click=1;

          }
     }
     if(KeyDetect)  //检测到有按键,激活KeyDown事件
          KeyDown=1;

      if((!KeyDetect) && Key)
      {
           KeyDetect=1;
      }
}


楼主拿去试试吧

如果DbClick == 1,则说明有连续多次按键,KeyHits中保存了连续按键次数
如果Click == 1,则说明是一次单击,KeyDelay中保存了这次单击按下的时间长度

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -