标题: 大神帮我看看单片机程序,按键不管用 [打印本页]

作者: 746228432    时间: 2017-4-15 13:15
标题: 大神帮我看看单片机程序,按键不管用
void keyscan()
{

        uchar slnum,flag;
        if(K1==0)
          {
            delayms(5);
                  if(K1==0)  //确认功能键被按下
                  {
                                slnum++;    //功能选择计数变量加1,
                                while(!K1);  //等待按键释放,防抖动
                  }write_com(0x0f);

                                                                if(slnum==1)
                                                                {
                                                                                                        flag=1;     //标志位为1,表示有功能键被按下,此时不在执行温度检测
                                                                        write_com(0x80+14);  //光标定位到MIN位置
                                                                        write_com(0x0f);          //光标开始闪速
                                                                }
                                                                if(slnum==2)
                                                                {
                                                                        write_com(0x80+4);    //光标定位到MAX位置
                                                                        write_com(0x0f);       //光标开始闪速
                                                                }
                                                                if(slnum==3)
                                                                {
                                                                        slnum=0;               //功能键第三下按下后,功能计数清零
                                                                        flag=0;                 //标志位恢复,执行温度转化
                                                                        write_com(0x0c);        //关闭光标闪速
                                                                }
                                                        }
        if(slnum!=0)     //只有在功能键被按下后,K2,K3才有效
           {
                   if(K2==0)
                   {
                            delayms(1);
                            if(K2==0)
                             {
                          while(!K2);
                                                        if(slnum==1)
                                                        {
                                                                MIN++;
                                                                if(MIN==99) {MIN=0;}
                                                                write_com(0x80+14);    //MIN++显示的位置
                                                                write_com(0x0f);
                                                                write_maxmin(14,MIN);
                                                                write_com(0x80+14);
                                                        }
                                                        if(slnum==2)
                                                        {
                                                                MAX++;
                                                                if(MAX==99) {MAX=0;}
                                                                write_com(0x80+4);   
                                                                write_com(0x0f);
                                                                write_maxmin(4,MAX);
                                                                write_com(0x80+4);
                                                        }
                             }
        }
                      if(K3==0)
                      delayms(1);
                      if(K3==0)
                      {
                               while(!K3);
                               if(slnum==1)
                                      {
                                                    MIN--;
                                                    if(MIN==-1) {MIN=99;}
                                              write_com(0x80+14);   
                                              write_com(0x0f);
                                                    write_maxmin(14,MIN);
                                                    write_com(0x80+14);
                                       }
                                       if(slnum==2)
                                        {
                                                                        MAX--;
                                                                        if(MAX==-1){MAX=99;}
                                                                        write_com(0x80+4);   
                                                                        write_com(0x0f);
                                                                        write_maxmin(4,MAX);
                                                                        write_com(0x80+4);
                                         }
                             }
  }
}






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1