微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > C51按键双功能

C51按键双功能

时间:10-02 整理:3721RD 点击:
新人求按键双功能程序  
    独立按键按一次时是一种功能、再按一次又是另一种功能

状态机制处理

可以设置长按和短按实现功能啊

这个还是长按  和短按  就可以解决问题了的。没必要1次2次啊

要不双击~~

直接设置一个标志位,按一下加一下,标志位的每一个数值代表每一种功能

神马浮云

while(!key);
num++;
if(num==xx)
{
num=0;
}
switch case(num)
{
case 1:
case 2:
case 3:
……
}

uchar key()
{
   uint j,i=0;
   if(k1==0)   //判断按键有没有按下
   {
       delay(3);  //延时消除抖动
           if(k1==0)  //再次判断有没有按下
           {
            i=1;       //第一次按下返回数值班让i=1
                  if(k1==1);//  有没有放手
                  {
                 for(j=0;j<=200;j++)
                 {
                   if(k1==0)   //第二次判断按键有没有按下
                   {
                      delay(5);  // 延时消除抖动
                          if(k1==0)  //第二判断有没有按下
                          {
                             i=2;   //若第二按下则返回数值让i=2
                          }
                   }
                   delay(1);
                 }
                 }
                 
             while(k1==0);  //按键有没有放手
                 return i; // 返回数值i
           }
   }
}
是不是这样子呢?麻烦帮我看下?  实现不了功能  ?

感觉好复杂,功能实现了吗?

没有哦   就是不会做   请大侠们多多指数啊

用延时看看行不行

156810.

同求!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top