標(biāo)題: 單片機(jī)小車運(yùn)行時(shí)如何不帶動(dòng)voice這個(gè)程序讓他倆互不干涉的運(yùn)行? [打印本頁]

作者: hyihang    時(shí)間: 2022-9-21 11:40
標(biāo)題: 單片機(jī)小車運(yùn)行時(shí)如何不帶動(dòng)voice這個(gè)程序讓他倆互不干涉的運(yùn)行?
#include<AT89X52.H>                  
#include<ZY-4WD_PWM.H>
                  
        sbit beep=P2^2;
        sbit key=P3^6;

        bit mode;              
        unsigned int cnt;
        unsigned char i;

void voice()
{
        if(mode)
        {
                beep=0;                              
         }
         else
         {
                  beep=1;
         }
}

   
        void main(void)
{        

        
            P1=0X00;           
                         TMOD=0X01;
                TH0= 0XFc;               
                 TL0= 0X18;
                   TR0= 1;
                ET0= 1;
                EA = 1;        
                                          

        while(1)        
        {
         
                        if( LeftIRBZ == 0 || RightIRBZ == 0 )  

                        {
                        
                          stop();                  

                        }
            
                        

                          else

                         {                                     if(Left_1_led==0&&Right_1_led==0)

                           {
                             run();   

                          
                           }
                                             
                                                           if(Left_1_led==1&&Right_1_led==0)            
                                  {
                                           leftrun();                  
                                

                             }
                           
                                                             if(Right_1_led==1&&Left_1_led==0)        
                                  {         
                                      rightrun();                  

                                  }
                                                    if(Right_1_led==1&&Left_1_led==1)               
                                  {         
                                      stop();               

                                  }

                        }        
                         voice();
                           if(key==0)
                           {
                                mode=1;         
                    }        
                                if(mode==1)
                           {
                                         cnt++;
                                        if(cnt>300)
                                        {
                                                        cnt=0;
                                                        mode=0;
                                        }
                    }
         }

                                
}

作者: imxuheng    時(shí)間: 2022-9-21 14:19
把voice在函數(shù)放到定時(shí)器中斷函數(shù)里,假如定時(shí)器50ms中斷一次,那記錄定時(shí)器中斷20次就觸發(fā)一次voice函數(shù),相當(dāng)于間隔1s,voice函數(shù)運(yùn)行一次
作者: yzwzfyz    時(shí)間: 2022-9-21 16:07
1、將voice寫成一個(gè)子函數(shù)。
2、設(shè)立一個(gè)標(biāo)記GV,GV=1就運(yùn)行voice,GV=0就不運(yùn)行voice。
3、這樣voice是否運(yùn)行,你只要設(shè)置GV就可以控制了。例如:
    小車運(yùn)行時(shí)讓GV=0,反之讓GV=1。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1