打印

51单片机按键定时

[复制链接]
1033|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
MOMO2333|  楼主 | 2016-12-4 21:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想写一个程序,按键设置定时时间,到点后又恢复成0
请问为什么我按下Confirm键后,数码管无显示,也无定时了?

void main()
{
        while(1)//必须先等开关开启??
        {
        if(Open==0)//检查定时是否开启
        {
                delay(1000);//消抖
                if(Open==0)
                break;
        }
  }
       
        while(1)
        {
                         display();//点亮数码
                  if(Add==0)//检查定时时间是否+1
                        {
                                delay(1000);
                                for(;Add==0;i++)//??不能i=1;否则每次从1开始
                                {
                                 while(!Add);
                                 display();
                                 delay(1000);
                                }
                                }
                   if(Tidy==0)//检查是否清零
                        {
                                delay(1000);
                                if(Tidy==0)
                                        i=0;
                                display();//清空数码管
      }
                        if(Confirm==0)
                        {
                                delay(1000);
                                if(Confirm==0)
                                {
                                while(i)
                          start1();//定时器1初始化
              if(time>99)
               {
                       time=0;
                       second++;
                       if(second>59)
                        {
                               second=0;
                               minute++;
                       if(minute==i)
                              {
                                     minute=0;
                                     i=0;
                                     display();
                               }
                //con=0;
                }
        }
        }       
                        }
               
                //return        con;
                        }
                        }
//return 1;       



void timer1() interrupt 3
{
       

        TH1=0XD8;        //给定时器赋初值,定时10ms
        TL1=0XF0;       
        time++;
       
}

相关帖子

沙发
NE5532| | 2016-12-4 22:02 | 只看该作者
请看《程序调试黑宝书》,答案在内。

使用特权

评论回复
板凳
xyz549040622| | 2016-12-5 21:46 | 只看该作者
函数太混乱了。。。建议整理下再贴上来。居然有两个while,第二个是干什么的了。

使用特权

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

本版积分规则

8

主题

11

帖子

0

粉丝