⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wifi+̤

📁 WIFI无线小车
💻
📖 第 1 页 / 共 3 页
字号:
 271   1              if(cnt_s>=speed_R)
 272   1              {
 273   2                      EN1=0;
 274   2              }
 275   1              if(cnt_s>=speed_L)
 276   1              {
 277   2                      EN2=0;
 278   2              }
 279   1              if(cnt_s>=100)
 280   1              {
 281   2                      EN1=1;
 282   2                      EN2=1;
 283   2                      cnt_s=0;
 284   2      
 285   2              }
 286   1      
 287   1      
 288   1      
 289   1      }
 290          
 291          /*************motor control***************/
 292          void motor( int m_R, m_L)
 293          {
 294   1              pre_RS=m_R;
 295   1              pre_LS=m_L;
 296   1      
 297   1              //right motor
 298   1              if(m_R>0)
 299   1              {
 300   2                      IN1=0;
 301   2                      IN2=1;
 302   2                      speed_R=m_R;
 303   2              }
C51 COMPILER V9.01   WTCAR                                                                 07/02/2012 16:12:39 PAGE 6   

 304   1              else if (m_R<0)
 305   1              {
 306   2                      IN1=1;
 307   2                      IN2=0;
 308   2                      m_R=-m_R;
 309   2                      speed_R=m_R;
 310   2              }
 311   1              else
 312   1              {
 313   2                      IN1=0;
 314   2                      IN2=0;
 315   2              }       
 316   1              
 317   1              //left motor
 318   1              if(m_L>0)
 319   1              {
 320   2                      IN3=0;
 321   2                      IN4=1;
 322   2                      speed_L=m_L;
 323   2              }
 324   1              else if(m_L<0)
 325   1              {
 326   2                      IN3=1;
 327   2                      IN4=0;
 328   2                      m_L=-m_L;
 329   2                      speed_L=m_L;
 330   2              }
 331   1              else
 332   1              {
 333   2                      IN3=0;
 334   2                      IN4=0;
 335   2              }
 336   1      }
 337          /***********初始化系统所有的参数********************/
 338          void init_system()
 339          {
 340   1              unsigned int i;
 341   1              motor(0,0);
 342   1              LED_F_off();
 343   1              Laser_off();
 344   1              beed=1;
 345   1      
 346   1              speed_A=0;
 347   1              for(i=0;i<3;i++)
 348   1              {
 349   2                      R_date[i]=0;
 350   2                      RBuff_date[i]=0;
 351   2              }
 352   1      }
 353          
 354          /****************速度记录****************************/
 355          int Mark_Speed(int set)
 356          {
 357   1              int s_temp;
 358   1      
 359   1              if(set==0)
 360   1              {
 361   2                      s_temp=0;
 362   2              }
 363   1              else if(set<0)
 364   1              {
 365   2                      s_temp=-speed_A;
C51 COMPILER V9.01   WTCAR                                                                 07/02/2012 16:12:39 PAGE 7   

 366   2              }
 367   1                      else
 368   1              {
 369   2                      s_temp=speed_A;
 370   2              }
 371   1              return s_temp;
 372   1      }       
 373          
 374          
 375          /**********UART***************采用独立波特率发生器******/
 376          void initUart(void)             //4800 波特率
 377          {
 378   1       SCON=0x50;
 379   1       PCON=0xB0;
 380   1       BRT=0xfa;
 381   1       AUXR=0x11;
 382   1       ES=1;
 383   1      }
 384          
 385          void SCI_TX(unsigned char date)
 386          {
 387   1              SBUF=date;
 388   1              while(!TI);
 389   1              TI=0;
 390   1      }
 391          
 392          void uart(void) interrupt 4
 393          {
 394   1      
 395   1              if(RI)
 396   1              {
 397   2                      RI=0;
 398   2                      //add your code here.
 399   2                      if(flag_phone==0)
 400   2                      {
 401   3                              check_phone= RBuff_date[0];
 402   3                              RBuff_date[0]= RBuff_date[1];
 403   3                              RBuff_date[1]= RBuff_date[2];
 404   3                              RBuff_date[2]=SBUF;
 405   3                      
 406   3                      //判断是否是手机连接
 407   3                      if(check_phone==0x44 && RBuff_date[0]==0x44 && RBuff_date[1]==0x31 && RBuff_date[2]==0x0a)
 408   3                      {
 409   4                              flag_phone=1;
 410   4                              pattern=1;
 411   4      //                      print(0x03,"A");
 412   4                              beed_ctrl(1500,1);
 413   4                              speed_A=100;
 414   4                                              
 415   4                      }
 416   3                      //PC控制
 417   3                      if(RBuff_date[0]==0x3C && RBuff_date[1]==0x31 && RBuff_date[2]==0x3E)
 418   3                      {
 419   4                              pattern=2;
 420   4                              print(0x4f,"2");
 421   4                              beed_ctrl(500,4);
 422   4                      }
 423   3      
 424   3                      if(RBuff_date[0]==0x3C && RBuff_date[1]==0x30 && RBuff_date[2]==0x3E)
 425   3                      {
 426   4                              pattern=1;
 427   4                              print(0x4f,"1");
C51 COMPILER V9.01   WTCAR                                                                 07/02/2012 16:12:39 PAGE 8   

 428   4                              beed_ctrl(1500,1);
 429   4                      }
 430   3      
 431   3                      if(RBuff_date[0]==0x7B && RBuff_date[1]==0x31 && RBuff_date[2]==0x7D)
 432   3                      {
 433   4                              pattern=1;
 434   4                              print(0x4f,"1");
 435   4                              print(0xe3,"       ");
 436   4                              beed_ctrl(1500,1);
 437   4                      }
 438   3                      else if(RBuff_date[0]==0x7B && RBuff_date[1]==0x30 && RBuff_date[2]==0x7D)
 439   3                      {
 440   4                              pattern=0;
 441   4                              print(0x4f,"0");
 442   4                              init_system();
 443   4                              beed_ctrl(500,2);
 444   4                      }
 445   3                      else if( RBuff_date[0]==0x50 && RBuff_date[2]==0x00 )
 446   3                      {
 447   4                              speed_A=RBuff_date[1];
 448   4                              set_RS=Mark_Speed(pre_RS);
 449   4                              set_LS=Mark_Speed(pre_LS);
 450   4                              motor( set_LS, set_RS);
 451   4                      }        
 452   3                      else
 453   3                      {
 454   4                              R_date[0]=RBuff_date[0];
 455   4                              R_date[1]=RBuff_date[1];
 456   4                              R_date[2]=RBuff_date[2];
 457   4                      }
 458   3                      }
 459   2                      else
 460   2                      {
 461   3                              RBuff_date[0]= RBuff_date[1];
 462   3                              RBuff_date[1]= RBuff_date[2];
 463   3                              RBuff_date[2]= RBuff_date[3];
 464   3                              RBuff_date[3]=SBUF;
 465   3      
 466   3                              R_date[0]=RBuff_date[0];
 467   3                              R_date[1]=RBuff_date[1];
 468   3                              R_date[2]=RBuff_date[2];
 469   3                      }
 470   2                      
 471   2      
 472   2              }
 473   1              else
 474   1              TI=0;
 475   1              
 476   1      }
 477          /**************interrupt T1***********/
 478          void timer1(void) interrupt 3
 479          {
 480   1              TH1=0xff;
 481   1              TL1=0xdc;        //49:100us a5:50us      dc:20us ee:10us
 482   1       //add your code here.
 483   1              PWM_cnt++;
 484   1              
 485   1              if(PWM_cnt >=PWM_G1 )
 486   1              {
 487   2                      SPWM1=0;
 488   2              }
 489   1              if(PWM_cnt >=PWM_G2 )
C51 COMPILER V9.01   WTCAR                                                                 07/02/2012 16:12:39 PAGE 9   

 490   1              {
 491   2                      SPWM2=0;
 492   2              }
 493   1              
 494   1              if(PWM_cnt >= 500)
 495   1              {
 496   2                      PWM_cnt=0;
 497   2                      SPWM1=1;
 498   2                      SPWM2=1;
 499   2              }
 500   1              
 501   1      
 502   1      
 503   1              cnt_b++;
 504   1              if(flag_beed==1)
 505   1              {
 506   2                      if(B_counter>0)
 507   2                      {
 508   3                              if(cnt_b>cnt_beed)
 509   3                              {
 510   4                                      beed=!beed;
 511   4                                      cnt_b=0;
 512   4                                      B_counter--;
 513   4                              }
 514   3                      }
 515   2      
 516   2      
 517   2              }
 518   1      /*
 519   1              if(flag_ser==1)
 520   1              {
 521   1                      cnt_ser++;
 522   1                      if(cnt_ser>100)
 523   1                      {
 524   1                              EN1_S=0;
 525   1                              flag_ser=0;
 526   1                              cnt_ser=0;
 527   1                      }
 528   1              }
 529   1      */              
 530   1              
 531   1      }
 532          
 533          
 534          /**************init T1****************/
 535          void init_T1(void)
 536          {
 537   1              TMOD|=0x10;
 538   1              TH1=0xff;
 539   1              TL1=0x49;
 540   1              TR1=1;
 541   1              ET1=1;
 542   1      }
 543          
 544          /*************initServo****************/
 545          void initServo()
 546          {
 547   1              PWM_G1=Byte_Read(0x00);
 548   1              PWM_G2=Byte_Read(0x01);
 549   1      }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -