找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1772|回复: 0
打印 上一主题 下一主题
收起左侧

大神帮我看看单片机程序,按键不管用

[复制链接]
跳转到指定楼层
楼主
ID:148337 发表于 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);
                                         }
                             }
  }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表