找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6664|回复: 7
打印 上一主题 下一主题
收起左侧

红外避障小车程序框架

  [复制链接]
跳转到指定楼层
楼主
ID:139660 发表于 2016-10-16 20:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
红外避障.rar (795 Bytes, 下载次数: 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;         //发生依次中断需要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. }

复制代码


评分

参与人数 2黑币 +64 收起 理由
zhangyan951017 + 4 很给力!
admin + 60 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:218757 发表于 2017-7-12 13:01 | 只看该作者
真心不错,终于找到了
回复

使用道具 举报

板凳
ID:219418 发表于 2017-7-13 23:41 | 只看该作者
棒,顶你
回复

使用道具 举报

地板
ID:219756 发表于 2017-7-14 20:49 | 只看该作者
红外避障小车程序框架
回复

使用道具 举报

5#
ID:238009 发表于 2017-11-30 11:44 来自手机 | 只看该作者
不错,顶一手
回复

使用道具 举报

6#
ID:236796 发表于 2018-3-20 09:44 | 只看该作者
很棒!
回复

使用道具 举报

7#
ID:292214 发表于 2018-4-30 04:03 | 只看该作者
请问有注释吗
回复

使用道具 举报

8#
ID:319762 发表于 2018-5-12 00:18 | 只看该作者
看起来不错的   学学咯
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表