51单片机程序超声波模块避障
单片机课程设计——超声波避障小车

课程设计说明书(论文)设计题目:超声波避障小车院系:学院班级:设计者:学号:指导教师:设计时间:8.27~9.10课程设计任务书开题报告绪论课题目的通过上学期单片机课程的学习,我们基本掌握了51单片机的基本使用方法,本学期开学初,单片机课程设计给了我们更大的挑战,课题的目的有以下几点。
●进一步熟练掌握单片机的使用方法、提高程序的编写能力●掌握单片机系统外扩器件的连接与使用●提高器件说明书以及时序过程的阅读、理解能力●掌握软件和硬件调试的基本技巧与方法项目研究背景及意义在当今社会,汽车成为了越来越普遍,人们不可缺少的交通工具。
但汽车的不断增加,随之而来就是越来越多的交通事故。
交通事故成为了现在越来越严重的安全隐患。
所以随着汽车工业的快速发展,我们必须加强对汽车安全性能的考虑。
所以,智能汽车概念应运而生,他既是汽车产业的机遇也是汽车产业的挑战。
汽车的智能化必将是未来汽车产业发展的趋势,在这样的背景下,我们开展了基于超声波的智能小车的避障研究。
超声波作为智能车避障的一种重要手段,以其避障实现方便,计算简单,易于做到实时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。
我国作为一个世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车产业发展必然的,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。
设计要求采用超声波模块实现小车避障功能,实现小车自动避障任务。
1主要设计内容及方案总体方案设计系统采用51单片机作为核心控制单元用于智能车系统的控制,在超声波检测到障碍物之后,主控芯片根据距离值控制直流电机的转动,在与障碍物距离较大的情况下,快速前进,在与障碍物距离较小但还未到达临界转弯方向值的时候,慢速前进。
在与障碍物距离很近需要转向避障时,方案上将尝试进行转向,来进行避障。
系统总体的设计方框图如图2-1所示。
基于51单片机的超声波避障智能车

置为 0-180 度,呈线性变化,即舵机控制是需要周期七 20ms 的方波信号,改变脉冲占空比, 即可改变转动角度。
3.4 超声波 超声波测距是借助于超声脉冲回波渡越时间法来实现的。 设超声波脉冲由传感器发出到接收 所经历的时间为 t,超声波在空气中的传播速度为 c,则从传感器到目标物体的距离 D 可用 下式求出: D = ct /2 单 片 机 系 统 超声波发射
控制电路板接受来自信号线的控制信号,控制电机转动,电机带动一系列齿 轮组,减速后传动至输出舵盘。舵机的输出轴和位置反馈电位计是相连的,舵盘 转动的同时,带动位置反馈电位计,电位计将输出一个电压信号到控制电路板, 进行反馈,然后控制电路板根据所在位置决定电机转动的方向和速度,从而达到 目标停止。其工作流程为:控制信号→控制电路板→电机转动→齿轮组减速→舵 盘转动→位置反馈电位计→控制电路板反馈。 舵机的控制信号周期为 20ms 的脉冲调制信号,其中脉冲宽度从 0.5-2.5ms 相对应得舵盘位
3.2 晶振
每个单片机系统都有晶振,全称叫做晶体振荡器,在单片机力作用非常大,他结合单片机内 部的电路, 产生单片机所需的时钟频率, 单片机的一切指令都是建立在晶振频率的基础上的, 晶振提供的频率越高, 则单片机运行的速度越快、 晶振用一种能把一种电能和机械能相互转 化的晶体共振状态下工作,已提供稳定精确的单品震荡。通常情况下,普通的晶振频率绝对 精度可以达到万分之五十。 晶振的作用为系统提供基本的时钟信号, 通常一个系统共用一个晶振, 以便各个部分被保持 同步。
L298N 电路如图所示
程序:
#include <reg52.h> #include <math.h> #define uchar unsigned char #define uint unsigned int sbit TRIG = P0^0 ; sbit ECHO = P0^1 ; sbit pwm = P0^2; sbit in1 = P1^0; sbit in2 = P1^1; sbit in3 = P1^2; sbit in4 = P1^3;
基于AT89S51单片机的智能超声波避障小车

自动寻物小车目录摘要 (3)一、总体方案概述 (3)二、总体电路原理图 (3)三、各模块功能介绍 (4)(一)、超声波测距模块 (4)(二)、数码管显示模块 (4)(三)、直流电机控制模块 (6)(四)、语音提示模块 (7)(五)、速度自控模块 (8)(六)、信号提示模块 (8)(七)、单片机控制模块 (8)四、系统软件设计 (9)五、元件清单 (10)六、应用前景 (10)六、参考文献 (11)摘要:现今发达的交通在给人们带来便捷的同时也带来了许多的交通事故。
发生交通事故的因素有很多。
当然,如果我们的汽车能够更加智能,就是说事先能预测并显示前面障碍物离车的距离,当障碍物距离很近时汽车会自动采取一些措施避开障碍物,这样就能够在很大程度上避免这些事故的发生。
在本论文中,我们将会看到能够实现这一功能的智能小车。
关键字:超声波、测量、避障、单片机、语音一、总体方案概述本小车使用一台AT89S51单片机作为主控芯片,它通过超声波测距来获取小车距离障碍物的距离,并且用数码管实时的显示出来,在小车与障碍物的距离小于安全距离(用软件设定)时,小车会发出“在距您车前方x(数码显示的实时距离)米的地方有一障碍物,请您注意避让”的语音提示,并且拐弯,以避开障碍物,同时会点亮相应侧边的发光二极管作为提示信号。
在避开障碍物后,小车会沿直线前进。
本系统设计的简易智能小车分为几个模块:单片机控制系统、超声波路面检测系统、前进、转弯控制电机以及方向指示灯系统。
它们之间的相互关系如下图1所示。
图1:智能小车简要原理框架图.二、总体电路原理图三、各模块功能介绍(一)、超声波测距模块首先利用单片机输出一个40kHz 的触发信号,把触发信号通过TRIG 管脚输入到超声波测距模块,再由超声波测距模块的发射器向某一方向发射超声波,在发射时刻的同时单片机通过软件开始计时,超声波在空气中传播,途中碰到障碍物返回,超声波测距模块的接收器收到反射波后通过产生一个回应信号并通过ECHO 脚反馈给单片机,此时单片机就立即停止计时。
超声波避障小车程序设计

////5路超声波避障实验:51单片机 + HC-SR04超声波 ////include <AT89x52.H> //器件配置文件include <intrins.h> define RX1 P3_6//小车左侧超声波HC-SR04接收端define TX1 P1_7 //发送端define RX2 P3_3 //左前方超声波define TX2 P0_2define RX3 P2_4 //正前方超声波define TX3 P2_5define RX4 P3_5 //右前方超声波define TX4 P3_4define RX5 P3_7 //右侧超声波define TX5 P1_6define Left_moto_pwm P1_5 //PWM信号端define Right_moto_pwm P1_4 //PWM信号端//定义小车驱动模块输入IO口sbit IN1=P1^0;sbit IN2=P1^1;sbit IN3=P1^2;sbit IN4=P1^3;sbit EN1=P1^4;sbit EN2=P1^5;bit Right_moto_stop=1;bit Left_moto_stop =1;define Left_moto_go {IN1=0,IN2=1,EN1=1;} //左电机向前走define Left_moto_back {IN1=1,IN2=0,EN1=1;} //左边电机向后走define Left_moto_Stop {EN1=0;} //左边电机停转define Right_moto_go {IN3=1,IN4=0,EN2=1;} //右边电机向前走define Right_moto_back {IN3=0,IN4=1,EN2=1;} //右边电机向后走define Right_moto_Stop {EN2=0;} //右边电机停转unsigned char pwm_val_left =0;//变量定义unsigned char push_val_left =0;// 左电机占空比N/20unsigned char pwm_val_right =0;unsigned char push_val_right=0;// 右电机占空比N/20unsigned int time=0;unsigned int timer=0;unsigned long S1=0;unsigned long S2=0;unsigned long S3=0;unsigned long S4=0;unsigned long S5=0;void delay_1msunsigned char x //1ms延时函数,100ms以内可用 { unsigned char i; whilex-- fori=124;i>0;i--; } //void Count1 //计算左侧超声波距离的函数{ whileRX1; //当RX1为零时等待TR0=1; //开启计数whileRX1; //当RX1为1计数并等待TR0=0; //关闭计数time=TH0256+TL0;TH0=0;TL0=0;S1=time1.7/100; //算出来是CM }void Count2 //计算函数{ whileRX2; //当RX2为零时等待TR0=1; //开启计数whileRX2; //当RX2为1计数并等待TR0=0; //关闭计数time=TH0256+TL0;TH0=0;TL0=0;S2=time1.7/100; //算出来是CM }void Count3 //计算函数{ whileRX3; //当RX3为零时等待TR0=1; //开启计数whileRX3; //当RX3为1计数并等待TR0=0; //关闭计数time=TH0256+TL0;TH0=0;TL0=0;S3=time1.7/100; //算出来是CM }void Count4 //计算函数{ whileRX4; //当RX4为零时等待TR0=1; //开启计数whileRX4; //当RX4为1计数并等待TR0=0; //关闭计数time=TH0256+TL0;TH0=0;TL0=0;S4=time1.7/100; //算出来是CM }void Count5 //计算函数{whileRX5; //当RX5为零时等待TR0=1; //开启计数whileRX5; //当RX5为1计数并等待TR0=0; //关闭计数time=TH0256+TL0;TH0=0;TL0=0;S5=time1.7/100; //算出来是CMvoid leftrunvoid {push_val_left=20;push_val_right=20;Left_moto_back //左电机往后走 Right_moto_go //右电机往前走 }// //右转void rightrunvoid{push_val_left=20;push_val_right=20;Left_moto_go //左电机往前走 Right_moto_back //右电机往后走 }// //停止void stoprunvoid{Left_moto_Stop //左电机停 Right_moto_Stop //右电机停 }// / PWM调制电机转速 / /// 左电机调速 / /调节push_val_left的值改变电机转速,占空比 /void pwm_out_left_motovoid{ifLeft_moto_stop{ ifpwm_val_left<=push_val_left{ Left_moto_pwm=1; }else { Left_moto_pwm=0; }ifpwm_val_left>=20pwm_val_left=0;}else { Left_moto_pwm=0; } }// / 右电机调速 /void pwm_out_right_motovoid{ ifRight_moto_stop{ ifpwm_val_right<=push_val_right{ Right_moto_pwm=1;}else { Right_moto_pwm=0; }ifpwm_val_right>=20 pwm_val_right=0; }else { Right_moto_pwm=0; } }//void timer0 interrupt 1 //T0中断 { }// ///TIMER1中断服务子函数产生PWM信号/void timer1interrupt 3{ TH1=65536-1000/256; //1ms定时 TL1=65536-1000%256;timer++;pwm_val_left++;pwm_val_right++;pwm_out_left_moto;pwm_out_right_moto; }/ /void mainvoid{TMOD=0x11; //设T0为方式1,GATE=1;TH0=0;TL0=0;TH1=65536-1000/256; //1ms定时TL1=65536-1000%256;ET0=1; //允许T0中断ET1=1; //允许T1中断TR1=1; //开启定时器EA=1; //开启总中断while1 {TX1=1; //开启超声波1探测delay_1ms1;TX1=0;Count1; //测距TX2=1;delay_1ms1;TX2=0;Count2;TX3=1;delay_1ms1;TX3=0;Count3;TX4=1;delay_1ms1;TX4=0;Count4;TX5=1;delay_1ms1;TX5=0;Count5;ifS3<20 && S1<20 && S5<20 //进入狭窄通道{ backrun; //倒车delay_1ms100;}else ifS3<20 && S1<S5 //车子与障碍物90度垂直,左边距离小右转{ rightrun; }else ifS3<20 && S5<S1 //车子与障碍物90度垂直,右边距离小左转 { leftrun; } else ifS2<20{ rightrun; //车与障碍物呈45度角时,车的左边比车的右边距离小,右转 } else ifS4<20{ leftrun; //车与障碍物呈45度角时,车的右边比车的左边距离小,左转 }else { run; } } }。
基于51单片机的超声波避障小车设计-毕业论文

基于51单片机的超声波避障小车设计-毕业论文内蒙古科技大学本科生毕业设计说明书(毕业论文)题目:基于单片机的超声波避障小车设计学生姓名:祝伟泰学号:1267112115 专业:测控技术与仪器班级:测控2012-1指导教师:燕芳副教授内蒙古科技大学毕业设计说明书(毕业论文)基于单片机的超声波避障小车设计摘要随着科学技术的飞速发展,人们对智能汽车的研究有增无已,智能车已然成为以后科学技术发展的新思路和新方向。
智能车可以按照预先设定的模式在一个环境里自动的运作,不需要人为的操控,可应用于路面检测,科学勘探,智能温度测量等。
本设计中制作的智能小车(又称轮式机器人)是本人在综合应用了本科所学的专业知识后设计出的一台智能小车,它具有超声波测距,自动避障,同步测速等功能。
虽然超声波避障小车只是智能车领域中的冰山一角,但是它却也是智能车中一个典型的代表。
麻雀虽小五脏俱全,本次设计的超声波避障小车,用STC15单片机作为核心控制器,设计出一种可以自动避障,并能同步实现速度和距离的测量以及显示的智能小车。
避障和测距通过超声波测距模块实现,并加入光电码盘测速模块从而实现测速功能,小车驱动由L298N驱动电路完成,数据的显示用LCD1602实现。
关键词:STC15单片机;超声波;避障;测速I内蒙古科技大学毕业设计说明书(毕业论文)Ultrasonic obstacle avoidance car design basedon Micro Computer UnitAbstractWith the development of science and technology, People have increased the research of smart car.Smart car has become the new way of thinking and a new direction for after the development of science and technology . Smart cars can be according to the preset mode automatically in an environment of operation, without the need of human control, can be applied to road testing, scientific exploration, intelligent temperature measurement, etc.This paper discusses the intelligent car (also known as wheeled robot) is I after summarized the major undergraduate course design a smart car, it has the ultrasonic distance measurement, automatic obstacle avoidance, synchronous speed, and other functions. Although ultrasonic obstacle avoidance car is just the tip of the iceberg in the field of smart car, but it is also a typical representative in intelligent vehicles. The sparrow is small all-sided, the design of ultrasonic obstacle avoidance car, use STC51 single-chip microcomputer as the core controller, design a kind of can automatic obstacleavoidance, and can realize the speed and distance measurement simultaneously and the smart car show. Obstacle avoidance and the distance by ultrasonic ranging module, and add light code disc speed measuring module and function of speed of the car drive by L298N drive circuit is completed, through LCD1602 display of measured data.Keywords: STC15;Ultrasonic sensors; avoidance; speedII内蒙古科技大学毕业设计说明书(毕业论文)目录摘要 (I)Abstract (II)1.1课题研究背景和意义 (1)1.2智能汽车的发展概述 (1)1.3 课题研究技术要求与主要内容 ....................................... 2 第二章总体方案设计 (4)2.1总体方案设计 (4)2.1.1具体设计思路 .................................................52.2系统各模块的设计方案 (6)2.2.1控制核心模块的选择方案论证 ...................................62.2.2主电路板的方案论证 ...........................................67 2.2.3测距避障传感器的方案论证 .....................................2.2.4 测速模块的选择方案论证 ......................................89 2.2.5电机驱动选择方案论证 .........................................2.2.6 显示装置的选型方案论证 ......................................92.3 本章小结 ........................................................11 第三章硬件电路设计 (11)3.1 STC15单片机简介 .................................................123.1.1 引脚说明 ...................................................123.1.2 特别管脚说明 ...............................................133.1.3 中断说明 ...................................................133.2 时钟电路和复位电路 (14)3.3电源电路部分 .....................................................143.4超声波传感器 .....................................................143.4.1 超声波测距的物理性质 .......................................153.4.2 超声波测距的原理 ...........................................153.4.3超声波测距过程分析 ..........................................163.5 电机驱动电路 ....................................................17III内蒙古科技大学毕业设计说明书(毕业论文)3.5.1 电机驱动电路分析 ...........................................183.5.2 PWMD调速分析 ...............................................193.6 LCD1602显示电路设计 .............................................193.6.1 LCD1602显示 ................................................193.6.2 LCD1602引脚功能说明 ........................................203.6.3 1602LCD的指令说明及时序: (20)3.7 光电测速模块 (22)3.8 报警电路设计 ..................................................... 23 第四章软件设计部分 (24)4.1 主程序的设计 (24)4.2 超声波测距程序设计 (25)4.3 避障程序设计 (26)4.4 PWM程序设计 .....................................................2728 4.5 显示子程序设计 ...................................................4.7 报警程序设计 (29)系统调试 .........................................................30 第五章5.1概述 .............................................................305.2 各模块的调试 (30)5.2.1 LCD的调试 ..................................................305.2.2光电码盘调试 ................................................315.2.3 蜂鸣器报警调试 .............................................315.2.4 电机及驱动调试 .............................................325.2.5 超声波模块调试 .............................................32 总结 .................................................................... 33 参考文献 (34)附录A 实物图 ............................................................ 36 附录B 源程序 (37)致谢 ....................................................................38IV内蒙古科技大学毕业设计说明书(毕业论文)第一章绪论1.1课题研究背景和意义随着21世纪的到来科学技术的发展步入了一个高速发展的阶段,智能化也普及了各个领域。
51单片机小车循迹避障原理

51单片机小车循迹避障原理
51单片机小车循迹避障的原理主要包括以下步骤:
1. 传感器检测:小车通过安装的传感器检测路径和障碍物。
寻迹传感器利用黑色对光线的反射率小这个特点,当检测到黑线时,传感器上的开关指示灯会熄灭,输出的是高电平。
如果没有经过黑线,一直保持低电平。
红外传感器在有障碍物时灯会亮,所以有障碍物代表低电平,没有障碍物高电平。
2. 信息处理:51单片机接收并处理传感器的信号。
根据传感器的信号,单片机判断出小车是否偏离了预定路径,或者前方是否有障碍物。
3. 电机控制:根据信息处理的结果,单片机控制电机转动。
例如,如果检测到小车偏离了预定路径,单片机将发送信号使电机转动,使小车回到正确的路径上。
如果检测到前方有障碍物,单片机将发送信号使电机停止转动,避免小车撞到障碍物。
4. 循环检测:小车在行进过程中不断重复上述步骤,确保能够持续地沿着预定路径行进并避开障碍物。
这就是51单片机小车循迹避障的基本原理。
实际的实现可能会更复杂,可能需要更多的传感器和控制逻辑来确保小车的稳定和安全运行。
基于51单片机超声波测距报警系统课程设计

基于51单片机超声波测距报警系统课程设计一、引言超声波测距技术是一种常见的非接触式测距技术,具有测距范围广、精度高等优点。
在日常生活中,超声波测距技术被广泛应用于车辆倒车雷达、智能家居中的人体感应等领域。
本文将介绍基于51单片机的超声波测距报警系统的课程设计。
二、设计思路本课程设计主要分为硬件设计和软件设计两部分。
硬件部分主要包括超声波模块、LCD显示屏、蜂鸣器等模块的连接和电路设计;软件部分主要包括51单片机程序设计及LCD显示程序编写。
三、硬件设计1. 超声波模块连接超声波模块是实现测距功能的核心部件。
在本课程设计中,我们采用HC-SR04型号的超声波模块。
该模块需要连接到51单片机上,具体连接方式如下:- 将VCC引脚连接到51单片机上的5V电源;- 将GND引脚连接到51单片机上的GND;- 将Trig引脚连接到P2.0口;- 将Echo引脚连接到P2.1口。
2. LCD显示屏连接LCD显示屏用于显示测距结果和报警信息。
在本课程设计中,我们采用1602型号的LCD显示屏。
该模块需要连接到51单片机上,具体连接方式如下:- 将VSS引脚连接到51单片机上的GND;- 将VDD引脚连接到51单片机上的5V电源;- 将VO引脚连接到一个10K电位器,再将电位器两端分别接到GND 和5V电源;- 将RS引脚连接到P1.0口;- 将RW引脚连接到P1.1口;- 将EN引脚连接到P1.2口;- 将D4-D7引脚分别连接到P0口的高四位。
3. 蜂鸣器连接蜂鸣器用于报警。
在本课程设计中,我们采用被动式蜂鸣器。
该模块需要连接到51单片机上,具体连接方式如下:- 将正极引脚(一般为长针)连接到51单片机上的P3.7口;- 将负极引脚(一般为短针)连接到51单片机上的GND。
四、软件设计1. 51单片机程序设计在本课程设计中,我们采用Keil C51作为编程工具,使用C语言编写程序。
主要程序流程如下:- 定义超声波模块的Trig和Echo引脚;- 定义LCD显示屏的RS、RW、EN和D4-D7引脚;- 定义蜂鸣器的引脚;- 定义变量存储测距结果和报警状态;- 初始化LCD显示屏、超声波模块等模块;- 循环执行以下操作:- 发送超声波信号并计算回波时间,从而得到距离值;- 根据距离值判断是否需要报警,并控制蜂鸣器发出报警声音;- 将测距结果和报警状态显示在LCD显示屏上。
基于51单片机的超声波智能避障小车论文

基于51单片机的超声波智能避障小车所在院系:电气与控制工程学院作者:2015.7.7论文题目:基于51单片机的超声波智能避障小车专业:微电子学1201学生:指导老师:刘晓荣柴钰王健摘要随着国内外智能小车的迅速发展,我们在本次课设中进行了超声波智能避障小车的设计,超声波避障小车主要是运用超声波测距进行数据传输,最后通过单片机控制电机进行避障,这次小车设计的意义在于探索智能小车的设计理念及设计方法,有些生活中的实际问题便是由于人的反应时间过长所引起,而智能车实现了自动应急,为生命保障做最后一道壁垒。
关键词:智能小车,单片机,超声波,测距,避障1绪论二十一世纪是计算机技术、科学技术和汽车工业迅猛发展的时代,在此大环境下,汽车与电子信息产业逐渐的一体化,向电子化、多媒体化和智能化方向发展,智能超声波避障小车则是其中的代表,它的研究及应用无疑成为关注的焦点。
1.1概述本小车使用一台STC89C52单片机作为主控芯片,它通过超声波测距来获取小车距离障碍物的距离,在小车与障碍物的距离小于安全距离(用软件设定)时自动拐弯,以避开障碍物。
在避开障碍物后,小车会沿直线前进。
本系统设计的简易智能小车分为几个模块:单片机控制系统、超声波路面检测系统、前进、转弯控制电机。
1.1.1 基于51单片机的超声波智能避障小车的发展随着社会的不断发展和科学技术水平的不断提高,人类渴望创造出一种取代人力的劳动工具解放劳动力,于是出现了“机器人”这个代名词。
1959年诞生世界上第一台机器人,至今已有50多年的历史,机器人技术在科学领域也取得了质的飞跃,目前已发展成一门机械、电子、计算机、自动控制、信号处理,传感器等多学科为一体的尖端技术。
智能超声波避障小车经历了三代技术创新变革。
第一代超声波避障小车可编程的示教再现型,不需要装载任何传感器,只是采用简单的开关控制,通过编程来设置小车的路径与运动参数,在工作过程中不能根据环境的变化而改变自身的运动轨迹。