基于51单片机控制的自动停泊小车的设计与实现.docx
《基于51单片机控制的自动停泊小车的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于51单片机控制的自动停泊小车的设计与实现.docx(47页珍藏版)》请在冰点文库上搜索。
基于51单片机控制的自动停泊小车的设计与实现
本科专业学生毕业设计(论文)
题目:
基于51单片机控制的自动停泊小车的设计与实现
系别:
计算机工程系
专业:
电子信息工程
年级:
2010级
学号:
20100302022
姓名:
白昂松
指导教师:
博
摘要
在当今社会,汽车更加成为了千家万户必不可少的工具。
然而,对于大多数人来说,将车子停车入车位都是件头疼的事,尤其是停入那种前后各一辆车的车位,也叫顺列式车位,新手对这种车位最为恐惧。
如果稍有不慎,那么停车时发生刮蹭的小事故的几率非常高。
为了解决驾驶员们的这一难题,自动停泊技术走进了人们的视野中。
此次设计采用STC89C52RC单片机作为控制核心,由L298N电机驱动模块来控制小车的运动轨迹,利用超声波模块进行与障碍之间距离的检测,还使用了红外避障模块对障碍进行检测,最后使用了LCD1602显示屏对数据进行显示,以提示驾驶员。
整个系统先由电机驱动模块控制小车移动,期间由红外避障模块进行障碍物检测,如果检测到障碍,超声波模块则开始测量距离并显示在LCD液晶屏上,并且小车停止移动。
上述流程循环至小车停入库,最后由超声波传感器测量小车与后方障碍物的距离,并最终做出调整。
整个过程由单片机进行数据处理,是一种既方便又安全的停车方式。
论文中首先提出了整体方案,然后在对STC89C52RC单片机开发及运用的基础上对各个模块的工作原理及其特性进行了分析与介绍,并加以说明。
在论文中还对系统的软件结构进行介绍。
在对硬件工作原理的理解为前提条件,用C语言编程来实现系统的功能。
关键词:
超声波传感器;STC89C52RC单片机;自动停泊;C语言
Abstract
Nowadays,automobilehasbecomeanessentialtoolforeveryfamily.Almosteveryfamilyhastheirowncar.however,howtoparkingacarisaheadachethingformanypeople,especiallyparkingtothecolumnspaces.Theparkingscratchesaccidentisveryhigh.Inordertosolvethedifficulties,automaticberthingtechnologyintopeople'svision.ThisdesignusestheSTC89C52RCsingle-chipmicrocomputerascontrolcore,byL298Nmotordrivermoduletocontrolthemovementofthecar,usingtheultrasonicmoduleandthedistancebetweentheobstacledetection,alsousedtheinfraredobstacleavoidancemoduletodetectobstacles,finallyusestheLCD1602displayscreentodisplaythedata.Thewholesystemmoduletocontrolthecardrivenbyamotortomovefirst,duringtheobstacledetectionbyinfraredobstacleavoidancemodule,ifdetectedobstacle,ultrasonicmodulebegantomeasuredistanceanddisplayedintheLCDscreen,andthecarstopmoving.Theprocesscycletothecarstoppedwithinthelibrary,andfinallythetrolleyandtherearobstacledistanceismeasuredbytheultrasonicsensor,andeventuallymakeadjustments.Thewholeprocessbysingle-chipcomputerfordataprocessing,itisaconvenientandsafewayofparking.
Thethesisfirstputsforwardtheoverallplan,andthenbasedonSTC89C52RCMCUdevelopmentandapplication,andexplained.Inthepaperalsointroducesthesoftwarestructureofthesystem.Onthepremiseofunderstandingoftheworkingprincipleofthehardwareconditions,usingClanguageprogrammingtorealizethefunctionofthesystem.
KeyWords:
ThetransducerSTC89C52RCSCMAutomaticparkingTheClanguage
第一章引言
1.1研究背景及发展现状
在当今社会,科技不断发展和更新,逐渐形成了家有一车的趋势,拥有一辆自己的汽车成为了当今社会人们生活中的重要一部分。
然而拥有了自己的爱车之后,许多棘手的问题也都随之而来。
最重要的是考取驾照,考取驾照时,倒库和移库作为必考科目之一,有一定的道理。
只要不开车就要停车,如果作为一名新手或者倒车技术还不够硬的驾驶者,这无疑是最折磨人的事情,导致发生爱车小规模摩擦等不必要的麻烦。
为了解决这种情况的发生,各大汽车厂商研发出了自动泊车功能,自动泊车逐渐进入了人们的视野之中,并广泛被大众使用。
1.2研究目的及意义
伴随着汽车的普及和人们物质文化水平的提高,自动停泊小车正迅速地走进人们的生活中来,自动泊车系统不但给人们带来方便,也让停车成为了一种享受。
自动泊车作为一个强大的控制系统,对距离的检测和车辆行驶速度的把握能力要远远强于驾驶者的手动控制。
自动泊车是由处理器,检测系统和控制系统组成。
先由检测系统来检测汽车周围的环境和汽车自身状况,然后传出到处理器,对数据进行处理。
最后由控制系统来控制汽车的行动方式和轨迹,从而达到自动停车的功能。
在此过程中,驾驶员需要按下启动自动停泊装置的按钮即可,双手可完全脱离方向盘既舒适又简单。
1.3研究容
本次设计就是利用所学的单片机知识设计一款具有自动停泊功能的小车,对小车进行自动倒入车位、测量安全距离和对驾驶员的危险距离提示等功能进行完善,并且参照各大汽车制造商研发出来的自动泊车功能,对自己的小车进行完善与改进,并与生活接轨做出一款既能丰富自己知识面又能应用到现实生活中的设计。
研究的容有:
具有自动倒车与停泊,对切入车位的角度和车辆行驶的速度进行控制;超声波检测距离,并将距离呈现给驾驶者,提供距离信息给驾驶员;危险距离提示,给予驾驶员提醒,使驾驶员作出相应判断。
并将这一系列的功能用基于单片机的小车来实现。
第二章方案的论证及设计
2.1自动泊车系统的设计要求
整个系统应用51单片机作为处理数据的核心部位,并利用其它各部件实现侧方位停车,与距离检测,危险提示等模块来实现此次自动停泊小车的设计。
应对各个模块、各部件结构进行熟悉了解,对代码进行编写和优化,以及外围传感器的驱动和测距模块所使用的相关电气化元器件的工业要求。
首先要确定小车开启自动停泊模式的位置,然后计算好距离、角度和速度然后进行倒车,利用小车后面的红外模块对障碍物进行检测,确保倒车过程能顺利实现。
完成倒车后利用超声波模块检测车尾与后面障碍物的距离,并显示在LCD显示屏上,最后对位置进行调整。
整个过程中要计算好车与停车位的参数,比如:
车身长度与宽度,入库时车与障碍形成的角度,停车的长度与宽度,还有小车实现功能时的位置。
2.2系统的主要功能
本次设计的自动停泊小车具有以下功能:
1、自动将小车停泊到停车位中(列式停车位)。
2、LCD1602距离显示:
先输出超声波模块所测出的距离。
3、红外避障:
对障碍物进行探测。
4、超声波测距:
测量小车与后方障碍物的距离。
5、蜂鸣器报警提示:
进行危险状态提示。
系统功能图如下图2-1所示。
图2-1系统功能图
用图的方式可以展示出本次设计:
基于51单片机的自动停泊小车设计的基本工作原理,输入输出部分。
超声波传感器和红外传感器能够让车更加规的完成倒车动作,而LCD1602液晶屏和蜂鸣器也能让驾驶者更加顺利地得到实时数据,并且完成倒车。
第三章自动泊车系统的硬件设计
3.1自动停泊小车的硬件系统
在本次的毕业设计中自动停泊小车的硬件上主要使用了:
STC89C52RC的单片机、超声波传感器、红外线避障传感器、L298N电机驱动模块以及小车部件等。
将自动泊车系统应用于小车上,使普通小车转变成具有自动停泊功能的小车并能模拟自动泊车的基本过程。
自动停泊小车的硬件框图如下图3-1所示。
图3-1自动停泊小车的硬件框图
图3-1表示自动泊车系统应用在小车上时,各个输入、采集数据的模块的工作状态以及通过单片机计算处理后的作出的数据输出和相应的电机驱动状态的展现。
3.2STC89C52单片机的电路图及引脚说明
STC89C52单片机是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片含8KBYTES的可反复擦写的FLASH只读程序存储器和256BYTES的随机数据存储器(RAM),器件采用ATMEL公司的高密度,非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容。
功能强大的STC89C52单片机适合于许多较为复杂的控制应用场合【11】。
引脚图如图3-2所示:
图3-2STC89C52RC引脚图
主要特性如下:
●增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,兼容MCS51兼容系统;
●8k可反复擦写(大于1000次)FLASHROM;
●256x8bit部RAM;
●工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机);
●工作频率围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz;
●用户应用程序空间为8K字节;
●时钟频率0-24MHz;
●双向32个I/O口复位后为:
P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻;
●ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片;
●EEPROM功能;
●看门狗功能;
●3个16位可编程定时/计数器中断,即定时器T0、T1、T2;
●2个外部中断源,共8个中断源;
●通用异步串行口(UART),还可用定时器软件实现多个UART;
●工作温度围:
-40~+85℃(工业级)/0~75℃(商业级);
●PDIP封装。
STC89C52RC单片机的工作模式:
●掉电模式:
典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序;
●空闲模式:
典型功耗2mA;
●正常工作模式:
典型功耗4Ma~7mA;
STC89C52RC引脚功能说明:
●40个引脚按其功能可以分为以下三类;
●电源及时钟引脚——Vcc、Vss;XTAL1、XTAL2;
●控制引脚——PSEN、ALE/PROG、EA/Vpp、RESET;
●I/O口引脚——P0、P1、P2、P3,为四个八位I/O口的外部引脚。
P0口是一个双功能的八位并行口,字节地址为80H,位地址为80H~87H。
端口的各位具有完全相同但又相互独立的电路结构。
P0口作为双功能口(地址/数据复用口和通用I/O口),当P0口用作地址/数据复用口时,是一个真正的双向口,用作与外部储存器的连接,输出低八位地址和输出/输入8位数据。
当P0口作为通用I/O口时,需要在片外接上拉电阻,此时端口不存在高阻抗状态,因此是一个准双向口;当作为通用的I/O口输入时,应先向端口输出锁存器写入1。
P0口可驱动8个LS型TTL负载。
P1端口(P1.0~P1.7,1~8引脚):
八位,准双向I/O口,在部具有自带的上拉电阻。
P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。
对端口写入“1”时,通过部的上拉电阻把端口拉到高电位,这是可用作输入口。
P1口作输入口使用时,因为有部上拉电阻,那些被外部拉低的引脚会输出一个电流(I)。
此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。
在对FlashROM编程和程序校验时,P1接收低8位地址。
P2端口(P2.0~P2.7,21~28引脚):
P2口是一个自带部上拉电阻的8位双向I/O端口当单片机扩展外部储存器及I/O口时,P2口作为高八位地址线总线用,输出高八位地址,P2口也可以当做普通的I/O口使用。
当作为普通的I/O口输入时,应先向端口输出锁存器写入1;P2口与P0口输出的低八位地址一起构成16位地址,可以寻址64KB的地址空间,在访问外部程序存储器和16位地址的外部数据存储器时,P2送出高8位地址。
在访问8位地址的外部数据存储器时,P2口引脚上的容(就是专用寄存器(SFR)区中的P2寄存器的容),在整个访问期间不会改变。
在对FlashROM编程和程序校验期间,P2也接收高位地址和一些控制信号。
P3端口(P3.0~P3.7,10~17引脚):
P3是一个带部上拉电阻的8位双向I/O端口。
P3口作为第二功能的输出/输入或第一功能通用输入,均需将相应位的锁存器置1。
实际应用中,由于复位后P3口锁存器置1,满足第二功能所需要的条件,所以不需要任何设置工作,就可以进入第二功能操作。
当某位不作为第二功能使用时,作为第一功能I/O口使用。
引脚输入部分有两个缓冲器,第二功能的输入信号取自缓冲器BUF3的输出端,第一功能输入信号取自缓冲器BUF2的输入端【8】。
RST(9引脚):
复位信号输入端,高电平有效。
在此引脚加上持续时间大于2个机器周期的高电平,就可以使单片机复位。
当单片机正常工作时,次引脚应该为≤0.5V的低电平。
当看门狗定时器溢出时,该引脚将输出长达96个时钟震荡周期的高电平。
ALE/ROG(30引脚)ALE为CPU访问外部程序存储器或外部数据存储器或外部数据存储器提供一个地址锁存的信号,将低八位地址锁存在片外的地址锁存器中。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过把地址位8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOV指令时有效。
,ALE将被微弱拉高。
这个ALE使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效:
外部程序存储器选通信号是外部程序存储器选SEN通信号。
3.3L298N电机驱动模块
L298N芯片的介绍L298N是ST公司生产的一种高电压、大电流电机驱动芯片。
该芯片的主要特点是工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器、线圈等感性负载;采用标准TTL逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作;有一个逻辑电源输入端,使部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。
L298N芯片如图3-3所示:
图3-3L298N芯片
L298N的工作原理:
在L298N模块中有两组H桥驱动电路,每一组桥H电路中有4个三极管,四个三机关两两相对,在导通时,可以控制流过电机的电流的方向,并通过此方法来控制电机的正传反转等,从而控制此小车的行进方向。
此模块有IN1、IN2、IN3、IN4四个逻辑输入端,其中IN1、IN2控制一个电机,IN3、IN4控制另一个电机。
当IN1输入高电平为1、IN2输入低电平为0时,IN1、IN2所控制的电机正转,当IN1输入为低电平0,IN2输入高电平1时,电机反转。
将PWM引脚上的跳线帽去掉后,从ENA、ENB端输入,可控制电机速度。
L298N芯片引脚说明:
1脚:
电流监测端A
2脚:
输出端
3脚:
输出端
4脚:
功率电源电压(+12V)
5脚:
输入端
6脚:
时能端(通过电阻接地)
7脚:
输入端
8脚:
GND接地
9脚:
逻辑电源电压端(+5V)
10脚:
输入端
11脚:
使能端
12脚:
输入脚
13脚:
输出端
14脚:
输出端
15脚:
电流监测端B
L298N电机驱动模块原理图如下图3-4所示:
图3-4L298N电机驱动模块
L298N电机驱动模块参数:
●驱动芯片:
L298N双H桥直流电机驱动芯片;
●驱动部分端子供电围Vs:
+5V~+12V;如需要板取电,则供电围Vs:
+6V~+12V;
●驱动部分峰值电流Io:
2A;
●逻辑部分端子供电围:
Vss:
+5V~+7V(可板取电+5V);
●逻辑部分工作电流围:
0~36mA;
●控制信号输入电压围:
低电平:
-0.3V≤Vin≤1.5V;
高电平:
2.3V≤Vin≤Vss;
●使能信号输入电压围:
低电平:
-0.3≤Vin≤1.5V(控制信号无效);
高电平:
2.3V≤Vin≤Vss(控制信号有效);
●最大功耗:
20W(温度T=75℃时);
●存储温度:
-25℃~+130℃;
●驱动板尺寸:
52mm*44mm*33mm(包括散热片和铜柱高度);
●其他扩展:
控制方向指示灯、逻辑电源选择接口。
3.4超声波传感器模块
超声波测距是利用超声脉冲回波渡越时间法来实现的。
设超声波脉冲由传感器发出到接收所经历的时间为t,超声波在空气中的传播速度为c,则从传感器到目标物体的距离D可用下式求出:
D=ct/2。
本次毕业设计使用的是HC-SR04超声波测距模块。
HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。
超声波传感器系统框图如图3-5所示:
图3-5超声波传感器系统框图
主要功能:
1、距离测量;
2、温度测量;
3、光亮度测量。
超声波传感器模块原理如下图3-6所示:
图3-6超声波传感器模块原理图
基本工作原理:
1、采用I/O口TRIG触发测距,给最少10us的高电平信号;
2、模块自动发送8个40KHz的方波,自动检测是否有信号返回;
3、有信号返回,通过I/O口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。
测试距离=(高电平时间*声速(340M/S))/2。
基本参数:
⏹工作电压:
DC5V;
⏹工作电流:
15mA;
⏹工作频率:
40KHz;
⏹探测距离围:
2cm~4m;
⏹测量温度围:
0℃至+100℃(精度:
1℃);
⏹测量角度:
15度;
⏹数据输出方式:
iic和uart(57600bps)两种方式,用户任选;其中UART方式,是以7个字节为一组,以0x55开头的3个数据是距离数值;以0x66开头的2个数据是温度数据以0x77开头的2个数据是光照度数据。
0x55\0x66\0x77是为区分3个数据而增加的数据头;
⏹时间限制:
支持如下2种探测方式;
(1)持续探测;
(2)受控间歇探测;
⏹距离数据格式:
以毫米为最小数据单位,双字节16进制传输,前高后低;
⏹温度数据格式:
以摄氏度为最小数据单位,单字节16进制传输;
⏹光照数据格式:
单字节16进制传输;光线暗时数值大,光线亮时数值小;
⏹工作温度围:
0℃至+100℃;
⏹存放温度:
-40℃至+120℃;
⏹外形尺寸:
48mm*39mm*22mm(H)。
传播限制:
1、超声波探测时,被测物的表面如果为布料、毛料等会出现很大的误差,因为布料或者是毛料对超声波的反射率很小。
2、测距时,被测物体的面积不少于0.5平方米且平面要保持平整,否则会出现误差,影响测量的结果。
3.5红外避障模块
在本次设计中红外避障模块安装于小车的车尾左右两侧,其主要作用是检测后方是否有障碍物存在,并控制蜂鸣器报警,对危险距离进行提示,并提醒驾驶者后方有障碍物。
红外避障模块原理如下图3-7所示:
图3-7红外避障模块
上图的红外避障模块展示了其基本的工作原理:
红外二极管发射红外线波,遇到障碍后,红外线波返回被模块上的红外接收装置接收到,并将信息传递给单片机,然后做出相应的处理。
模块描述:
红外模块由光电传感器组成,光电传感器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。
光敏电阻器是利用半导体的光电导效应制成的一种电阻值随入射光的强弱而改变的电阻器,入射光强,电阻减小,入射光弱,电阻增大。
还有另一种入射光弱,电阻减小,入射光强,电阻增大。
只要人眼可感受的光,都会引起它的阻值变化。
该传感器模块对环境光线适应能力强,由红外发射管发射出一定频率的红外线,当检测方向遇到障碍物时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接口输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,有效距离围2~80cm,工作电压为3.3V—5V。
该传感器的探测距离的优点是可以通过电位器调节、具有干扰小、便于装配、使用方便等特点,可以广泛应用于机器人避障、避障小车、流水线计数及黑白线循迹等众多场合。
模块参数说明:
◆当模块检测到前方障碍物信号时,电路板上绿色指示灯点亮电平,同时OUT端口持续输出低电平信号,该模块检测距离2~80cm,检测角度35°,检测距离可以通过电位器进行调节,顺时针调电位器,检测距离增加;逆时针调电位器,检测距离减少;
◆传感器主动红外线反射探测,因此目标的反射率和形状是探测距离的关键。
其中黑色探测距离最小,白色最大;小面积物体距离小,大面积距离大;
◆传感器模块输出端口OUT可直接与单片机I/O口连接即可,也可以直接驱动一个5V继电器。
连接方式:
VCC-VCC;GND-GND;OUT-I/O;
◆比较器采用LM393,工作稳定;
◆可采用3-5V直流电源对模块进行供电。
当电源接通时,红色电源指示灯点亮;
◆具有3mm的螺丝孔,便于固定、安装;
◆电路板尺寸:
3.1CM*1.