📄 wifi+̤
字号:
550
551 /************setServo*******************/
C51 COMPILER V9.01 WTCAR 07/02/2012 16:12:39 PAGE 10
552 void setServo()
553 {
554 1 Sector_Erase(0x00);
555 1 Byte_Program(0x00,PWM_G1) ;
556 1 Byte_Program(0x01,PWM_G2) ;
557 1 }
558
559
560 main(void)
561 {
562 1
563 1 LED1=1; //高电平LED不亮
564 1 LED2=1; //
565 1
566 1 P4SW=0xff; //定义ALE PSEN 。。三个引脚为P4.4 P4.5 P4.6 用于控制1602显示屏
567 1
568 1 P1M0=0xC0;
569 1 P1M1=0x00;
570 1
571 1 init_T0(); //初始化定时器。
572 1 init_T1();
573 1
574 1 CLK_DIV=0x01; //系统分频工作,速度太快,1602控制不了。
575 1 LCM2402_Init(); // 初如化1602显示屏
576 1
577 1 initUart();
578 1 initServo();
579 1
580 1 init_system();
581 1
582 1 EA=1;
583 1
584 1 beed_ctrl(800,3);
585 1
586 1 print(0x00,"WT"); //在第一行第一位处从左向右打印"WonderTechnology" 字符串
587 1 print(0x40,"RX:");
588 1 print(0x0B,"S:");
589 1
590 1 print(0x4f,"0");
591 1
592 1 while(1)
593 1 {
594 2 if(KEY1==0) //按下第一按键发送“0x55“
595 2 {
596 3 while(!KEY1);
597 3 SCI_TX(0x55);
598 3 ser_up();
599 3 PWM_G1++;
600 3
601 3
602 3 }
603 2 if(KEY2==0) //按下第二按键发送“0xf0“
604 2 {
605 3 while(!KEY2);
606 3 SCI_TX(0xf0);
607 3 ser_down();
608 3 PWM_G1--;
609 3 }
610 2
611 2
612 2
613 2 display_1602_10(0x05,PWM_G1);
C51 COMPILER V9.01 WTCAR 07/02/2012 16:12:39 PAGE 11
614 2
615 2 display_1602_10(0x0D,speed_A);
616 2
617 2 display_1602(0x43,RBuff_date[0]);
618 2 display_1602(0x46,RBuff_date[1]);
619 2 display_1602(0x49,RBuff_date[2]);
620 2
621 2 display_1602(0x4c,sen_inp_IROA());
622 2
623 2
624 2 if(pattern==1)
625 2 {
626 3 switch(R_date[0])
627 3 {
628 4 case 0x44:
629 4 switch(R_date[1])
630 4 {
631 5 case 0x4c:
632 5 switch(R_date[2])
633 5 {
634 6 case 0x31: motor(0,speed_A); break;
635 6 case 0x32: motor(-speed_A,speed_A); break;
636 6 case 0x33: motor(0,-speed_A); break;
637 6 default:
638 6 break;
639 6 }
640 5 break;
641 5
642 5 case 0x44:
643 5 switch(R_date[2])
644 5 {
645 6 case 0x31: motor(speed_A,speed_A); break;
646 6 case 0x32: motor(0,0); break;
647 6 case 0x33: motor(-speed_A,-speed_A); break;
648 6 default:
649 6 break;
650 6 }
651 5 break;
652 5
653 5 case 0x52:
654 5 switch(R_date[2])
655 5 {
656 6 case 0x31: motor(speed_A,0); break;
657 6 case 0x32: motor(speed_A,-speed_A); break;
658 6 case 0x33: motor(-speed_A,0); break;
659 6 default:
660 6 break;
661 6 }
662 5 break;
663 5
664 5 default:
665 5 break;
666 5 }
667 4 break;
668 4
669 4 case 0x46:
670 4 switch(R_date[1])
671 4 {
672 5 case 0x4c:
673 5 switch(R_date[2])
674 5 {
675 6 case 0x31:LED_F_on(); Light_cam=0; break; //控制前车灯
C51 COMPILER V9.01 WTCAR 07/02/2012 16:12:39 PAGE 12
676 6 case 0x32:LED_F_off();Light_cam=1; break;
677 6 case 0x33:Light_B=0; break; //控制车前灯
678 6 case 0x34:Light_B=1; break;
679 6 default:
680 6 break;
681 6 }
682 5 break;
683 5
684 5 case 0x42: //控制蜂鸣器
685 5 switch(R_date[2])
686 5 {
687 6 case 0x31: beed=0; break;
688 6 case 0x30: beed=1; break;
689 6 default:
690 6 break;
691 6 }
692 5 break;
693 5
694 5 case 0x53: //控制激光
695 5 switch(R_date[2])
696 5 {
697 6 case 0x31: Laser_on(); break;
698 6 case 0x30: Laser_off(); break;
699 6 default:
700 6 break;
701 6 }
702 5 break;
703 5
704 5 case 0x50: //控制水泵
705 5 switch(R_date[2])
706 5 {
707 6 case 0x31: break;
708 6 case 0x30: break;
709 6 default:
710 6 break;
711 6 }
712 5 break;
713 5
714 5 default:
715 5 break;
716 5 }
717 4 break;
718 4
719 4
720 4
721 4 default:
722 4 break;
723 4 }
724 3 }
725 2 else if(pattern==2)
726 2 {
727 3 //红外避障传感器
728 3 switch( sen_inp_IROA() )
729 3 {
730 4 case 0x01:
731 4 case 0x03:motor(-100,100);
732 4 beed_ctrl(100,2);
733 4 delay(20);
734 4 break;
735 4
736 4 // case 0x02:motor(-100,-100);delay(20); motor(100,0); break;
737 4
C51 COMPILER V9.01 WTCAR 07/02/2012 16:12:39 PAGE 13
738 4 case 0x04:
739 4 case 0x06:motor(100,-100);
740 4 beed_ctrl(100,2);
741 4 delay(20);
742 4 break;
743 4
744 4 case 0x07:motor(-100,-100);
745 4 beed_ctrl(100,3);
746 4 delay(100);
747 4 motor(-100,100);
748 4 delay(150);
749 4 motor(100,100);
750 4 break;
751 4 default:
752 4 motor(100,100);
753 4 break;
754 4 }
755 3 }
756 2 else
757 2 {
758 3 ;
759 3 }
760 2
761 2 if(pattern!=0)
762 2 {
763 3 switch(R_date[0])
764 3 {
765 4 case 0x53:
766 4 switch(R_date[1])
767 4 {
768 5 case 0x53:
769 5 switch(R_date[2])
770 5 {
771 6 case 0x31: cam_up(); R_date[2]=0; break;
772 6 case 0x32: cam_down(); R_date[2]=0; break;
773 6 case 0x33: cam_left(); R_date[2]=0; break;
774 6 case 0x34: cam_right(); R_date[2]=0; break;
775 6 //增加四个边动方向
776 6 case 0x35: cam_up(); cam_left(); R_date[2]=0; break;
777 6 case 0x36: cam_up(); cam_right(); R_date[2]=0; break;
778 6 case 0x37: cam_down(); cam_left(); R_date[2]=0; break;
779 6 case 0x38: cam_down(); cam_right(); R_date[2]=0; break;
780 6 default:
781 6 break;
782 6 }
783 5 break;
784 5 case 0x4d:
785 5 if(R_date[2]==0x30)
786 5 {
787 6 cam_mid();
788 6 R_date[2]=0;
789 6 }
790 5 if(R_date[2]==0x31)
791 5 {
792 6 setServo();
793 6 beed_ctrl(500,4);
794 6 R_date[2]=0;
795 6 }
796 5 break;
797 5
798 5 default:
799 5
C51 COMPILER V9.01 WTCAR 07/02/2012 16:12:39 PAGE 14
800 5 break;
801 5 }
802 4 break;
803 4 default:
804 4 break;
805 4 }
806 3 }
807 2
808 2 }
809 1 }
810
811
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2775 ----
CONSTANT SIZE = 114 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 54 26
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -