1602编写时钟(带闹钟)

2019-03-24 19:32发布

我是将时钟写在液晶的前16位,闹钟写在液晶的后16位, 时钟已经设置好,而且可以正常调试,但是当按下闹钟键时,也就是移屏之后,发现不能调整时间,为什么呢?很急!!!! (移屏正常,按下key4的时候指针也能准确指到),但就是按下key2和key3屏幕没有反应! 相应代码如下: //************闹钟键盘扫描**********
void keyscan1()
{
  if(key4==0)
  {
   delay(5);
  if(key4==0)
  {
   while(!key4); 
   flag1++;
   if(flag1==1)
   {
     for(num=0;num<16;num++)
        write_com(0x18);
     delay(20);
   }
         if(flag1==2)
         {
     write_com(0x0f);
     write_com(0x80+0x5a);
   }
   if(flag1==3)
   {
     write_com(0x0f);
     write_com(0x80+0x57);
   }
   if(flag1==4)
   {
     write_com(0x0f);
     write_com(0x80+0x54);
   }
   if(flag1==5)
   {
    flag1=0;
    for(num=0;num<16;num++)
       write_com(0x1c);
    delay(20);
   }
   if(flag1!=0)
   {
    if(key2==0)
    {
     delay(5);
     if(key2==0)
     {
      while(!key2);
      if(flag1==2)
      {
          miao1++;
       if(miao1==60)
        miao1=0;
       write_sfm(26,miao1);
       write_com(0x80+0x5a);
      }
      if(flag1==3)
      {
          fen1++;
       if(fen1==60)
         fen1=0;
       write_sfm(23,fen1);
       write_com(0x80+0x57);
      }
      if(flag1==4)
      {
          shi1++;
       if(shi1==23)
        shi1=0;
       write_sfm(20,shi1);
       write_com(0x80+0x54); 
      }
     }
    }
    if(key3==0)//数字减少
    {
     delay(5);
     if(key3==0)
     {
      while(!key3);
      if(flag1==2)
       {
       if(miao1==0)
            miao1=60;
       miao1--;
       write_sfm(26,miao1);
       write_com(0x80+0x5a);
       }
       if(flag1==3)
       {
       if(fen1==0)
            fen1=60;
       fen1--;
       write_sfm(23,fen1);
       write_com(0x80+0x57);
       }
       if(flag1==4)
       {  
       if(shi1==0)
        shi1=24;
       shi1--;
       write_sfm(20,shi1);
       write_com(0x80+0x54);
       }
  
     }
    }
   }   }
  } 
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
孤獨の快樂
1楼-- · 2019-03-25 01:45

你KEY2和KEY3的函数写在了KEY4的if里了,所以没法执行。

[ 本帖最后由 孤獨の快樂 于 2011-11-30 20:48 编辑 ]
Learner_new
2楼-- · 2019-03-25 02:37
我。。。。。难以言谢,,但还是要说声谢谢,这问题困扰了我好久啊能再问一个问题么,为什么我移屏有时候显示对有时候显示就比原来的位置往前或者往后推一格了啊?是移屏延时的问题么,意思就是有时候移屏移了17位,或者15位。

[ 本帖最后由 Learner_new 于 2011-12-1 19:16 编辑 ]
孤獨の快樂
3楼-- · 2019-03-25 05:13

原帖由 Learner_new 于 2011-12-1 19:13 发表 我。。。。。难以言谢,,但还是要说声谢谢,这问题困扰了我好久啊能再问一个问题么,为什么我移屏有时候显示对有时候显示就比原来的位置往前或者往后推一格了啊?是移屏延时的问题么,意思就是有时候移屏移了17位, ...

仿真的结果还是实际的结果?

可以试试移屏指令之间加延迟

[ 本帖最后由 孤獨の快樂 于 2011-12-1 19:42 编辑 ]
Learner_new
4楼-- · 2019-03-25 07:01
仿真和实际都出现的,难道这是无法避免的么,我加延迟了也不行。我多按几次移屏的话就会出现那样的情况

一周热门 更多>