大家好,为什么这两个按钮不能随时有效执行

2019-07-16 04:05发布

times New Roman">//主程序void main(){       init();       while(1)       {               if(key1==0)//流水灯按钮              {                     delay_ms(10);                     if(key1==0)                     {                            flag=0;                            while(!key1);                                                                 }              }               if(key2==0)//继电器按钮              {                     delay_ms(10);                     if(key2==0)                     {                            flag1=0;                            while(!key2);                                                                 }              }               if(flag==0)//流水灯程序              {                     led1=0;                     delay_ms(500);                     led2=0;                     delay_ms(500);                     led3=0;                     delay_ms(500);                     led4=0;                     delay_ms(500);                     led1=1;   led2=1;   led3=1;   led4=1;                     delay_ms(500);                     flag=1;              }                            if(flag1==0)//继电器程序              {                     rel1=0;                                delay_ms(1000);                     rel1=1;                     delay_ms(1000);                     flag1=1;                }       }} 大家好,这是一段两个按钮分别控制流水灯和继电器的程序,其中key1控制流水灯,key2控制继电器。我这个程序并没有达到预期的效果,两个按钮在执行过程中会冲突,比如先按下key1时,执行流水灯程序,此时再按key2无效,必须要等流水灯程序中的flag=1(即退出if(flag==0)//流水灯程序以后)再按key2才有效。先按key2也一样,必须要等flag1=1(即退出if(flag1==0)//流水灯程序以后)再按key1才有效。请问如何更改程序才能使其不受制约?我要达到的目的是任何时候按下key1key2都会执行各自的程序,相互间不受制约?请各位网友多指点,谢谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。