求助,为啥仿真的时候不能使用增大减小键呢?

2019-07-18 09:13发布

proteus仿真郭天祥书中的LCD时钟时,设置了三个键,一个功能选择键,一个增大键,一个减小见,用于调节时分秒,但是除了功能键可以用以外,增大减小键都不能用,这是怎么回事呢?按键扫描函数如下,求大神解答
  1. void keyscan()
  2. {
  3. if(s1==0)//功能键
  4.         {
  5.                 delay(5);
  6.                 if(s1==0)
  7.                 {
  8.                         s1num++;
  9.                         while(!s1);
  10.                         di();
  11.                         switch(s1num)
  12.                         {
  13.                                 case 1:TR0=0;
  14.                                            write_com(0x80+0x40+11);
  15.                                            write_com(0x0f);
  16.                                            break;
  17.                                 case 2:write_com(0x80+0x40+8);break;
  18.                                 case 3:write_com(0x80+0x40+5);break;
  19.                                 case 4:s1num=0;
  20.                                            write_com(0x0c);
  21.                                            TR0=1;
  22.                                            break;
  23.                          }
  24.                 }
  25.                 if(s1num!=0)
  26.                 {
  27.                         if(s2==0)//增大键
  28.                         {
  29.                                 delay(5);
  30.                                 if(s2==0)
  31.                                 {
  32.                                         while(!s2);
  33.                                         di();
  34.                                         switch(s1num)
  35.                                         {
  36.                                                 case 1:miao++;
  37.                                                        if(miao==60)
  38.                                                            {
  39.                                                                            miao=0;
  40.                                                            }
  41.                                                            write_sfm(10,miao);
  42.                                                            write_com(0x80+0x40+10);
  43.                                                            write_add(1,miao);
  44.                                                            break;
  45.                                                 case 2:fen++;
  46.                                                        if(fen==60)
  47.                                                            {
  48.                                                                            fen=0;
  49.                                                            }
  50.                                                            write_sfm(7,fen);
  51.                                                            write_com(0x80+0x40+7);
  52.                                                            write_add(2,fen);
  53.                                                            break;
  54.                                                 case 3:shi++;
  55.                                                        if(shi==24)
  56.                                                            {
  57.                                                                            shi=0;
  58.                                                            }
  59.                                                            write_sfm(4,shi);
  60.                                                            write_com(0x80+0x40+4);
  61.                                                            write_add(3,shi);
  62.                                                            break;
  63.                                         }
  64.                                 }
  65.                         }
  66.                         if(s3==0)//减小键
  67.                         {
  68.                                 delay(5);
  69.                                 if(s3==0)
  70.                                 {
  71.                                         while(!s3);
  72.                                         di();
  73.                                         switch(s1num)
  74.                                         {
  75.                                                 case 1:miao--;
  76.                                                        if(miao==-1)
  77.                                                            {
  78.                                                                            miao=59;
  79.                                                            }
  80.                                                            write_sfm(10,miao);
  81.                                                            write_com(0x80+0x40+10);
  82.                                                            write_add(1,miao);
  83.                                                            break;
  84.                                                 case 2:fen--;
  85.                                                        if(fen==-1)
  86.                                                            {
  87.                                                                            fen=59;
  88.                                                            }
  89.                                                            write_sfm(7,fen);
  90.                                                            write_com(0x80+0x40+7);
  91.                                                            write_add(2,fen);
  92.                                                            break;
  93.                                                 case 3:shi++;
  94.                                                        if(shi==-1)
  95.                                                            {
  96.                                                                            shi=23;
  97.                                                            }
  98.                                                            write_sfm(4,shi);
  99.                                                            write_com(0x80+0x40+4);
  100.                                                            write_add(3,shi);
  101.                                                            break;
  102.                                         }
  103.                                 }
  104.                         }
  105.                 }
  106.         }       
  107. }
复制代码

仿真图片 仿真图片
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
songxia8013
1楼-- · 2019-07-18 14:13
三个按键,程序应该是并排着,而不是谁包含谁!你看你的程序,设置键里面包含了加减键,当然不对了!
songxia8013
2楼-- · 2019-07-18 19:12
66行前面应该有一个大括号,完成设置键的检测部分。

一周热门 更多>