欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機智能小車的時候按鍵切換程序問題 [打印本頁]

作者: 濫情    時間: 2020-4-20 18:35
標題: 單片機智能小車的時候按鍵切換程序問題
單片機小白求助,我做智能小車的時候按鍵切換,切換到音樂模式的時候,我想的是在按一下他就停止,但是播放了音樂他就停不下來了。有大佬幫我看看出在哪嗎。附上代碼

  1. void music(void)   
  2. {

  3.    unsigned char t1;
  4.         unsigned char p,m;   //m為頻率常數變量   
  5.   unsigned char i=0;   
  6.   TMOD&=0x0f;   
  7.   TMOD|=0x01;   
  8.   TH0=0xd8;TL0=0xef;   
  9.   IE=0x82;   
  10. play:   
  11.    while(1)   
  12.     {   
  13.     a:          p=music_tab[i];
  14.        if(p==0x00)       { i=0, delay4(1000); goto play;}     //如果碰到結束符,延時1秒,回到開始再來一遍   
  15.        else if(p==0xff)  { i=i+1;delay4(100),TR0=0; goto a;}  //若碰到休止符,延時100ms,繼續取下一音符   
  16.             else         {m=music_tab[i++], n=music_tab[i++];}//取頻率常數 和 節拍常數   
  17.                                                         TR0=1;                                             //開定時器1   
  18.            while(n!=0) Beep=~Beep,delay3(m);                         //等待節拍完成, 通過P1口輸出音頻(可多聲道哦!)   
  19.        TR0=0;                                             //關定時器1   
  20.     }   
  21.         }


  22. void main()                               //主程序入口
  23. {

  24.   bit RunFlag=0;                          //定義小車運行標志位
  25. // LedFlash=3000;                                       //對閃燈數據進行初始化
  26. // EX1=1;                                               //同意開啟外部中斷1
  27.   IT1=1;                                               //設定外部中斷1為低邊緣觸發類型
  28.   EA=1;                                                //總中斷開啟
  29.   tingzhi();   
  30.         //初始化小車運行狀態
  31.         
  32.   while(1)                                //程序主循環
  33.   {
  34.              if(P3_2 == 0)
  35.           {
  36.            delay_nms(10);
  37.            if(P3_2 == 0)
  38.            {
  39.                      temp++;
  40.                   while(!P3_2);
  41.            }
  42.           }
  43.           if(temp > 4)
  44.           {
  45.           temp = 1;
  46.           }
  47.           switch(temp)
  48.           {
  49.                     case 1:Beep=1;tingzhi();break;        
  50.                                 
  51.                 case 2:Robot_Avoidance();EX1 = 0;break; //ShowPort = LedShowData[2];
  52.                         
  53.                 case 3://SB1 = 1;
  54.                                                 EX1 = 1;break;//ShowPort = LedShowData[3];
  55.                 case 4:tingzhi();music();EX1=1;break;
  56.                
  57.           }

  58.   }
  59. }
復制代碼


作者: ly1972001    時間: 2020-4-21 13:34
如果tingzhi()是關閉音樂,那你貼出來的代碼沒問題。就應該單獨測試一下播放音樂和停止音樂。




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