找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1551|回复: 0
打印 上一主题 下一主题
收起左侧

stc12单片机l298p驱动全套程序

[复制链接]
跳转到指定楼层
楼主
小车参加完比赛全套程序,小车采用l298p电机驱动,使用4个麦克拉姆轮,4个舵机,8个循迹,4个避障模块搭建而成。程序可完成比赛2019年机器人技能大赛智慧快递项目。


比赛图纸


单片机源程序如下:
  1. #include <reg52.h>

  2. char flag=0;
  3. char flag1=0;
  4. char flag2=0;
  5. char flag3=0;
  6. void rightqianjin();
  7. void leftqianjin();
  8. void qianjin();
  9. void houtui();
  10. void stop();
  11. void rightqianjin1();
  12. void bizhangbegain();
  13. void bizhang();
  14. void qianxunji();
  15. void baixian2();
  16. void baixian();
  17. void houxunji();
  18. void qianjinshuxian();
  19. void xunjiqianjinshuxian();   
  20. void heikaihoutuishuxian() ;
  21. void heikaiqianjinyige2();
  22. void xunjiqianjinyige(void);  
  23. void houtuishuxian();     
  24. void houtuiyige(void);  
  25. void baisehoutuibange(void);
  26. void baisehoutuibange2();  
  27. void danbianhoutuishuxian();     
  28. void danbianhoutuiyige(void);  
  29. void zuoxuanzhuan();
  30. void xuanzhuanyige(void);
  31. void youxunji();
  32. void houtuibange(void);
  33. void qianjinshuxian2();
  34. void heikaiqianjinyige(void);
  35. void baixianbizhang();
  36. void zuohoushuxian(void);
  37. void zuohoushuyige(void)  ;
  38. void zuoqianshuxian(void);
  39. void zuoqianshuyige(void)  ;

  40. sbit IN1 = P0^0;
  41. sbit IN2 = P0^1;
  42. sbit ENA = P0^2;
  43. sbit ENB = P0^3;
  44. sbit IN3 = P0^4;
  45. sbit IN4 = P0^5;

  46. sbit IN5 = P2^0;
  47. sbit IN6 = P2^1;//??
  48. sbit ENAA = P2^2;
  49. sbit ENBB = P2^3;//??
  50. sbit IN7 = P2^4;
  51. sbit IN8 = P2^5;



  52. sbit right  = P1^0;
  53. sbit left  = P1^1;
  54. sbit right1  = P0^6;
  55. sbit bizhang1  = P1^3;
  56. sbit left1= P1^2;
  57. sbit bizhangleft= P1^5;
  58. sbit bizhangright  = P1^6;
  59. sbit bizhangtou= P1^7;
  60. sbit houleft  = P3^2; //
  61. sbit houright  = P3^3;//?????
  62. sbit right2  = P0^7;
  63. sbit left2 = P2^7;

  64. sbit SERVO0=P3^5;                        //?????PWM???
  65. sbit SERVO1=P3^6;                       
  66. sbit SERVO2=P3^7;


  67. unsigned int ServoPwmDuty[16] = {1500,1500,1500,1500,1500,1500,1500,1500,
  68.                            1500,1500,1500,1500,1500,1500,};        //PWM????
  69.                                                   
  70.                                                                   
  71. unsigned char zkb1 = 0;
  72. unsigned char zkb2 = 0;
  73. unsigned char zkb11 = 0;
  74. unsigned char zkb22 = 0;
  75. unsigned char t = 0;


  76. void delay(unsigned int x) //?? x ms
  77. {
  78. unsigned int i,j;
  79. for(i=x;i>0;i--)
  80. for(j=128;j>0;j--);
  81. }


  82. void DelayMs(unsigned int ms)
  83. {
  84. unsigned int i,j;
  85.         for(i=0;i<800;i++)                //89????85,12??????800
  86.                 for(j=0;j<ms;j++);
  87. }





  88. void init0()
  89. {

  90.          
  91.          EA = 1;
  92.          TMOD = 0x01;
  93.          TH0 =(65536 - 100) / 256;
  94.          TL0 = (65536 - 100)% 256;                       
  95.          ET0 = 1;
  96.          TR0 = 1;
  97.          ENA = 1;
  98.                  ENAA = 1;
  99.          ENB = 1;
  100.                  ENBB = 1;
  101. }

  102. void init1()
  103. {
  104.                         
  105.          EA = 1;
  106.          TMOD = 0x10;
  107.                  TH1 =(65536-40000)/256;
  108.              TL1 =(65536-40000)%256;                       
  109.                  ET1 = 1;
  110.                  TR1 = 1;
  111. }
  112. void rightqianjin()
  113. {
  114.          zkb1=0;
  115.          zkb2=0;
  116.                      zkb11=30;
  117.          zkb22=30;


  118.          IN1 = 0;
  119.          IN2 = 1;
  120.          IN3 = 0;
  121.          IN4 = 1;
  122.                      IN5 = 0;
  123.          IN6 = 1;
  124.          IN7 = 0;
  125.          IN8 = 1;
  126. }

  127. void leftqianjin()
  128. {
  129.          zkb1=30;
  130.          zkb2=30;
  131.                      zkb11=0;
  132.          zkb22=0;

  133.          IN1 = 0;
  134.          IN2 = 1;
  135.          IN3 = 0;
  136.          IN4 = 1;
  137.                      IN5 = 0;
  138.          IN6 = 1;
  139.          IN7 = 0;
  140.          IN8 = 1;
  141. }
  142. void qianjin()
  143. {
  144.          zkb1=50;
  145.          zkb2=50;
  146.                     zkb11=50;
  147.          zkb22=50;

  148.          IN1 = 0;
  149.          IN2 = 1;
  150.          IN3 = 0;
  151.          IN4 = 1;
  152.                  IN5 = 0;
  153.          IN6 = 1;
  154.          IN7 = 0;
  155.          IN8 = 1;
  156. }


  157. void houtui()
  158. {
  159.          zkb1=35;
  160.          zkb2=35;
  161.                  zkb11=28;
  162.          zkb22=28;

  163.          IN1 = 1;
  164.          IN2 = 0;
  165.          IN3 = 1;
  166.          IN4 = 0;
  167.                  IN5 = 1;
  168.          IN6 = 0;
  169.          IN7 = 1;
  170.          IN8 = 0;
  171. }

  172. void righthoutui()
  173. {
  174.          zkb1=10;
  175.          zkb2=10;
  176.                  zkb11=30;
  177.          zkb22=30;


  178.          IN1 = 1;
  179.          IN2 = 0;
  180.          IN3 = 1;
  181.          IN4 = 0;
  182.                  IN5 = 1;
  183.          IN6 = 0;
  184.          IN7 = 1;
  185.          IN8 = 0;
  186. }

  187. void lefthoutui()
  188. {
  189.          zkb1=30;
  190.          zkb2=30;
  191.                  zkb11=10;
  192.          zkb22=10;

  193.          IN1 = 1;
  194.          IN2 = 0;
  195.          IN3 = 1;
  196.          IN4 = 0;
  197.                  IN5 = 1;
  198.          IN6 = 0;
  199.          IN7 = 1;
  200.          IN8 = 0;
  201. }
  202.   void stop()         
  203. {
  204.          zkb1=10;
  205.          zkb2=10;
  206.                  zkb11=13;
  207.          zkb22=13;

  208.          IN1 = 0;
  209.          IN2 = 0;
  210.          IN3 = 0;
  211.          IN4 = 0;
  212.                  IN5 = 0;
  213.          IN6 = 0;
  214.          IN7 = 0;
  215.          IN8 = 0;
  216. }

  217. void leftqianjin1()
  218. {
  219.          zkb1=28;
  220.          zkb2=25;
  221.                  zkb11=28;
  222.          zkb22=35;

  223.          IN1 = 0;
  224.          IN2 = 1;
  225.          IN3 = 1;
  226.          IN4 = 0;
  227.                  IN5 = 1;
  228.          IN6 = 0;
  229.          IN7 = 0;
  230.          IN8 = 1;
  231. }
  232. void leftqianjin1shang()
  233. {
  234.          zkb1=28;
  235.          zkb2=25;
  236.                  zkb11=25;
  237.          zkb22=50;

  238.          IN1 = 0;
  239.          IN2 = 1;
  240.          IN3 = 1;
  241.          IN4 = 0;
  242.                  IN5 = 1;
  243.          IN6 = 0;
  244.          IN7 = 0;
  245.          IN8 = 1;
  246. }
  247.   void leftqianjin1xia()
  248. {
  249.          zkb1=28;
  250.          zkb2=25;
  251.                  zkb11=50;
  252.          zkb22=50;

  253.          IN1 = 0;
  254.          IN2 = 1;
  255.          IN3 = 1;
  256.          IN4 = 0;
  257.                  IN5 = 1;
  258.          IN6 = 0;
  259.          IN7 = 0;
  260.          IN8 = 1;
  261. }

  262.   void zuoxunji()
  263. {
  264.          
  265.          if((right1 == 1)||(right2 == 1)||(left1==1)||(left2==1))
  266.          {
  267.               leftqianjin1();
  268.                           
  269.          }
  270.      else    if((right1 ==0)&&(right2 == 1)&&(left1==0)&&(left2==1))
  271.          {
  272.                                  leftqianjin1shang()         ;
  273.                                         
  274.          }
  275.        else  if((right1 == 1)&&(right2 == 0)&&(left1==1)&&(left2==0))
  276.          {
  277.                    leftqianjin1xia();            
  278.                  }
  279.           
  280.    }

  281. void youxuanzhuan()
  282. {
  283.          zkb1=50;
  284.          zkb2=50;
  285.                  zkb11=50;
  286.          zkb22=50;

  287.          IN1 = 1;
  288.          IN2 = 0;
  289.          IN3 = 1;
  290.          IN4 = 0;
  291.                  IN5 = 0;
  292.          IN6 = 1;
  293.          IN7 = 0;
  294.          IN8 = 1;
  295. }
  296. void rightbizhangbegain()

  297. {
  298.          stop();
  299.          delay(2000);

  300.      if((left1 == 1)&&(right1 == 0))
  301.    {                  
  302.             {
  303.          stop();
  304.          delay(2000);
  305.          }

  306.          if((bizhangleft==0) )

  307.          {
  308.          
  309.          xunjiqianjinyige();
  310.            delay(2000);
  311.           

  312.            if((bizhangleft==1) )
  313.            {
  314.                      zuoqianshuyige()        ;
  315.                           delay(1000);
  316.            }          
  317.           }
  318.            else if((bizhangleft==1) )
  319.            {
  320.                     zuoqianshuyige()        ;
  321.                           delay(1000);
  322.            }          
  323.    }
  324.      
  325.          
  326. }

  327. void baixianbizhang()
  328. {
  329.    if((bizhang1==0)&&((houleft==0)&&(houright==0)))
  330.    {
  331.     danbianhoutuiyige() ;             
  332.                 delay(5000);

  333.                  zuoqianshuyige()        ;
  334.                           delay(1000);
  335.           }
  336. }


  337.    
  338. void bizhang()
  339.    {

  340.        
  341.         if((bizhang1==0)&&(houleft==1)&&(houright==1)&&(right==1)&&(left==1))

  342.    {
  343. //                    
  344.                  houtuiyige();
  345.                  delay(1000);             
  346.                  
  347.        
  348.                  if (bizhangleft==0)
  349.                  {
  350.                                  {
  351.                                         houtuiyige();          
  352.                                           delay(1000);
  353.                                  }
  354.                            if (bizhangleft==0)
  355.                                 {
  356.                                
  357.                                  {
  358.                                 houtuiyige();          
  359.                                    delay(1000);
  360.                                    zuoqianshuyige()        ;
  361.                           delay(1000);
  362.        
  363.                                  }
  364.        
  365.                        
  366.                            }
  367.                    else
  368.                  {
  369.                 zuoqianshuyige();                                                                                       
  370.                   delay(1000);
  371.                  }

  372.             }
  373.         else
  374.         {
  375.          zuoqianshuyige();
  376.           delay(1000);
  377.         }          
  378.    }
  379.        
  380.                                                                                                                                                                                   
  381.   }
  382. //   
  383.   void qianxunji()
  384. {
  385.            
  386.          if((left == 1)&&(right == 1))
  387.          {
  388.                 qianjin();
  389.          }
  390.      else    if((left ==0)&&(right == 1))
  391.          {
  392.                 rightqianjin();
  393.                                           
  394.          }
  395.        else  if((left == 1)&&(right == 0))
  396.          {
  397.                 leftqianjin();
  398.          }      
  399.          }
  400.          
  401. void baixian()
  402. {         
  403.    if(((left==0)&&(right==0))&&(flag3==0)&&((houright==1)||(houleft==1)))
  404.      {
  405.                                  {
  406.                              stop();
  407.                                 delay(500);
  408.                           heikaiqianjinyige();
  409.                            delay(500);
  410.                            baisehoutuibange();
  411.                                 delay(500);
  412.                            }
  413.                           if(bizhangleft==0)
  414.                           {
  415.                                 {
  416.                            houtuiyige() ;
  417.                            delay(1000) ;
  418.                                 }

  419.                                 if(bizhangleft==0)
  420.                                   {
  421.                                  houtuiyige();
  422.                                   delay(1000);
  423.                                   zuohoushuyige();
  424.                           delay(1000);

  425.                                    }
  426.                                 else
  427.                                 {
  428.                   zuohoushuyige();
  429.                           delay(1000);
  430.                                
  431.                                 }
  432.                           }
  433.          else
  434.          {
  435.                           
  436.                         stop();
  437.                         delay(500);
  438.                          zuohoushuyige();
  439.                           delay(1000);
  440.                                             
  441.          
  442.          }       
  443. }         
  444. }  

  445. void baixian2()
  446. {         
  447.    if(((left==0)&&(right==0))&&(flag3>0)&&((houleft==1)||(houright==1)))
  448.      {
  449.                                 
  450.                              stop();
  451.                                 delay(500);
  452.                           heikaiqianjinyige2();
  453.                            delay(1000);
  454.                            baisehoutuibange2();
  455.                                 delay(1000);
  456.                 if((right==0)&&(left==0)&&(left1==1)&&(right1==1)||(left2==1))
  457.                                  {         
  458.                           if(bizhangleft==0)
  459.                           {
  460.                                 {
  461.                            houtuiyige() ;
  462.                            delay(1000) ;
  463.                                 }

  464.                                 if(bizhangleft==0)
  465.                                   {
  466.                                  houtuiyige();
  467.                                   delay(1000);
  468.                                   zuohoushuyige();
  469.                           delay(1000);

  470.                                    }
  471.                                 else
  472.                                 {
  473.                          zuohoushuyige();
  474.                           delay(1000);
  475.                                
  476.                                 }
  477.                           }
  478.          else
  479.          {
  480.                           
  481.                         stop();
  482.                         delay(1000);
  483.                         zuohoushuyige();
  484.                           delay(1000);
  485.                                             
  486.          
  487.          }
  488. }         
  489.                      else if((right==0)&&(left==0)&&(left1==0)&&(left2==0)&&(right1==1))
  490. {

  491. xuanzhuanyige();
  492.         flag3=0;
  493.         qianjin();
  494.         delay(1000);
  495.         danbianhoutuiyige();
  496.         delay(1000);
  497.         rightbizhangbegain();

  498. }
  499.         }
  500. }  
  501.   void houxunji()
  502. {
  503.          
  504.          if((houleft==1)&&(houright==1))
  505.          {
  506.                   houtui();
  507.          }
  508.      else    if((houleft==0)&&(houright==1))
  509.          {
  510.                
  511.                                   righthoutui();        
  512.          }
  513.        else  if((houleft==1)&&(houright==0))
  514.          {                  
  515.                  
  516.                          lefthoutui();
  517.                
  518.          }
  519.    }        

  520. void xunjiqianjinshuxian()   
  521. {
  522.     qianxunji();
  523.         if( left1 ==0&&flag==0)
  524.         {
  525.    qianxunji();
  526.         flag=1;
  527.         }
  528.         else        if( left1 ==1&&flag==1)
  529.         {
  530. qianxunji();
  531.         flag=2;
  532.         }
  533. qianxunji();
  534.         if( left1 ==0&&flag==2)
  535.         {
  536.    qianxunji();
  537.         flag=3;                  //??????
  538.         }
  539.         else        if( left1 ==1&&flag==3)
  540.         {
  541.    qianxunji();
  542.         flag=4;
  543.         }

  544.                 else        if( left1 ==0&&flag==4)
  545.         {
  546.    qianxunji();
  547.         flag=5;//??????
  548.         }
  549.                 else        if( left1 ==1&&flag==5)
  550.         {
  551.    qianxunji();
  552.         flag=6;
  553.         }
  554.         else        if( left1 ==1&&flag==6)
  555.         {
  556. qianxunji() ;//??3???
  557.         flag=7;
  558.         }
  559. qianxunji();
  560.         if( left1 ==0&&flag==7)
  561.         {
  562.    qianxunji();
  563.         flag=8;
  564.         }
  565.         else        if( left1 ==1&&flag==8)
  566.         {
  567.   qianxunji();
  568.         flag=9;//??4???
  569.         }
  570.                 else        if( left1 ==0&&flag==9)
  571.         {
  572.    qianxunji();
  573.         flag=10;
  574.         }
  575.                 else        if( left1 ==1&&flag==10)
  576.         {
  577. qianxunji();
  578.         flag=11;//??5???
  579.         }
  580.                 else        if( left1 ==1&&flag==11)
  581.         {
  582.         qianxunji();
  583.         flag=12;
  584.         }
  585.         qianxunji();
  586.              
  587. }


  588. void xunjiqianjinyige(void)  //??????
  589. {

  590.         while(1)
  591.         {
  592.                 xunjiqianjinshuxian() ;
  593.            if(flag==2)
  594.          
  595.         {
  596.          stop();
  597.          delay(1000);
  598.              flag=0;       
  599.                  break;
  600.                  }                 
  601.                 }               
  602. }
  603.   void qianjinshuxian2()   
  604. {
  605.       qianjin();
  606.         if(left1==1&&right1==1&&flag==0)
  607.         {
  608.    qianjin();
  609.         flag=1;
  610.         }
  611.         else        if(left1==0&&right1==0&&flag==1)
  612.         {
  613. qianjin();
  614.         flag=2;
  615.         }
  616. qianjin();
  617.         if(left1==1&&right==1&&flag==2)
  618.         {
  619.    qianjin();
  620.         flag=3;                  
  621.         }
  622.         else        if(left1==0&&right1==0&&flag==3)
  623.         {
  624.    qianjin();
  625.         flag=4;
  626.         }
  627. }

  628.         void heikaiqianjinyige(void)  
  629. {

  630.         while(1)
  631.         {
  632.                 qianjinshuxian2() ;
  633.            if(flag==2)
  634.          
  635.         {
  636.          stop();
  637.          delay(1000);
  638.              flag=0;       
  639.                  break;
  640.                  }                 
  641.                 }               
  642. }
  643. void qianjinshuxian3()   
  644. {
  645.       qianjin();
  646.         if(right1==1&&flag==0)
  647.         {
  648.    qianjin();
  649.         flag=1;
  650.         }
  651.         else        if(right1==0&&flag==1)
  652.         {
  653. qianjin();
  654.         flag=2;
  655.         }
  656. qianjin();
  657.         if(right1==1&&flag==2)
  658.         {
  659.    qianjin();
  660.         flag=3;                  //??????
  661.         }
  662.         else        if(right1==0&&flag==3)
  663.         {
  664.    qianjin();
  665.         flag=4;
  666.         }
  667. }

  668.         void heikaiqianjinyige2(void)  
  669. {

  670.         while(1)
  671.         {
  672.                 qianjinshuxian3() ;
  673.            if(flag==2)
  674.          
  675.         {
  676.          stop();
  677.          delay(1000);
  678.              flag=0;       
  679.                  break;
  680.                  }                 
  681.                 }               
  682. }



  683. void baisehoutuishuxian()   
  684. {
  685.     houtui();
  686.         if(right1==0&&left1==0&&flag1==0)
  687.         {
  688.      houtui();
  689.         flag1=1;
  690.         }
  691.         else        if(right1==1&&left1==1&&flag1==1)
  692.         {
  693.   houtui();
  694.         flag1=2;
  695.         }
  696. houtui();
  697.         if(right1==0&&left1==0&&flag1==2)
  698.         {
  699.    houtui();
  700.         flag1=3;
  701.         }
  702.         else        if(right1==1&&left1==1&&flag1==3)
  703.         {
  704.   houtui();
  705.         flag1=4;
  706.         }
  707. }


  708. void baisehoutuibange(void)  
  709. {

  710.         while(1)
  711.         {
  712.                 baisehoutuishuxian() ;          
  713.          if(flag1==2)
  714.        
  715.         {

  716.         stop();
  717.         delay(1000);
  718.              flag1=0;       
  719.                  break;
  720.                  }
  721.                          
  722.                 }               
  723. }
  724. void baisehoutuishuxian2()   
  725. {
  726.     houtui();
  727.         if(right1==0&&flag1==0)
  728.         {
  729.      houtui();
  730.         flag1=1;
  731.         }
  732.         else        if(right1==1&&flag1==1)
  733.         {
  734.   houtui();
  735.         flag1=2;
  736.         }
  737. houtui();
  738.         if(right1==0&&flag1==2)
  739.         {
  740.    houtui();
  741.         flag1=3;
  742.         }
  743.         else        if(right1==1&&flag1==3)
  744.         {
  745.   houtui();
  746.         flag1=4;
  747.         }
  748. }


  749. void  baisehoutuibange2(void)  
  750. {

  751.         while(1)
  752.         {
  753.                 baisehoutuishuxian2() ;          
  754.          if(flag1==2)
  755.        
  756.         {

  757.         stop();
  758.         delay(1000);
  759.              flag1=0;       
  760.                  break;
  761.                  }
  762.                          
  763.                 }               
  764. }


  765.   void houtuishuxian()     //????  ??
  766. {
  767.      houxunji();
  768.         if(right1==0&&left1==0&&flag1==0)
  769.         {
  770.       houxunji();
  771.         flag1=1;
  772.         }
  773.         else        if(right1==1&&left1==1&&flag1==1)
  774.         {
  775.    houxunji();
  776.         flag1=2;//??????
  777.         }
  778.   houxunji();
  779.         if(right1==0&&left1==0&&flag1==2)
  780.         {
  781.     houxunji();
  782.         flag1=3;
  783.         }
  784.         else        if(right1==1&&left1==1&&flag1==3)
  785.         {
  786.    houxunji();
  787.         flag1=4;//??????
  788.         }

  789.                 else        if(right1==0&&left1==0&&flag1==4)
  790.         {
  791.      houxunji();
  792.         flag1=5;//??????
  793.         }
  794.                 else        if(right1==1&&left1==1&&flag1==5)
  795.         {
  796.     houxunji();
  797.         flag1=6;//??????
  798.         }
  799. }



  800. void houtuiyige(void)  //????
  801. {

  802.         while(1)
  803.         {
  804.                 houtuishuxian();          
  805.          if(flag1==2)
  806.        
  807.         {

  808.         stop();
  809.         delay(1000);
  810.              flag1=0;       
  811.                  break;
  812.                  }
  813.                          
  814.                 }               
  815. }



  816. void danbianhoutuishuxian()     //??????  ??
  817. {
  818.      houtui();
  819.         if(left1==0&&flag1==0)
  820.         {
  821.       houtui();
  822.         flag1=1;
  823.         }
  824.         else        if(left1==1&&flag1==1)
  825.         {
  826.     houtui();
  827.         flag1=2;//??????
  828.         }
  829.   houtui();
  830.         if(left1==0&&flag1==2)
  831.         {
  832.      houtui();
  833.         flag1=3;
  834.         }
  835.         else        if(left1==1&&flag1==3)
  836.         {
  837.     houtui();
  838.         flag1=4;//??????
  839.         }

  840.                 else        if(left1==0&&flag1==4)
  841.         {
  842.      houtui();
  843.         flag1=5;//??????
  844.         }
  845.                 else        if(left1==1&&flag1==5)
  846.         {
  847.     houtui();
  848.         flag1=6;//??????
  849.         }
  850. }
  851. void danbianhoutuiyige(void)  
  852. {

  853.         while(1)
  854.         {
  855.                 danbianhoutuishuxian() ;          
  856.          if(flag1==2)
  857.        
  858.         {

  859.         stop();
  860.         delay(1000);
  861.              flag1=0;       
  862.                  break;
  863.                  }
  864.                          
  865.                 }               
  866. }

  867. void xuanzhuanshuxian()   
  868. {
  869.     youxuanzhuan();
  870.         if(right==0&&left==0&&flag1==0)
  871.         {
  872.     youxuanzhuan();
  873.         flag1=1;
  874.         }
  875.         else        if(right==1&&left==1&&flag1==1)
  876.         {
  877. youxuanzhuan();
  878.         flag1=2;
  879.         }
  880. youxuanzhuan();
  881.         if(right==0&&left==0&&flag1==2)
  882.         {
  883.   youxuanzhuan();
  884.         flag1=3;
  885.         }
  886.         else        if(right==1&&left==1&&flag1==3)
  887.         {
  888.   youxuanzhuan();
  889.         flag1=4;
  890.         }

  891.        
  892. }                  

  893.         void xuanzhuanyige(void)  
  894. {

  895.         while(1)
  896.         {
  897.                 xuanzhuanshuxian();          
  898.          if(flag1==4)
  899.        
  900.         {

  901.         stop();
  902.         delay(1000);
  903.              flag1=0;       
  904.                  break;
  905.                  }
  906.                          
  907.                 }               
  908. }

  909. void zuohoushuxian(void)   
  910. {

  911. {
  912.      zuoxunji();
  913.         if(houright==0&&houleft==0&&flag1==0)
  914.         {
  915.     zuoxunji();
  916.         flag1=1;
  917.         }
  918.         else        if(houright==1&&houleft==1&&flag1==1)
  919.         {
  920.   zuoxunji();
  921.         flag1=2;
  922.         }
  923.    zuoxunji();
  924.         if(houright==0&&houleft==0&&flag1==2)
  925.         {
  926.     zuoxunji();
  927.         flag1=3;
  928.         }
  929.         else        if(houright==1&&houleft==1&&flag1==3)
  930.         {
  931.    zuoxunji();
  932.         flag1=4;
  933.         }

  934.        
  935. }                  
  936.        
  937. }                  

  938.         void zuohoushuyige(void)  
  939. {

  940.         while(1)
  941.         {
  942.                 zuohoushuxian();          
  943.          if(flag1==2)
  944.        
  945.         {

  946.         stop();
  947.         delay(1000);
  948.              flag1=0;       
  949.                  break;
  950.                  }
  951.                          
  952.                 }               
  953. }

  954. void zuoqianshuxian(void)   
  955. {

  956. {
  957.     zuoxunji();
  958.         if(right==0&&left==0&&flag1==0)
  959.         {
  960.    zuoxunji();
  961.         flag1=1;
  962.         }
  963.         else        if(right==1&&left==1&&flag1==1)
  964.         {
  965. zuoxunji();
  966.         flag1=2;
  967.         }
  968.   zuoxunji();
  969.         if(right==0&&left==0&&flag1==2)
  970.         {
  971.     zuoxunji();
  972.         flag1=3;
  973.         }
  974.         else        if(right==1&&left==1&&flag1==3)
  975.         {
  976.    zuoxunji();
  977.         flag1=4;
  978.         }

  979.        
  980. }                  
  981.        
  982. }                  

  983.         void zuoqianshuyige(void)  
  984. {

  985.         while(1)
  986.         {
  987.                 zuoqianshuxian();          
  988.          if(flag1==2)
  989.        
  990.         {

  991.         stop();
  992.         delay(1000);
  993.              flag1=0;       
  994.                  break;
  995.                  }
  996.                          
  997.                 }               
  998. }
  999. void toushuxian()     
  1000. {
  1001.         if(TR0==0&&bizhangtou==1&&flag3==0)
  1002.         {
  1003.         flag3=1;
  1004.         }
  1005.         else        if(bizhangtou==0&&flag3==1)
  1006.         {
  1007.         flag3=2;
  1008.         }
  1009.         else if(bizhangtou==1&&flag3==2)
  1010.         {
  1011.         flag3=3;
  1012.         }
  1013.         else        if(bizhangtou==0&&flag3==3)
  1014.         {
  1015.         flag3=4;
  1016.         }       

  1017. }




  1018.         void Timer0Value(unsigned int pwm)
  1019. {
  1020.         unsigned int value;
  1021.         value=0xffff-pwm;               
  1022.         TR1 = 0;
  1023.         TL1=value;                       
  1024.     TH1=value>>8;               
  1025.         TR1 = 1;
  1026. }




  1027.           
  1028. void timer0() interrupt 1
  1029. {

  1030.          TH0 = (65536 - 100) / 256;
  1031.          TL0 = (65536 - 100) % 256;
  1032.                 if(t < zkb1 )
  1033.          {
  1034.                  ENA = 1;
  1035.          }
  1036.          else
  1037.          {
  1038.                  ENA = 0;
  1039.          }
  1040.                  if(t < zkb11 )
  1041.          {
  1042.                       ENAA = 1;
  1043.          }
  1044.          else
  1045.          {
  1046.                  ENAA = 0;
  1047.          }
  1048.                  if(t < zkb2 )
  1049.          {
  1050.                  ENB = 1;
  1051.          }
  1052.          else
  1053.          {
  1054.                  ENB = 0;
  1055.          }
  1056.                  if(t < zkb22 )
  1057.          {
  1058.                  ENBB = 1;
  1059.          }
  1060.          else
  1061.          {
  1062.                  ENBB = 0;
  1063.          }

  1064.          ++t;
  1065.          if(t == 50)
  1066.          {
  1067.                  ENA=~ENA;
  1068.                                  ENAA=~ENAA;//??????????????
  1069.                  ENB=~ENB;
  1070.                                  ENBB=~ENBB;
  1071.                  t = 0;
  1072.          }
  1073. }
  1074. void Timer0_isr(void) interrupt 3 using 1
  1075. {
  1076.         static unsigned int i = 1;
  1077.                                                
  1078.         switch(i)
  1079.         {
  1080.                 case 1:
  1081.                         SERVO0 = 1;       
  1082.                         Timer0Value(ServoPwmDuty[0]);       
  1083.                         break;
  1084.                 case 2:
  1085.                         SERVO0 = 0;       
  1086.                         Timer0Value(2500-ServoPwmDuty[0]);       
  1087.                         break;

  1088.                 case 3:
  1089.                         SERVO1 = 1;       
  1090.                         Timer0Value(ServoPwmDuty[1]);       
  1091.                         break;
  1092.                 case 4:
  1093.                         SERVO1 = 0;
  1094.                         Timer0Value(2500-ServoPwmDuty[1]);       
  1095.                         break;

  1096.                 case 5:
  1097.                         SERVO2 = 1;       
  1098.                         Timer0Value(ServoPwmDuty[2]);       
  1099.                         break;
  1100.                 case 6:
  1101.                         SERVO2 = 0;       
  1102.                         Timer0Value(2500-ServoPwmDuty[2]);
  1103.                         i=0;       
  1104.                         break;       
  1105.                         }
  1106.                                
  1107.         i++;
  1108. }
  1109. void youkai()
  1110. {
  1111.     init0();
  1112.          rightbizhangbegain();       
  1113.        

  1114.        
  1115.          while(1)
  1116.          {        
  1117.                  
  1118.                    toushuxian();

  1119.                            qianxunji();
  1120.                                   
  1121.                         baixianbizhang();                          
  1122.                 if( (bizhangtou==0)&&(left==0)&&(right==0))
  1123.                 {
  1124.        
  1125.                
  1126.                 stop();
  1127.                 delay(500);
  1128.                 qianjin();
  1129.                 delay(1000);
  1130.                 stop();
  1131.                 delay(500);
  1132. //       
  1133.                 TR0 = 0;
  1134.                 init1();
  1135.        
  1136.                  
  1137.                 {
  1138.                         ServoPwmDuty[0]=1200,   ServoPwmDuty[1]=1800,  ServoPwmDuty[2]=1500,                                                                                                    
  1139.            //     1                         2                         3                   4                                                                                                                                  
  1140.                         //       13                         14
  1141.                 DelayMs(500);

  1142.                 ServoPwmDuty[0]=1700,   ServoPwmDuty[1]=1600,  ServoPwmDuty[2]=1500,                                                                                                    
  1143.            //     1                         2                         3                   4                                                                                                                                  
  1144.                         //       13                         14
  1145.                 DelayMs(500);
  1146.                         ServoPwmDuty[0]=1700,   ServoPwmDuty[1]=1300,  ServoPwmDuty[2]=1200,                                                                                                    
  1147.            //     1                         2                         3                   4                                                                                                                                  
  1148.                         //       13                         14
  1149.                 DelayMs(500);
  1150.                 ServoPwmDuty[0]=1500,   ServoPwmDuty[1]=1000,  ServoPwmDuty[2]=1000,                                                                                                    
  1151.            //     1                         2                         3                   4                                                                                                                                  
  1152.                         //       13                         14
  1153.                 DelayMs(500);

  1154.                         ServoPwmDuty[0]=1700,   ServoPwmDuty[1]=1000,  ServoPwmDuty[2]=1000,                                                                                                    
  1155.            //     1                         2                         3                   4                                                                                                                                  
  1156.                         //       13                         14
  1157.                 DelayMs(500);

  1158.                
  1159.                 }       

  1160.                  TR1=0;
  1161.                  init0();
  1162.                  xuanzhuanyige();
  1163.                 delay(3000);
  1164.                 TR0 = 0;
  1165.                 init1();
  1166.                 {
  1167.                           ServoPwmDuty[0]=1500,   ServoPwmDuty[1]=1000,  ServoPwmDuty[2]=1000,                                                                                                    
  1168.            //     1                         2                         3                   4                                                                                                                                  
  1169.                         //       13                         14
  1170.                 DelayMs(500);

  1171.                         ServoPwmDuty[0]=1700,   ServoPwmDuty[1]=1300,  ServoPwmDuty[2]=1200,                                                                                                    
  1172.            //     1                         2                         3                   4                                                                                                                                  
  1173.                         //       13                         14
  1174.                 DelayMs(500);

  1175.                         ServoPwmDuty[0]=1500,   ServoPwmDuty[1]=1600,  ServoPwmDuty[2]=1300,                                                                                                    
  1176.            //     1                         2                         3                   4                                                                                                                                  
  1177.                         //       13                         14
  1178.                 DelayMs(500);

  1179.                 ServoPwmDuty[0]=1200,   ServoPwmDuty[1]=1800,  ServoPwmDuty[2]=1400,                                                                                                    
  1180.            //     1                         2                         3                   4                                                                                                                                  
  1181.                         //       13                         14
  1182.                 DelayMs(500);

  1183.                 ServoPwmDuty[0]=950,   ServoPwmDuty[1]=1800,  ServoPwmDuty[2]=1500,                                                                                                    
  1184.            //     1                         2                         3                   4                                                                                                                                  
  1185.                         //       13                         14
  1186.                 DelayMs(500);
  1187.                    }
  1188.                 TR1=0;
  1189.                 flag3=2;
  1190.                 init0();
  1191.                 qianjin();
  1192.                 delay(8000);
  1193.                 danbianhoutuiyige();
  1194.                 delay(1000);
  1195.         rightbizhangbegain();
  1196.                 }
  1197.                 baixian2();       
  1198.                 baixian();                                                                                                                                                                                                               
  1199.             bizhang();       
  1200.                  qianxunji();  
  1201.                 baixianbizhang();
  1202.         }
  1203.                 }
  1204. /****************************** ??????*****************************************************/




  1205. //void rightqianjin();
  1206. //void leftqianjin();
  1207. //void qianjin();
  1208. //void houtui();
  1209. //void stop();
  1210. //void rightqianjin1();
  1211. //void bizhangbegain();
  1212. //void bizhang();
  1213. //void qianxunji();
  1214. //void baixian();
  1215. //void houxunji();
  1216. //void qianjinshuxian();
  1217. //void xunjiqianjinshuxian();   
  1218. //void heikaihoutuishuxian() ;
  1219. //void heikaiqianjinyige2();
  1220. //void xunjiqianjinyige(void);  
  1221. //void houtuishuxian();     
  1222. //void houtuiyige(void);  
  1223. //void houtuiyige2(void) ;
  1224. //void baisehoutuibange(void);
  1225. //void baisehoutuibange3();
  1226. //void baisehoutuiyige(void);  
  1227. //void danbianhoutuishuxian();     
  1228. //void danbianhoutuiyige(void);  
  1229. //void zuoxuanzhuan();
  1230. //void xuanzhuanyige(void);
  1231. //void youxunji();
  1232. //void houtuibange(void);
  1233. //void qianjinshuxian2();
  1234. //void heikaiqianjinyige(void);
  1235. //void baixianbizhang();                                                                                                                                       

  1236. void rightqianjin1();
  1237. void rightqianjin1shang();
  1238. void rightqianjin1xia();
  1239. void youxunji();
  1240. void zuoxuanzhuan();
  1241. void bizhangbegain();
  1242. void baixianbizhang2();
  1243. void bizhang2();
  1244. void baixian3();
  1245. void baixian4();
  1246. void xunjiqianjinshuxian2();
  1247. void xunjiqianjinyige2(void) ;
  1248. void qianjinshuxian4()   ;
  1249. void heikaiqianjinyige3(void)  ;
  1250. void baisehoutuishuxian3()   ;
  1251. void  baisehoutuibange3(void) ;
  1252. void danbianhoutuishuxian2()   ;
  1253. void danbianhoutuiyige2(void)  ;
  1254. void xuanzhuanshuxian2() ;
  1255. void xuanzhuanyige2(void);
  1256. void youhoushuxian(void)  ;
  1257. void youhoushuyige(void);
  1258. void youqianshuxian(void)  ;
  1259. void youqianshuyige(void);







  1260. void rightqianjin1()
  1261. {
  1262.          zkb1=32;
  1263.          zkb2=25;
  1264.                  zkb11=30;
  1265.          zkb22=30;

  1266.          IN1 = 1;
  1267.          IN2 = 0;
  1268.          IN3 = 0;
  1269.          IN4 = 1;
  1270.                  IN5 = 0;
  1271.          IN6 = 1;
  1272.          IN7 = 1;
  1273.          IN8 = 0;
  1274. }
  1275. void rightqianjin1shang()
  1276. {
  1277.          zkb1=30;
  1278.          zkb2=25;
  1279.                  zkb11=30;
  1280.          zkb22=30;

  1281.          IN1 = 1;
  1282.          IN2 = 0;
  1283.          IN3 = 0;
  1284.          IN4 = 1;
  1285.                  IN5 = 0;
  1286.          IN6 = 1;
  1287.          IN7 = 1;
  1288.          IN8 = 0;
  1289. }
  1290.   void rightqianjin1xia()
  1291. {
  1292.          zkb1=30;
  1293.          zkb2=17;
  1294.                  zkb11=30;
  1295.          zkb22=30;

  1296.          IN1 = 1;
  1297.          IN2 = 0;
  1298.          IN3 = 0;
  1299.          IN4 = 1;
  1300.                  IN5 = 0;
  1301.          IN6 = 1;
  1302.          IN7 = 1;
  1303.          IN8 = 0;
  1304. }

  1305.   void youxunji()
  1306. {
  1307.          
  1308.          if((right1 == 1)||(right2 == 1)||(left1==1)||(left2==1))
  1309.          {
  1310.                rightqianjin1();
  1311.                           
  1312.          }
  1313.      else    if((right1 ==0)&&(right2 == 1)&&(left1==0)&&(left2==1))
  1314.          {
  1315.                 rightqianjin1shang();
  1316.                                         
  1317.          }
  1318.        else  if((right1 == 1)&&(right2 == 0)&&(left1==1)&&(left2==0))
  1319.          {
  1320.                 rightqianjin1xia();
  1321.                      
  1322.                  }               

  1323.    }

  1324. void zuoxuanzhuan()
  1325. {
  1326.          zkb1=50;
  1327.          zkb2=50;
  1328.                  zkb11=50;
  1329.          zkb22=50;

  1330.          IN1 = 0;
  1331.          IN2 = 1;
  1332.          IN3 = 0;
  1333.          IN4 = 1;
  1334.                  IN5 = 1;
  1335.          IN6 = 0;
  1336.          IN7 = 1;
  1337.          IN8 = 0;
  1338. }
  1339. void bizhangbegain()

  1340. {


  1341.      if((left1 == 0)&&(right1 == 1)&&(right==1)||(left==1))
  1342.    {                  
  1343.             {
  1344.          stop();
  1345.          delay(2000);
  1346.          }

  1347.          if((bizhangright==0) )

  1348.          {
  1349.          xunjiqianjinyige2();
  1350.            delay(3000);

  1351.            if((bizhangright==1) )
  1352.            {
  1353.                     youqianshuyige();
  1354.                           delay(2000);
  1355.            }
  1356.            else if((bizhangright==0) )
  1357.            {
  1358.                  xunjiqianjinyige2();
  1359.            delay(3000);
  1360.                     youqianshuyige();
  1361.                           delay(2000);
  1362.            }                     
  1363.           }
  1364.            else if((bizhangright==1) )
  1365.            {
  1366.                     youqianshuyige();
  1367.                           delay(2000);
  1368.            }          
  1369.    }
  1370.      
  1371.          
  1372. }

  1373. void baixianbizhang2()
  1374. {
  1375.    if((bizhang1==0)&&((houleft==0)&&(houright==0)))
  1376.    {
  1377.     danbianhoutuiyige2() ;             
  1378.                 delay(5000);

  1379.          youqianshuyige();
  1380.                           delay(2000);
  1381.           }
  1382. }


  1383.    
  1384. void bizhang2()
  1385.    {

  1386.        
  1387.         if((bizhang1==0)&&(houleft==1)&&(houright==1)&&(right==1)&&(left==1))

  1388.    {
  1389. //                    
  1390.                  houtuiyige();
  1391.                  delay(1000);             
  1392.                  
  1393.        
  1394.                  if (bizhangright==0)
  1395.                  {
  1396.                                  {
  1397.                                         houtuiyige();          
  1398.                                           delay(1000);
  1399.                                  }
  1400.                            if (bizhangright==0)
  1401.                                 {
  1402.                                
  1403.                                  {
  1404.                                 houtuiyige();          
  1405.                                    delay(1000);
  1406.                                    youqianshuyige();
  1407.                           delay(2000);
  1408.        
  1409.                                  }
  1410.        
  1411.                        
  1412.                            }
  1413.                    else
  1414.                  {
  1415.                 youqianshuyige();
  1416.                           delay(2000);
  1417.                  }

  1418.             }
  1419.         else
  1420.         {
  1421.          youqianshuyige();
  1422.                           delay(2000);
  1423.         }          
  1424.    }
  1425.        
  1426.                                                                                                                                                                                   
  1427.   }
  1428. //   
  1429.   
  1430.          
  1431. void baixian3()
  1432. {         
  1433.    if(((left==0)&&(right==0))&&(flag3==0)&&((houright==1)||(houleft==1)))
  1434.      {
  1435.                                  {
  1436.                              stop();
  1437.                                 delay(1000);
  1438.                           heikaiqianjinyige();
  1439.                            delay(1000);
  1440.                            baisehoutuibange();
  1441.                                 delay(1000);
  1442.                            }
  1443.                           if(bizhangright==0)
  1444.                           {
  1445.                                 {
  1446.                            houtuiyige() ;
  1447.                            delay(1000) ;
  1448.                                 }

  1449.                                 if(bizhangright==0)
  1450.                                   {
  1451.                                  houtuiyige();
  1452.                                   delay(1000);
  1453.                                   youhoushuyige();
  1454.                                   delay(1000);

  1455.                                    }
  1456.                                 else
  1457.                                 {
  1458.                          youhoushuyige();
  1459.                                   delay(1000);
  1460.                                
  1461.                                 }
  1462.                           }
  1463.          else
  1464.          {
  1465.                           
  1466.                         stop();
  1467.                         delay(1000);
  1468.                         youhoushuyige();
  1469.                                   delay(1000);
  1470.                                             
  1471.          
  1472.          }       
  1473. }         
  1474.           
  1475. }  

  1476. void baixian4()
  1477. {         
  1478.    if(((left==0)&&(right==0))&&(flag3>0)&&((houright==1)||(houleft==1)))
  1479.      {
  1480.                                  {
  1481.                              stop();
  1482.                                 delay(1000);
  1483.                                    heikaiqianjinyige3();
  1484.                            delay(1000);
  1485.                                  baisehoutuibange3();
  1486.                                 delay(1000);
  1487.                            }
  1488.                                  if((right==0)&&(left==0)&&(right1==1)&&(left1==1)||(right2==1))
  1489.                                  {         
  1490.                           if(bizhangright==0)
  1491.                           {
  1492.                                 {
  1493.                            houtuiyige() ;
  1494.                            delay(1000) ;
  1495.                                 }

  1496.                                 if(bizhangright==0)
  1497.                                   {
  1498.                                  houtuiyige();
  1499.                                   delay(1000);
  1500.                                   youhoushuyige();
  1501.                                   delay(1000);

  1502.                                    }
  1503.                                 else
  1504.                                 {
  1505.                  youhoushuyige();
  1506.                                   delay(1000);
  1507.                                
  1508.                                 }
  1509.                           }
  1510.          else
  1511.          {
  1512.                           
  1513.                         stop();
  1514.                         delay(1000);
  1515.                 youhoushuyige();
  1516.                                   delay(1000);
  1517.                                             
  1518.          
  1519.          }
  1520. }         
  1521. else if((right==0)&&(left==0)&&(right1==0)&&(right2==0)&&(left1==1))
  1522. {

  1523. xuanzhuanyige2();
  1524.         flag3=0;
  1525.         qianjin();
  1526.         delay(1000);
  1527.         danbianhoutuiyige2();
  1528.         delay(1000);
  1529.         bizhangbegain();

  1530. }
  1531.         }
  1532. }  




  1533. void xunjiqianjinshuxian2()   
  1534. {
  1535.     qianxunji();
  1536.         if( right1 ==0&&flag==0)
  1537.         {
  1538.    qianxunji();
  1539.         flag=1;
  1540.         }
  1541.         else        if( right1 ==1&&flag==1)
  1542.         {
  1543. qianxunji();
  1544.         flag=2;
  1545.         }
  1546. qianxunji();
  1547.         if( right1 ==0&&flag==2)
  1548.         {
  1549.    qianxunji();
  1550.         flag=3;                  //??????
  1551.         }
  1552.         else        if( right1 ==1&&flag==3)
  1553.         {
  1554.    qianxunji();
  1555.         flag=4;
  1556.         }

  1557.                 else        if( right1 ==0&&flag==4)
  1558.         {
  1559.    qianxunji();
  1560.         flag=5;//??????
  1561.         }
  1562.                 else        if( right1 ==1&&flag==5)
  1563.         {
  1564.    qianxunji();
  1565.         flag=6;
  1566.         }
  1567.         else        if( right1 ==1&&flag==6)
  1568.         {
  1569. qianxunji() ;//??3???
  1570.         flag=7;
  1571.         }
  1572. qianxunji();
  1573.         if( right1 ==0&&flag==7)
  1574.         {
  1575.    qianxunji();
  1576.         flag=8;
  1577.         }
  1578.         else        if( right1 ==1&&flag==8)
  1579.         {
  1580.   qianxunji();
  1581.         flag=9;//??4???
  1582.         }
  1583.                 else        if( right1 ==0&&flag==9)
  1584.         {
  1585.    qianxunji();
  1586.         flag=10;
  1587.         }
  1588.                 else        if( right1 ==1&&flag==10)
  1589.         {
  1590. qianxunji();
  1591.         flag=11;//??5???
  1592.         }
  1593.                 else        if( right1 ==1&&flag==11)
  1594.         {
  1595.         qianxunji();
  1596.         flag=12;
  1597.         }
  1598.         qianxunji();
  1599.              
  1600. }


  1601. void xunjiqianjinyige2(void)  //??????
  1602. {

  1603.         while(1)
  1604.         {
  1605.                 xunjiqianjinshuxian2() ;
  1606.            if(flag==2)
  1607.          
  1608.         {
  1609.          stop();
  1610.          delay(2000);
  1611.              flag=0;       
  1612.                  break;
  1613.                  }                 
  1614.                 }               
  1615. }
  1616.   
  1617. void qianjinshuxian4()   
  1618. {
  1619.       qianjin();
  1620.         if(left1==1&&flag==0)
  1621.         {
  1622.    qianjin();
  1623.         flag=1;
  1624.         }
  1625.         else        if(left1==0&&flag==1)
  1626.         {
  1627. qianjin();
  1628.         flag=2;
  1629.         }
  1630. qianjin();
  1631.         if(left1==1&&flag==2)
  1632.         {
  1633.    qianjin();
  1634.         flag=3;                  //??????
  1635.         }
  1636.         else        if(left1==0&&flag==3)
  1637.         {
  1638.    qianjin();
  1639.         flag=4;
  1640.         }
  1641. }

  1642.         void heikaiqianjinyige3(void)  
  1643. {

  1644.         while(1)
  1645.         {
  1646.                 qianjinshuxian4() ;
  1647.            if(flag==2)
  1648.          
  1649.         {
  1650.          stop();
  1651.          delay(2000);
  1652.              flag=0;       
  1653.                  break;
  1654.                  }                 
  1655.                 }               
  1656. }



  1657. void baisehoutuishuxian3()   
  1658. {
  1659.     houtui();
  1660.         if(left1==0&&flag1==0)
  1661.         {
  1662.      houtui();
  1663.         flag1=1;
  1664.         }
  1665.         else        if(left1==1&&flag1==1)
  1666.         {
  1667.   houtui();
  1668.         flag1=2;
  1669.         }
  1670. houtui();
  1671.         if(left1==0&&flag1==2)
  1672.         {
  1673.    houtui();
  1674.         flag1=3;
  1675.         }
  1676.         else        if(left1==1&&flag1==3)
  1677.         {
  1678.   houtui();
  1679.         flag1=4;
  1680.         }
  1681. }


  1682. void  baisehoutuibange3(void)  
  1683. {

  1684.         while(1)
  1685.         {
  1686.                 baisehoutuishuxian3() ;          
  1687.          if(flag1==2)
  1688.        
  1689.         {

  1690.         stop();
  1691.         delay(2000);
  1692.              flag1=0;       
  1693.                  break;
  1694.                  }
  1695.                          
  1696.                 }               
  1697. }










  1698. void danbianhoutuishuxian2()     //??????  ??
  1699. {
  1700.      houtui();
  1701.         if(right1==0&&flag1==0)
  1702.         {
  1703.       houtui();
  1704.         flag1=1;
  1705.         }
  1706.         else        if(right1==1&&flag1==1)
  1707.         {
  1708.     houtui();
  1709.         flag1=2;//??????
  1710.         }
  1711.   houtui();
  1712.         if(right1==0&&flag1==2)
  1713.         {
  1714.      houtui();
  1715.         flag1=3;
  1716.         }
  1717.         else        if(right1==1&&flag1==3)
  1718.         {
  1719.     houtui();
  1720.         flag1=4;//??????
  1721.         }

  1722.                 else        if(right1==0&&flag1==4)
  1723.         {
  1724.      houtui();
  1725.         flag1=5;//??????
  1726.         }
  1727.                 else        if(right1==1&&flag1==5)
  1728.         {
  1729.     houtui();
  1730.         flag1=6;//??????
  1731.         }
  1732. }
  1733. void danbianhoutuiyige2(void)  
  1734. {

  1735.         while(1)
  1736.         {
  1737.                 danbianhoutuishuxian2() ;          
  1738.          if(flag1==2)
  1739.        
  1740.         {

  1741.         stop();
  1742.         delay(2000);
  1743.              flag1=0;       
  1744.                  break;
  1745.                  }         
  1746.                 }               
  1747. }
  1748. void xuanzhuanshuxian2()   
  1749. {
  1750.     zuoxuanzhuan();
  1751.         if(right==0&&left==0&&flag1==0)
  1752.         {
  1753.     zuoxuanzhuan();
  1754.         flag1=1;
  1755.         }
  1756.         else        if(right==1&&left==1&&flag1==1)
  1757.         {
  1758.   zuoxuanzhuan();
  1759.         flag1=2;
  1760.         }
  1761. zuoxuanzhuan();
  1762.         if(right==0&&left==0&&flag1==2)
  1763.         {
  1764.    zuoxuanzhuan();
  1765.         flag1=3;
  1766.         }
  1767.         else        if(right==1&&left==1&&flag1==3)
  1768.         {
  1769.   zuoxuanzhuan();
  1770.         flag1=4;
  1771.         }

  1772.        
  1773. }                  

  1774.         void xuanzhuanyige2(void)  
  1775. {

  1776.         while(1)
  1777.         {
  1778.                 xuanzhuanshuxian2();          
  1779.          if(flag1==4)
  1780.        
  1781.         {

  1782.         stop();
  1783.         delay(2000);
  1784.              flag1=0;       
  1785.                  break;
  1786.                  }
  1787.                          
  1788.                 }               
  1789. }


  1790. void youhoushuxian(void)   
  1791. {

  1792. {
  1793. ……………………

  1794. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
车比赛程序2.zip (71.74 KB, 下载次数: 8)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表