找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2427|回復: 1
收起左側(cè)

關于單片機循跡小車的一些小問題,需要在循跡1分半鐘后跳出主函數(shù)實現(xiàn)直行5秒

[復制鏈接]
ID:281692 發(fā)表于 2018-12-22 20:07 | 顯示全部樓層 |閱讀模式
30黑幣
大背景是一個51單片機控制的一個小車,但需要在循跡1分半鐘后跳出主函數(shù)實現(xiàn)直行5秒,再返回主函數(shù),拜托各位大神出出主意,
原代碼如下:#include <REGX52.H>

sbit LeftIR=P3^5;                        
sbit RightIR=P3^6;                        
sbit xunjiLED=P2^1;                       

sbit M1A=P0^0;                           
sbit M1B=P0^1;                        
sbit M2A=P0^2;                        
sbit M2B=P0^3;                           
sbit B1=P0^4;                          
sbit SB1=P0^6;                           

void tingzhi()
{
   M1A=0;                                   //??M1???A???????0
   M1B=0;                                   //??M1???B???????0
   M2A=0;                                   //??M2???A???????0
   M2B=0;
}
void qianjin()
{
   M1A=1;                                   
   M1B=0;                                   
   M2A=1;                                   
   M2B=0;
}
void houtui()
{
   M1A=0;                                   
   M1B=1;                                   
   M2A=0;                                   
   M2B=1;
}
void zuozhuan()
{
   M1A=0;                                   
   M1B=1;                                   
   M2A=1;                                   
   M2B=0;
}
void youzhuan()
{
   M1A=1;                                   
   M1B=0;                                   
   M2A=0;                                   
   M2B=1;
}
void delay_nus(unsigned int i)
{
  i=i/10;
  while(--i);
}   
void delay_nms(unsigned int n)
{
  n=n+1;
  while(--n)  
  delay_nus(900);      
  
}  

void ControlCar(unsigned char ConType)  
{

  tingzhi();
switch(ConType)                       
{
  case 1:  //???                     
  {
    qianjin();
    break;
  }
  case 2: //????                       
  {
    houtui();                           
    break;
  }
  case 3: //???                     
  {
    zuozhuan();                               //M2??????
break;
  }
  case 4: //???                          //?ж?????????????4
  {
    youzhuan();                                //M1??????
                                          //M2??????
break;
  }
  case 8: //??                          //?ж?????????????8
  {
    tingzhi();
break;                                //?????????
  }
}
}
void main()                               //?????????
{
  bit RunFlag=0;                          //????С?????б??λ
  //RunShow=0;                              //??????????
  ControlCar(8);                          //?????С????????
  while(1)                                //?????????
  {
   
   xunjiLED = 0 ;
   Start:
   if(LeftIR == 0 && RightIR == 0)  
   {
      ControlCar(1);                     
      delay_nms (10);
   goto NextRun;
   }
   
   if(LeftIR == 0 && RightIR == 1)
   {
      ControlCar(3);                     
      delay_nms (10);
   goto NextRun;
   }
   if(LeftIR == 1 && RightIR == 0)
   {
      ControlCar(4);                 
      delay_nms (10);
   goto NextRun;
   }
   if(LeftIR== 1&&RightIR == 1)
   {
     ContrplCar(4);
     delay_nms(10);
  goto NextRun;
  }


   goto Start;
   NextRun:
   ControlCar(8);
  }
}

回復

使用道具 舉報

ID:123289 發(fā)表于 2018-12-24 11:22 | 顯示全部樓層
如何理解你的“跳出主函數(shù)”?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表