找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机智能小车超声波测距,超声波避障,红外循迹资料+程序

[复制链接]
跳转到指定楼层
楼主
内容包含智能小车相关应用程序,
电路原理图如下:


单片机源程序如下:
  1. #include<reg52.h>
  2. #include<math.h>
  3. #include<intrins.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. uchar Buffer =0;      //从串口接收的数据
  7. uint URTAReceivedCount=0,n=1;
  8. uchar data Tempdatatable[5],CommandDatatable[5];//数据包


  9. uchar serVal[2];
  10. uint pwm[]={1382,1382,1382,1382,1382,1382,1382,1382}; //初始90度,(实际是1382.4,取整得1382)
  11. uchar pwm_flag=0;
  12. uchar  Robots_Run_Status;
  13. uint code ms0_5Con=461; //0.5ms计数
  14. uint code ms2_5Con=2304; //2.5ms计数


  15. bit key_stime_ok;
  16. sbit StatusLight=P2^0; //状态灯
  17. sbit MainLight=P2^1; //主大灯
  18. sbit Input_Detect_LEFT=P2^3;          //右侧探头
  19. sbit Input_Detect_RIGHT=P2^4;         //左侧探头
  20. sbit Input_Detect0=P2^2;          //右侧探头
  21. sbit Input_Detect1=P2^5;         //左侧探测
  22. sbit servo0=P2^6;  //舵机控制
  23. sbit servo1=P2^7;
  24. /********************************************************************
  25. * 名称 : Delay_1ms()
  26. * 功能 : 延时子程序,延时时间为 1ms * x
  27. * 输入 : x (延时一毫秒的个数)
  28. * 输出 : 无
  29. ***********************************************************************/
  30. void Delay_1ms(uint i)//1ms延时
  31. {
  32. uchar x,j;
  33. for(j=0;j<i;j++)
  34. for(x=0;x<=148;x++);
  35. }

  36. void TurnOnStatusLight()
  37. {   
  38.    StatusLight=0;
  39. }
  40. /********************************************************************
  41. * 名称 : Send_Data()
  42. * 功能 : 向上位机传送字符
  43. * 输入 : 无
  44. * 输出 : 无
  45. ***********************************************************************/
  46. void Send_Data(uchar type,uchar cmd,uchar dat)
  47. {
  48.    uchar data Buffer[5];//构建数据包
  49.    uchar *p;
  50.    uint Send_Count=0;
  51.    p = Buffer;
  52.    Buffer[0]=0XFF;
  53.    Buffer[1]=type;
  54.    Buffer[2]=cmd;
  55.    Buffer[3]=dat;
  56.    Buffer[4]=0XFF;     
  57.   while(1)
  58.      {
  59.       if(*p==0XFF)
  60.         {
  61.          Send_Count++;  //0XFF标志统计位
  62.         }
  63.       SBUF = *p;  //发送
  64.       while(!TI)  //如果发送完毕,硬件会置位TI,等待发送完毕
  65.            {
  66.              _nop_();
  67.            }
  68.       p++;
  69.       TI = 0;
  70.       if(Send_Count == 2)  //当统计到两次出现0XFF,则认为一个数据包发送完毕,跳出循环
  71.         {
  72.          TI = 0;
  73.          break;
  74.         }  
  75.      }
  76. }
复制代码

声波测距,超声波避障,红外循迹,红外避障等,希望大家互相学习交流

全部资料51hei下载地址:
智能小车相关资料.rar (5.2 MB, 下载次数: 109)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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