菜鸟求助:如何让正在运行的单片机程序暂停

2019-07-16 02:19发布

  如何让正在运行单片机程序暂停:就比如一个流水灯程序,主函数是几个动画效果flash。程序段如下:
   void main()
{ init()   // 各种初始化
   while(1)
  {    flash_1();          
         flash_2();

         flash_3();

}
}
中断函数:void time() interrupt 1{.....}//往IO口送数据。

     但是现在我想加一个按键实现暂停效果:按键按下一次程序暂停保留当前效果(就是保留着哪盏灯亮哪盏灯不亮),单按键第二次按下从当前效果继续往下运行。下面是我修改后的代码,功能却无法实现,请各位大神指点一二

  uchar keyscan() {  
        if(key==0)
        { delay(50);
                if(key==0)
                {
                        keym++;
                        TR0=0;
                       
                        if(keym=1) button=0;
                        if(keym=2) button=1;
                        if(keym>2) keym=1;
                        while(!key);
                }
        }
                        else button=1;
                        return(button);
}
void main()
{ init()   // 各种初始化
   keyscan();
   while(button)
  {    flash_1();          
         flash_2();

         flash_3();

  }
}
   中断函数未改动!!!暂停功能无法实现。
   此思路是否正确?如果再用一个中断来处理那么又是怎样解决呢?请大神指点一二!!!





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。