📄 wifi+̤
字号:
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 + -