打印

求教,怎样让一个按钮按下其他按钮才有效

[复制链接]
1788|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hwta|  楼主 | 2011-5-30 11:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void keyscan(void)        //这是我编的矩阵键盘按钮
{   
unsigned char n;
P1=0xfe;
n=P1;
n&=0xf0;
if(n!=0xf0)
{
  delay(8);
  P1=0xfe;
  n=P1;
  n&=0xf0;
  if(n!=0xf0)
  {   n=P1;
   switch(n)
   {
      
       case(0xee):if(p==1) debug();break;   //这是第二个按钮
       case(0xde):if(b==1) debug1();break;  //这是第三个按钮
   }
   while(n!=0xf0 )
   {  n=P1;
    n&=0xf0;
   }  
}

}
  P1 =0xfb;
  n=P1;
  n&=0xf0;
  if(n!=0xf0)
  {
    delay(8);
    P1=0xfd;
    n=P1;
    n&=0xf0;
    if(n!=0xf0)
    {    n=P1;
     switch(n)
     {
      case(0xdb): p=1,b=1;break;//这是第一个按钮
     
     }
   while(n!=0xf0)
     {   n=P1;
      n&=0xf0;
     }
    }
     }
}
我想在第一个按钮按下后,第二个,第三个按钮才有效,执行下面的子程序;但是,不行,不知道什么原因;   下面是执行的子程序
void debug()
{
  
   
     m1++;
  if(m1==10)
   { m1=0;
  m2=m2+1;
  if(m2==6)
    { m2=0;
      m1=0;
    }
  }
}
  void debug1()
    {    h1++;
      flag2++;
     if(0==flag2%25)
     {  h1=0;
        h2=0;
       }
      if(h1==10)
     { h1=0;
     h2=h2+1;
     
     
   
     if(h2==3)
     h2=0;
       }
   
}

相关帖子

沙发
chenczy| | 2011-5-30 11:22 | 只看该作者
每判一个按键前要都要先判一下那个按键有没按下

使用特权

评论回复
板凳
hwta|  楼主 | 2011-5-30 11:46 | 只看该作者
我判断了啊,大哥帮我看看程序啊:(

使用特权

评论回复
地板
zilong827| | 2011-5-30 11:58 | 只看该作者
加标志位做判断

使用特权

评论回复
5
hwta|  楼主 | 2011-5-30 12:11 | 只看该作者
大哥,我标志了啊,P与B就是标志位啊,只有第一个按钮按下,p与b才为1

使用特权

评论回复
6
PowerAnts| | 2011-5-30 13:36 | 只看该作者
与的运算

使用特权

评论回复
7
hwta|  楼主 | 2011-5-30 14:52 | 只看该作者
是啊,能不能给我点关键的建议

使用特权

评论回复
8
yjhon| | 2011-5-30 22:44 | 只看该作者
同意6L

使用特权

评论回复
9
mmax| | 2011-5-30 23:29 | 只看该作者
if(n!=0xf0)
  {
    delay(8);
    P1=0xfd;           \\这个地方错了,应该是0xfb,要不然判断不到第一个按键。

这种问题,LZ debug一下,5分钟就可发现问题了!

使用特权

评论回复
10
yewuyi| | 2011-5-30 23:34 | 只看该作者
要学会使用状态机,按键部分一般分几步:
1、读到按键值
2、根据按键值进行状态跳转
3、根据跳转执行对应操作
4、返回系统

使用特权

评论回复
11
zjp8683463| | 2011-5-30 23:42 | 只看该作者
要同时按下就用与.
分步按下就用状态机.

使用特权

评论回复
12
hwta|  楼主 | 2011-5-31 11:16 | 只看该作者
9L的大哥,那个错误我改过了,但还是不行,,,10L的大哥,状态机不会用啊

使用特权

评论回复
13
zjy.zz| | 2011-6-18 11:37 | 只看该作者
程序里判断一下了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

16

帖子

1

粉丝