51单片机小项目--超声波避障小车
超声波模块
电路连接
超声波HCSR04模块有四个引脚,VCC,GND,TRIG和ECHO。
VCC接5V即可。
TRIG引脚负责发射超声波信号的信号引脚。这个引脚需要用超过10us的高电平来启动,所以写了一个20us的函数。每一点HCSR04会发射8个40khz的方波。方波发射后,ECHO引脚会输出高电平。
ECHO引脚是用来测量距离的数据引脚。当一个超声波信号发射后,ECHO引脚会输出高电平。当ECHO引脚直到检测到超声波信号回来的时,ECHO引脚输出低电平。
//以定时器0和定时器1为例
#define uint unsigned int
uint PWM=0; //定义PWM值,控制电机转速
unit pwm=0;sbit IN11 = P1^0; //定义逻辑口
sbit IN21 = P1^1; sbit IN31 = P1^2;
sbit IN41 = P1^3;sbit a1=P2^1; //定义驱动使能口a1
sbit b1=P2^32 //定义驱动使能口b1sbit RX=P1^6;//定义超声波接收端Echo
sbit TX=P1^7;//定义超声波控制端Triguint i=0,j=0;void Time() //定时器0和1初始函数
{ TMOD |= 0x11; //设置定时器0方式为1 定时器1为方式1
// TMOD |= Ox01; //设置定时器0方式为1EA=1; //打开总中断TH0 = 0xfc; //设置定时器处置为高四位,定时1msTL0 = 0x18; //设置定时器设置为低四位ET0 = 1; //打开定时器0中断允许TR0 = 1; //打开定时器0TH1 = 0xfc; //设置定时器处置为高四位,定时1msTL1 = 0x18; //设置定时器设置为低四位ET1 = 1; //打开定时器1中断允许TR1 = 1; //打开定时器1}void Timer0() interrupt 1
{TH0=0xfc; TL0=0x18; if(i>PWM)a1=1;else a1=0; i++;if(i>=100)i=0;
}
void Timer1() interrupt 3
{TH1=0xfc; TL1=0x18; if(j>pwm)b1=1;else b1=0; j++;if(j>=100)j=0;
}void delay_20us() //超声波延时20微秒
{TX=1; _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();TX=0;
}void forward_move() //电机正转函数,速度50,最大速度100
{PWM = 50;pwm = 50;IN11 = 0; IN21 = 1; IN31 = 0; IN41 = 1;
}void stop() //电机停止
{PWM = 0;pwm = 0;IN11 = 0; IN21 = 0; IN31 = 0; IN41 = 0;
}void count_distence() //定义超声波测距函数
{time=TH0*256+TL0;TH0=0;TL0=0;//s = 340m/s * time us /2 = 170*time *10^-6 m = 0.17*time mmS= (long)(time*0.17); if(S<100){stop();}if(S>=100){forward_move(); }
}void main()
{Timer();while(1){delay_20us();while(!RX);//等待TX发出TR0=1; //开始计时while(RX); //当TX发出时,RX为高电平TR0=0; //终止计时count_distence();}
}
51单片机小项目--超声波避障小车相关推荐
- 利用52单片机制作的超声波避障小车(包含所有源码)
做这个超声波避障小车的原因是因为单片机课程设计 一.硬件部分 1.电机驱动 电机驱动四个输入端IN1.IN2.IN3和IN4,四个输出端OUT1.OUT2.OUT3和OUT4,一个接地端GND,单片机 ...
- 51单片机小项目--红外巡线小车
这次项目要求我们使用51单片机,实现红外循迹,超声波避障的功能. 我将这个几个实现的任务一步步分解开来,首先要然小车动起来,需要模块是需要电机和定时器,我们那时候用到小黄电机,驱动是用的L298N.然 ...
- 基于51单片机的红外自动避障小车(lunwen+任务书+开题+文献综述+翻译及原文+避障程序)
目 录 1 绪论 1 1.1 课题研究背景及意义 1 1.2 国内外研究现状 1 1.2.1国外智能车辆研究现状 2 1.2.2发展前景 3 1.3 课题主要研究内容 4 2 工作原理及总体设计 5 ...
- 基于51单片机的超声波避障小车设计(含Proteus仿真)
超声波避障程序随处可见,基于51单片机的超声波避障小车也很成熟,但是完整的Proteus仿真并不容易找到开源资料. 这次主要给大家分享其Proteus仿真部分. 涉及到的模块有:超声波模块(hc-sr ...
- stm32捕获占空比_基于STM32超声波避障小车
不管是对于初学者还是对于一个玩过单片机的电子爱好者来说,或多或少都接触到过小车项目,今天给大家介绍的的一个项目基于STM32超声波避障小车.这也是我曾经的一个课设,在此开源分享给大家,全文5000多字 ...
- c语言超声波壁障源码,超声波避障小车源程序【精】
电子制作空间收集的这套入门级小车(只是入门级的,仅供参考)希望诸位入门智能车的吧友有所帮助.可以实现避障.寻迹.测距.寻找静态物体.做这个项目的经验,可分为四步. 第1步:根据实际情况确定智能小车所需 ...
- STM32F103RCT6 实验代码之舵机+超声波避障小车(一)杂谈+电机+L298N
STM32 舵机+超声波避障 一.直流电机 二.L298N模块 寒假由于时间较长,自己就想做一个智能车玩玩,第一个做的是蓝牙小车,不过比较简单,我就不打算具体另开一个部分,到时候挑一些与避障小车不一样 ...
- 基于STM32三路超声波避障小车
基于STM32的避障小车 最近几天的学习了STM32输入捕获输入捕获的相关知识,为了巩固自己学习的知识特意制作一辆有三个超声波组成的4轮避障小车来加深对输入捕获的理解. 1.输入捕获简介 输入捕获模式 ...
- STM32F103RCT6 实验代码之舵机+超声波避障小车(三)蓝牙遥控
STM32 蓝牙遥控 一.蓝牙简述 二.蓝牙遥控 一.蓝牙简述 我这次把小车的坑补上,这是小车的最后一个部分,蓝牙遥控.这个部分重点在于蓝牙,其实蓝牙可以相当于一个串口,用串口通信就可以进行手机与单片 ...
最新文章
- 如皋技校计算机老师,如皋中专计算机考试名列南通第一 共2457人参考合格率达95.5%...
- Forrester发表2010年度MSS市场分析报告
- 【网络安全】xhCMS代码审计思路
- java web开发技术大_2021年六大javaweb开发主流技术
- mysql正在加载_mysql 数据库基本操作
- shopex安装Zend Optimizer - 3.3.0后依然乱码
- Spring Boot Test 进行JPA 测试保存数据到数据库
- 富文本支持粘贴excel表格_Anki插件-OneNote importer(富文本批量导入)
- springboot map数据类型注入_Spring Boot(五):春眠不觉晓,Mybatis知多少
- 小苹果 html,定时轮播.html
- android studio没有logcat窗口_区块链研究实验室|从Android调用区块链智能合约
- EGE基础:鼠标消息篇
- 5.2 Photoshop复制图层的几种方式 [原创Ps教程]
- USB Host、USB Device和USB otg的理论简析
- cc2530dma控制器功能_dma控制器是什么_dma控制器工作方式
- KMPlayer播放mkv视频不出声音的解决办法
- 初步了解PS“时间轴”
- 餐饮行业裂变解决方案
- Jquery之瀑布流
- 【Python】获取数组中非零元素