找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 7202|回復: 7
收起左側

紅外避障小車程序框架

  [復制鏈接]
ID:139660 發(fā)表于 2016-10-16 20:42 | 顯示全部樓層 |閱讀模式
紅外避障.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位自動重裝
  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)                 //左右輪都正轉==前進                        //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)                   //左右輪都反轉==后退
  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)           //右轉
  46. {
  47.         speedL=speed5;
  48.         ENA=1;
  49.         IN1=0;                                //左輪正轉
  50.         IN2=1;

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

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

  62.         speedR=speed8;                //右輪正轉
  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. }

復制代碼


評分

參與人數(shù) 2黑幣 +64 收起 理由
zhangyan951017 + 4 很給力!
admin + 60 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:218757 發(fā)表于 2017-7-12 13:01 | 顯示全部樓層
真心不錯,終于找到了
回復

使用道具 舉報

ID:219418 發(fā)表于 2017-7-13 23:41 | 顯示全部樓層
棒,頂你
回復

使用道具 舉報

ID:219756 發(fā)表于 2017-7-14 20:49 | 顯示全部樓層
紅外避障小車程序框架
回復

使用道具 舉報

ID:238009 發(fā)表于 2017-11-30 11:44 來自觸屏版 | 顯示全部樓層
不錯,頂一手
回復

使用道具 舉報

ID:236796 發(fā)表于 2018-3-20 09:44 | 顯示全部樓層
很棒!
回復

使用道具 舉報

ID:292214 發(fā)表于 2018-4-30 04:03 | 顯示全部樓層
請問有注釋嗎
回復

使用道具 舉報

ID:319762 發(fā)表于 2018-5-12 00:18 | 顯示全部樓層
看起來不錯的   學學咯
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表