標(biāo)題: 紅外避障小車程序框架 [打印本頁]

作者: xiaosizhu1995    時(shí)間: 2016-10-16 20:42
標(biāo)題: 紅外避障小車程序框架
紅外避障.rar (795 Bytes, 下載次數(shù): 52)

  1. #include<reg52.h>                                                                                                                                                                                                                                                                                                                                                               #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit IN3=P0^1;                //右輪
  5. sbit IN4=P0^2;                                         
  6. sbit ENB=P0^0;                //使能端A

  7. sbit IN1=P1^1;                //左輪
  8. sbit IN2=P1^2;                                         
  9. sbit ENA=P1^0;                 //使能端B

  10. sbit left_ir=P3^2;
  11. sbit right_ir=P3^3;

  12. uchar t;
  13. uchar speedL,speedR;

  14. void init()
  15. {
  16.         TMOD=0x01;                //8位自動(dòng)重裝
  17.         TH0=(65536-20000)/256;         //發(fā)生依次中斷需要20ms
  18.         TL0=(65536-20000)%256;
  19.         ET0=1;
  20.         EA=1;
  21.         TR0=1;
  22. }

  23. void forward(uchar speed1,uchar speed2)                 //左右輪都正轉(zhuǎn)==前進(jìn)                        //speed>=0&&speed<=100; time=speed*200us
  24. {
  25.         speedL=speed1;
  26.         ENA=1;
  27.         IN1=0;
  28.         IN2=1;

  29.         speedR=speed2;
  30.         ENB=1;
  31.         IN3=1;
  32.         IN4=0;               
  33. }

  34. void backward(uchar speed3,uchar speed4)                   //左右輪都反轉(zhuǎn)==后退
  35. {
  36.         speedL=speed3;
  37.         ENA=1;
  38.         IN1=1;
  39.         IN2=0;

  40.         speedR=speed4;                          
  41.         ENB=1;
  42.         IN3=0;
  43.         IN4=1;
  44. }

  45. void turn_right(uchar speed5,uchar speed6)           //右轉(zhuǎn)
  46. {
  47.         speedL=speed5;
  48.         ENA=1;
  49.         IN1=0;                                //左輪正轉(zhuǎn)
  50.         IN2=1;

  51.         speedR=speed6;                        //右輪反轉(zhuǎn)
  52.         ENB=1;
  53.         IN3=0;
  54.         IN4=1;
  55. }

  56. void turn_left(uchar speed7,uchar speed8) //左轉(zhuǎn)
  57. {
  58.         speedL=speed7;            //左輪反轉(zhuǎn)
  59.         ENA=1;
  60.         IN1=1;
  61.         IN2=0;

  62.         speedR=speed8;                //右輪正轉(zhuǎn)
  63.         ENB=1;
  64.         IN3=1;
  65.         IN4=0;               
  66. }


  67. void main()
  68. {
  69.         init();
  70.         while(1)
  71.         {
  72.                 if(left_ir==0&&right_ir==0)
  73.                 {
  74.                         backward(30,50);
  75.                 }
  76.                 else if(left_ir==0)
  77.                 {
  78.                         turn_right(30,30);
  79.                 }        
  80.                 else if(right_ir==0)
  81.                 {
  82.                         turn_left(30,30);
  83.                 }
  84.                 else
  85.                 {
  86.                         forward(30,30);
  87.                 }
  88.         }

  89. }

  90. void Timer0() interrupt 1
  91. {
  92.         if(ENA==1)
  93.         {
  94.                 TH0=(65536-speedL)/256;
  95.                 TL0=(65536-speedL)%256;
  96.                 ENA=0;
  97.         }
  98.         if(ENB==1)
  99.         {
  100.                 TH0=(65536-speedR)/256;
  101.                 TL0=(65536-speedR)%256;
  102.                 ENB=0;
  103.         }
  104.         if(ENA==0)
  105.         {
  106.                 TH0=(65536-20000+speedL)/256;
  107.                 TL0=(65536-20000+speedL)%256;
  108.                 ENA=1;
  109.         }
  110.         if(ENB==0)
  111.         {
  112.                 TH0=(65536-20000+speedR)/256;
  113.                 TL0=(65536-20000+speedR)%256;
  114.                 ENB=1;
  115.         }
  116. }

復(fù)制代碼



作者: eason丶    時(shí)間: 2017-7-12 13:01
真心不錯(cuò),終于找到了
作者: HJHJH    時(shí)間: 2017-7-13 23:41
棒,頂你
作者: lvyanf    時(shí)間: 2017-7-14 20:49
紅外避障小車程序框架
作者: 仰望天空的豬    時(shí)間: 2017-11-30 11:44
不錯(cuò),頂一手
作者: 龍川江    時(shí)間: 2018-3-20 09:44
很棒!
作者: mydpj    時(shí)間: 2018-4-30 04:03
請(qǐng)問有注釋嗎
作者: 黑人盤子    時(shí)間: 2018-5-12 00:18
看起來不錯(cuò)的   學(xué)學(xué)咯




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1