基于51单片机控制的自动停泊小车的设计实现分析_第1页
基于51单片机控制的自动停泊小车的设计实现分析_第2页
基于51单片机控制的自动停泊小车的设计实现分析_第3页
基于51单片机控制的自动停泊小车的设计实现分析_第4页
基于51单片机控制的自动停泊小车的设计实现分析_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-PAGE . z- . - .可修编-本科专业学生毕业设计论文题 目: 基于51单片机控制的自动停泊小车的设计与实现系 别: 计算机工程系专 业: 电子信息工程年 级: 2010级学 号: 20100302022姓 名: 白昂松指导教师: 博-. z- . - .可修编-摘 要 在当今社会,汽车更加成为了千家万户必不可少的工具。然而,对于大多数人来说,将车子停车入车位都是件头疼的事,尤其是停入那种前后各一辆车的车位,也叫顺列式车位,新手对这种车位最为恐惧。如果稍有不慎,则停车时发生刮蹭的小事故的几率非常高。为了解决驾驶员们的这一难题,自动停泊技术走进了人们的视野中。此次设计采用STC89C5

2、2RC单片机作为控制核心,由L298N电机驱动模块来控制小车的运动轨迹,利用超声波模块进展与障碍之间距离的检测,还使用了红外避障模块对障碍进展检测,最后使用了LCD1602显示屏对数据进展显示,以提示驾驶员。整个系统先由电机驱动模块控制小车移动,期间由红外避障模块进展障碍物检测,如果检测到障碍,超声波模块则开场测量距离并显示在LCD液晶屏上,并且小车停顿移动。上述流程循环至小车停入库,最后由超声波传感器测量小车与前方障碍物的距离,并最终做出调整。整个过程由单片机进展数据处理,是一种既方便又平安的停车方式。 论文中首先提出了整体方案,然后在对STC89C52RC单片机开发及运用的根底上对各个模块

3、的工作原理及其特性进展了分析与介绍,并加以说明。在论文中还对系统的软件构造进展介绍。在对硬件工作原理的理解为前提条件,用C语言编程来实现系统的功能。 关键词:超声波传感器;STC89C52RC单片机;自动停泊;C语言AbstractNowadays, automobile has bee an essential tool for every family. Almost every family has their own car. however, how to parking a car is a headache thing for many people, especially pa

4、rking to the column spaces. The parking scratches accident is very high. In order to solve the difficulties, automatic berthing technology into peoples vision. This design uses the STC89C52RC single-chip microputer as control core, by L298N motor driver module to control the movement of the car, usi

5、ng the ultrasonic module and the distance between the obstacle detection, also used the infrared obstacle avoidance module to detect obstacles, finally uses the LCD1602 display screen to display the data. The whole system module to control the car driven by a motor to move first, during the obstacle

6、 detection by infrared obstacle avoidance module, if detected obstacle, ultrasonic module began to measure distance and displayed in the LCD screen, and the car stop moving. The process cycle to the car stopped within the library, and finally the trolley and the rear obstacle distance is measured by

7、 the ultrasonic sensor, and eventually make adjustments. The whole process by single-chip puter for data processing, it is a convenient and safe way of parking. The thesis first puts forward the overall plan, and then based on STC89C52RC MCU development and application, and e*plained. In the paper a

8、lso introduces the software structure of the system. On the premise of understanding of the working principle of the hardware conditions, using C language programming to realize the function of the system. Key Words: The transducerSTC89C52RCSCMAutomatic parking The C language目 录 TOC o 1-3 h z u HYPE

9、RLINK l _Toc22645 第一章 引 言 PAGEREF _Toc22645 1 HYPERLINK l _Toc9815 1.1研究背景及开展现状 PAGEREF _Toc9815 1 HYPERLINK l _Toc21780 1.2研究目的及意义 PAGEREF _Toc21780 1 HYPERLINK l _Toc18722 1.3研究容 PAGEREF _Toc18722 1 HYPERLINK l _Toc20441 第二章 方案的论证及设计 PAGEREF _Toc20441 2 HYPERLINK l _Toc10243 2.1自动泊车系统的设计要求 PAGEREF

10、 _Toc10243 2 HYPERLINK l _Toc23497 2.2系统的主要功能 PAGEREF _Toc23497 2 HYPERLINK l _Toc18458 第三章 自动泊车系统的硬件设计 PAGEREF _Toc18458 4 HYPERLINK l _Toc30445 3.1自动停泊小车的硬件系统 PAGEREF _Toc30445 4 HYPERLINK l _Toc12047 3.2 STC89C52单片机的电路图及引脚说明 PAGEREF _Toc12047 4 HYPERLINK l _Toc6411 3.3 L298N电机驱动模块 PAGEREF _Toc641

11、1 7 HYPERLINK l _Toc17250 3.4 超声波传感器模块 PAGEREF _Toc17250 10 HYPERLINK l _Toc27942 3.5 红外避障模块 PAGEREF _Toc27942 12 HYPERLINK l _Toc4204 3.6 LCD1602液晶显示 PAGEREF _Toc4204 14 HYPERLINK l _Toc13332 第四章 自动泊车系统的软件设计 PAGEREF _Toc13332 16 HYPERLINK l _Toc4895 4.1开发软件 PAGEREF _Toc4895 16 HYPERLINK l _Toc167 4

12、.1.1 Keil软件的介绍 PAGEREF _Toc167 16 HYPERLINK l _Toc7684 4.1.2 STC_ISP软件介绍 PAGEREF _Toc7684 17 HYPERLINK l _Toc16958 4.2 自动泊车系统主程序 PAGEREF _Toc16958 17 HYPERLINK l _Toc5652 4.3 L298N电机驱动程序 PAGEREF _Toc5652 19 HYPERLINK l _Toc30902 4.4 超声波测距程序 PAGEREF _Toc30902 19 HYPERLINK l _Toc5973 4.5 红外避障模块程序 PAGE

13、REF _Toc5973 21 HYPERLINK l _Toc1301 4.6 LCD1602液晶显示程序 PAGEREF _Toc1301 21 HYPERLINK l _Toc18279 第五章 自动停泊小车的测试 PAGEREF _Toc18279 24 HYPERLINK l _Toc25708 结 论 PAGEREF _Toc25708 26 HYPERLINK l _Toc3423 致 PAGEREF _Toc3423 27 HYPERLINK l _Toc20145 参考文献 PAGEREF _Toc20145 28 HYPERLINK l _Toc25000 附 录 PAGE

14、REF _Toc25000 29 HYPERLINK l _Toc16816 附录一 PAGEREF _Toc16816 29 HYPERLINK l _Toc15809 附录二 PAGEREF _Toc15809 36-. z- . - .可修编-第一章 引 言1.1研究背景及开展现状 在当今社会,科技不断开展和更新,逐渐形成了家有一车的趋势,拥有一辆自己的汽车成为了当今社会人们生活中的重要一局部。然而拥有了自己的爱车之后,许多棘手的问题也都随之而来。最重要的是考取驾照,考取驾照时,倒库和移库作为必考科目之一,有一定的道理。只要不开车就要停车,如果作为一名新手或者倒车技术还不够硬的驾驶者,这

15、无疑是最折磨人的事情,导致发生爱车小规模摩擦等不必要的麻烦。为了解决这种情况的发生,各大汽车厂商研发出了自动泊车功能,自动泊车逐渐进入了人们的视野之中,并广泛被群众使用。1.2研究目的及意义 伴随着汽车的普及和人们物质文化水平的提高,自动停泊小车正迅速地走进人们的生活中来,自动泊车系统不但给人们带来方便,也让停车成为了一种享受。自动泊车作为一个强大的控制系统,对距离的检测和车辆行驶速度的把握能力要远远强于驾驶者的手动控制。自动泊车是由处理器,检测系统和控制系统组成。先由检测系统来检测汽车周围的环境和汽车自身状况,然后传出到处理器,对数据进展处理。最后由控制系统来控制汽车的行动方式和轨迹,从而到

16、达自动停车的功能。在此过程中,驾驶员需要按下启动自动停泊装置的按钮即可,双手可完全脱离方向盘既舒适又简单。1.3研究容 本次设计就是利用所学的单片机知识设计一款具有自动停泊功能的小车,对小车进展自动倒入车位、测量平安距离和对驾驶员的危险距离提示等功能进展完善,并且参照各大汽车制造商研发出来的自动泊车功能,对自己的小车进展完善与改良,并与生活接轨做出一款既能丰富自己知识面又能应用到现实生活中的设计。研究的容有:具有自动倒车与停泊,对切入车位的角度和车辆行驶的速度进展控制;超声波检测距离,并将距离呈现给驾驶者,提供距离信息给驾驶员;危险距离提示,给予驾驶员提醒,使驾驶员作出相应判断。并将这一系列的

17、功能用基于单片机的小车来实现。第二章 方案的论证及设计2.1自动泊车系统的设计要求 整个系统应用51单片机作为处理数据的核心部位,并利用其它各部件实现侧方位停车,与距离检测,危险提示等模块来实现此次自动停泊小车的设计。 应对各个模块、各部件构造进展熟悉了解,对代码进展编写和优化,以及外围传感器的驱动和测距模块所使用的相关电气化元器件的工业要求。 首先要确定小车开启自动停泊模式的位置,然后计算好距离、角度和速度然后进展倒车,利用小车后面的红外模块对障碍物进展检测,确保倒车过程能顺利实现。完成倒车后利用超声波模块检测车尾与后面障碍物的距离,并显示在LCD显示屏上,最后对位置进展调整。整个过程中要计

18、算好车与停车位的参数,比方:车身长度与宽度,入库时车与障碍形成的角度,停车的长度与宽度,还有小车实现功能时的位置。2.2系统的主要功能 本次设计的自动停泊小车具有以下功能: 1、自动将小车停泊到停车位中列式停车位。 2、LCD1602距离显示:先输出超声波模块所测出的距离。 3、红外避障:对障碍物进展探测。 4、超声波测距:测量小车与前方障碍物的距离。 5、蜂鸣器报警提示:进展危险状态提示。 系统功能图如下列图2-1所示。图2-1 系统功能图 用图的方式可以展示出本次设计:基于51单片机的自动停泊小车设计的根本工作原理,输入输出局部。超声波传感器和红外传感器能够让车更加规的完成倒车动作,而LC

19、D1602液晶屏和蜂鸣器也能让驾驶者更加顺利地得到实时数据,并且完成倒车。第三章 自动泊车系统的硬件设计3.1自动停泊小车的硬件系统 在本次的毕业设计中自动停泊小车的硬件上主要使用了:STC89C52RC的单片机、超声波传感器、红外线避障传感器、L298N电机驱动模块以及小车部件等。将自动泊车系统应用于小车上,使普通小车转变成具有自动停泊功能的小车并能模拟自动泊车的根本过程。自动停泊小车的硬件框图如下列图3-1所示。图3-1 自动停泊小车的硬件框图 图3-1表示自动泊车系统应用在小车上时,各个输入、采集数据的模块的工作状态以及通过单片机计算处理后的作出的数据输出和相应的电机驱动状态的展现。3.

20、2 STC89C52单片机的电路图及引脚说明STC89C52单片机是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片含8K BYTES的可反复擦写的FLASH只读程序存储器和256BYTES的随机数据存储器RAM,器件采用ATMEL公司的高密度,非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容。功能强大的STC89C52单片机适合于许多较为复杂的控制应用场合【11】。引脚图如图3-2所示:图3-2 STC89C52RC引脚图主要特性如下: 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,兼容MCS51兼容系统;8k可反复擦写(大于10

21、00次)FLASH ROM;256*8bit部RAM;工作电压:5.5V3.3V5V单片机/3.8V2.0V3V单片机;工作频率围:040MHz,相当于普通 8051 的 080MHz,实际工作频率可达48MHz;用户应用程序空间为8K字节;时钟频率0-24MHz;双向32个I/O口 复位后为:P1/P2/P3/P4是准双向口/弱上拉, P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻;ISP在系统可编程/IAP在应用可编程,无需专用编程器,无需专用仿真器,可通过串口R*D/P3.0,T*D/P3.1直接下载用户程序,数秒即可完成一片;EEPROM功能;看

22、门狗功能;3个16位可编程定时/计数器中断,即定时器T0、T1、T2;2个外部中断源,共8个中断源;通用异步串行口UART,还可用定时器软件实现多个 UART;工作温度围:-40+85工业级/075商业级;PDIP封装。STC89C52RC 单片机的工作模式:掉电模式:典型功耗0.1A,可由外部中断唤醒,中断返回后,继续执行原程序;空闲模式:典型功耗 2mA;正常工作模式:典型功耗4Ma7mA;STC89C52RC 引脚功能说明:40个引脚按其功能可以分为以下三类;电源及时钟引脚Vcc、Vss;*TAL1、*TAL2;控制引脚PSEN、ALE/PROG、EA/Vpp、RESET;I/O口引脚P

23、0、P1、P2、P3,为四个八位I/O口的外部引脚。P0 口是一个双功能的八位并行口,字节地址为80H,位地址为80H87H。端口的各位具有完全一样但又相互独立的电路构造。P0口作为双功能口地址/数据复用口和通用I/O口,当P0口用作地址/数据复用口时,是一个真正的双向口,用作与外部储存器的连接,输出低八位地址和输出/输入8位数据。当P0口作为通用I/O口时,需要在片外接上拉电阻,此时端口不存在高阻抗状态,因此是一个准双向口;当作为通用的I/O口输入时,应先向端口输出锁存器写入1。P0口可驱动8个LS型TTL负载。P1端口P1.0P1.7,18引脚:八位,准双向I/O口,在部具有自带的上拉电阻

24、。P1的输出缓冲器可驱动吸收或者输出电流方式4个TTL输入。对端口写入1”时,通过部的上拉电阻把端口拉到高电位,这是可用作输入口。P1口作输入口使用时,因为有部上拉电阻,那些被外部拉低的引脚会输出一个电流I。 此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入P1.0/T2和定时器/计数器2的触发输入P1.1/T2E*。在对 Flash ROM 编程和程序校验时,P1接收低8位地址。 P2端口P2.0P2.7,2128引脚:P2口是一个自带部上拉电阻的8位双向 I/O 端口当单片机扩展外部储存器及I/O口时,P2口作为高八位地址线总线用,输出高八位地址,P2口也可以当做普通的I/

25、O口使用。当作为普通的I/O口输入时,应先向端口输出锁存器写入1;P2口与P0口输出的低八位地址一起构成16位地址,可以寻址64KB的地址空间,在外部程序存储器和16位地址的外部数据存储器时,P2送出高8位地址。在8位地址的外部数据存储器时,P2口引脚上的容就是专用存放器SFR区中的P2存放器的容,在整个期间不会改变。在对Flash ROM编程和程序校验期间,P2也接收高位地址和一些控制信号。P3端口P3.0P3.7,1017引脚:P3是一个带部上拉电阻的8位双向I/O端口。P3口作为第二功能的输出/输入或第一功能通用输入,均需将相应位的锁存器置1。实际应用中,由于复位后P3口锁存器置1,满足

26、第二功能所需要的条件,所以不需要任何设置工作,就可以进入第二功能操作。当*位不作为第二功能使用时,作为第一功能I/O口使用。引脚输入局部有两个缓冲器,第二功能的输入信号取自缓冲器BUF3的输出端,第一功能输入信号取自缓冲器BUF2的输入端【8】。RST9引脚:复位信号输入端,高电平有效。在此引脚加上持续时间大于2个机器周期的高电平,就可以使单片机复位。当单片机正常工作时,次引脚应该为0.5V的低电平。当看门狗定时器溢出时,该引脚将输出长达96个时钟震荡周期的高电平。ALE/ ROG30引脚ALE为CPU外部程序存储器或外部数据存储器或外部数据存储器提供一个地址锁存的信号,将低八位地址锁存在片外

27、的地址锁存器中。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次外部数据存储器时,ALE脉冲将会跳过。如果需要,通过把地址位8EH的SFR的第0位置1”,ALE操作将无效。这一位置1”,ALE仅在执行MOV*或MOV指令时有效。,ALE将被微弱拉高。这个ALE使能标志位地址位8EH 的SFR的第0位的设置对微控制器处于外部执行模式下无效:外部程序存储器选通信号是外部程序存储器选SEN通信号。3.3 L298N电机驱动模块L298N芯片的介绍L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片的主要特点是工作电压高,最高工作

28、电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器、线圈等感性负载;采用标准TTL逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或制止器件工作;有一个逻辑电源输入端,使部逻辑电路局部在低电压下工作;可以外接检测电阻,将变化量反应给控制电路。L298N芯片如图3-3所示:图3-3 L298N芯片 L298N的工作原理: 在L298N模块中有两组H桥驱动电路,每一组桥H电路中有4个三极管,四个三机关两两相对,在导通时,可以控制流过电机的电流的方向,并通过此方法来控制电机的正传反

29、转等,从而控制此小车的行进方向。此模块有IN1、IN2、IN3、IN4四个逻辑输入端,其中IN1、IN2控制一个电机,IN3、IN4控制另一个电机。当IN1输入高电平为1、IN2输入低电平为0时,IN1、IN2所控制的电机正转,当IN1输入为低电平0,IN2输入高电平1时,电机反转。将PWM引脚上的跳线帽去掉后,从ENA、ENB端输入,可控制电机速度。 L298N芯片引脚说明:1 脚: 电流监测端A2 脚: 输出端3 脚: 输出端 4 脚: 功率电源电压(+12V)5 脚: 输入端6 脚: 时能端通过电阻接地7 脚: 输入端8 脚: GND接地9 脚: 逻辑电源电压端+5V)10脚: 输入端1

30、1脚: 使能端12脚: 输入脚13脚: 输出端 14脚: 输出端15脚: 电流监测端B L298N电机驱动模块原理图如下列图3-4所示:图3-4 L298N电机驱动模块 L298N电机驱动模块参数:驱动芯片: L298N双H桥直流电机驱动芯片;驱动局部端子供电围Vs:5V12V;如需要板取电,则供电围Vs:+6V+12V;驱动局部峰值电流Io:2A;逻辑局部端子供电围:Vss:5V7V可板取电5V;逻辑局部工作电流围:036mA;控制信号输入电压围:低电平:0.3VVin1.5V; 高电平:2.3VVinVss;使能信号输入电压围: 低电平:0.3Vin1.5V控制信号无效;高电平:2.3VV

31、inVss控制信号有效;最大功耗:20W温度T75时;存储温度:25130;驱动板尺寸:52mm*44mm*33mm(包括散热片和铜柱高度);其他扩展:控制方向指示灯、逻辑电源选择接口。3.4 超声波传感器模块超声波测距是利用超声脉冲回波渡越时间法来实现的。设超声波脉冲由传感器发出到接收所经历的时间为t,超声波在空气中的传播速度为c,则从传感器到目标物体的距离D可用下式求出: D = ct /2。本次毕业设计使用的是HC-SR04超声波测距模块。HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。超声波传感

32、器系统框图如图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。 根本参数:工作电压:DC 5V;工作电流:15mA;工作频率:40KHz; 探测距离围:2cm4m; 测量温度围:0至

33、+100精度:1; 测量角度:15度; 数据输出方式:iic和uart57600bps两种方式,用户任选;其中UART方式,是以7个字节为一组,以0*55开头的3个数据是距离数值;以0*66开头的2个数据是温度数据以0*77开头的2个数据是光照度数据。0*550*660*77是为区分3个数据而增加的数据头; 时间限制:支持如下2种探测方式;1持续探测;2受控间歇探测; 距离数据格式:以毫米为最小数据单位,双字节 16进制传输,前高后低; 温度数据格式:以摄氏度为最小数据单位,单字节 16进制传输; 光照数据格式:单字节16进制传输;光线暗时数值大,光线亮时数值小; 工作温度围:0至+100;存

34、放温度:-40至+120;外形尺寸:48mm*39mm*22mmH。 传播限制: 1、超声波探测时,被测物的外表如果为布料、毛料等会出现很大的误差,因为布料或者是毛料对超声波的反射率很小。 2、测距时,被测物体的面积不少于0.5平方米且平面要保持平整,否则会出现误差,影响测量的结果。3.5 红外避障模块在本次设计中红外避障模块安装于小车的车尾左右两侧,其主要作用是检测前方是否有障碍物存在,并控制蜂鸣器报警,对危险距离进展提示,并提醒驾驶者前方有障碍物。红外避障模块原理如下列图3-7所示:图3-7 红外避障模块上图的红外避障模块展示了其根本的工作原理:红外二极管发射红外线波,遇到障碍后,红外线波

35、返回被模块上的红外接收装置接收到,并将信息传递给单片机,然后做出相应的处理。模块描述:红外模块由光电传感器组成,光电传感器一般用于光的测量、光的控制和光电转换将光的变化转换为电的变化。光敏电阻器是利用半导体的光电导效应制成的一种电阻值随入射光的强弱而改变的电阻器,入射光强,电阻减小,入射光弱,电阻增大。还有另一种入射光弱,电阻减小,入射光强,电阻增大。只要人眼可感受的光,都会引起它的阻值变化。该传感器模块对环境光线适应能力强,由红外发射管发射出一定频率的红外线,当检测方向遇到障碍物时,红外线反射回来被接收管接收,经过比拟器电路处理之后,绿色指示灯会亮起,同时信号输出接口输出数字信号一个低电平信

36、号,可通过电位器旋钮调节检测距离,有效距离围280cm,工作电压为3.3V5V。该传感器的探测距离的优点是可以通过电位器调节、具有干扰小、便于装配、使用方便等特点,可以广泛应用于机器人避障、避障小车、流水线计数及黑白线循迹等众多场合。模块参数说明:当模块检测到前方障碍物信号时,电路板上绿色指示灯点亮电平,同时OUT 端口持续输出低电平信号,该模块检测距离280cm,检测角度35,检测距离可以通过电位器进展调节,顺时针调电位器,检测距离增加;逆时针调电位器,检测距离减少;传感器主动红外线反射探测,因此目标的反射率和形状是探测距离的关键。其中黑色探测距离最小,白色最大;小面积物体距离小,大面积距离

37、大;传感器模块输出端口OUT 可直接与单片机I/O 口连接即可,也可以直接驱动一个5V继电器。连接方式:VCC-VCC;GND-GND;OUT-I/O;比拟器采用LM393,工作稳定;可采用3-5V直流电源对模块进展供电。当电源接通时,红色电源指示灯点亮;具有3mm的螺丝孔,便于固定、安装;电路板尺寸:3.1CM*1.5CM;模块接口说明3线制:1、VCC外接3V-5V电压可以直接与5V单片机和3V单片机相连;2、GND外接GND;3、OUT小板数字量输出接口0和1。3.6 LCD1602液晶显示本设计采用LCD1602,即工业字符型液晶,能够同时显示16*02即32个字符16列2行。LCD1

38、602液晶屏原理图如下列图3-8所示:图3-8 LCD1602封装图及相关引脚图接口定义如下:1脚:Vss为地电源;2脚:VDD为电源正极;3脚:VEE为液晶显示器比照度调整端,接正电源时比照度最弱,接地电源时比照度最高,比照度过高时会产生鬼影,使用时可以通过一个10K的电位器调整比照度;4脚:RS为数据命令选择端存放器选择,高电平时选择数据存放器、低电平时选择指令存放器;5脚:R/W读写选择端,高电平为读操作,低电平为写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据;6脚:E端为使能端,当E端由高电

39、平跳变成低电平时,液晶模块执行命令;714脚:D0D7为8位双向数据线;15脚:BLA背光电源正极;16脚:BLK背光电源负极。根本操作时序:1、读状态:输入:RS=L, RW=H, E=H 输出:D0D7=状态字;2、写命令:输入:RS=L, RW=L, D0D7=指令码,E=高脉冲 输出:无;3、读数据:输入:RS=H, RW=H, E=H 输出:D0D7=数据;4、写数据:输入:RS=H, RW=L, D0D7=数据,E=高脉冲 输出:无。复位说明初始化:延时15ms;写命令38H不检测忙信号;延时5ms;写命令38H不检测忙信号;延时5ms;写命令38H不检测忙信号;以后每次命令、读/

40、写数据操作之前均需要检测忙信号;写命令38H:显示模式设置;写命令08H:显示关闭;写命令01H:显示清屏;写命令06H:显示光标移动设置;写命令0CH:显示开及光标设置。第四章 自动泊车系统的软件设计4.1开发软件本次自动停泊小车的设计主要使用了Keil C51编程软件进展程序的编写,以及STC_ISP程序烧制软件对单片机进展程序烧录。 Keil软件的介绍 1、C51开发系统根本知识Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,包括C语言编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在的完整开发方案。Keil C51是在ANSI

41、C根底上针对51单片机的硬件特点进展的拓展,并向51单片机上移植,经过多年努力,C语言已经成为公认的高效、简介而又贴近51单片机硬件的实用高级编程语言。目前大多数的51单片机用户都在使用C语言进展程序设计。用C51进展单片机软件开发,具有如下优点:功能十分强大;可读性好;可移植性好;可维护性得到加强;易学易用。 2、Keil C51单片机软件开发系统的整体构造C51工具包的整体构造,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境IDE,可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可以IDE本身或其他编辑器编辑C或汇编源文件。然后分

42、别由C51及C51编译器编译生成目标文件.OBJ。目标文件可由LIB51创立生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件.ABS。ABS文件由OH51转换成标准的.He*文件,以供调试器Dscope51或Tscope51使用进展源代码级调试,也可由仿真器使用直接对目标板进展调试,也可以直接写入程序存贮器如EPROM中。 使用独立的Keil仿真器时,考前须知:1仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换其他频率的晶振;2仿真器上的复位按钮只复位仿真芯片,不复位目标系统;3仿真芯片的31脚/EA已接至高电平,所以仿真是只能使用片ROM,不能使用片外R

43、OM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM其CPU的/EA引脚接至低电平的目标系统中使用。优点:1KEIL C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能表达高级语言的优势;2与汇编相比,C语言在功能上、构造性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C语言来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。 STC_ISP软件介绍STC_ISP是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下

44、载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便,现已被广泛使用。4.2 自动泊车系统主程序本次设计的主程序主要是对超声波模块及LCD液晶屏等模块进展初始化并调用定时器。并使小车进展功能的实现。是主程序中的局部代码如下所示while循环体中的局部省略: 主程序局部代码:void main(void)uint a;uchar flag_c ;Sound = 1;LCMInit();DisplayListChar(0, 1, Cls); TMOD=0*01; TH0=0; TL0=0; ET0=1; EA=1; BZ_L=1; BZ_R=1;flag_c = 0;

45、while(1) .自动停泊小车系统的主程序主要是对各个模块进展初始化以及调用定时器。以上为主程序的主要代码while循环体中的局部省略此代码为设计的主程序main局部,首先此段代码对程序中的变量、超声波模块、LCD进展初始化。并开场对小车的功能进展实现。主程序流程图如图4-1所示: 图4-1 主程序流程图以上为该系统的流程图,此流程图表现了主程序的作用与运行主程序的运行过程,如果在运行次程序时满足所有条件,程序将完成自动泊车的全过程。4.3 L298N电机驱动程序L298N电机驱动模块可以实现小车的5个运动状态,包括小车的停顿、前进、后退、左转、右转。当4个状态引脚IN1,IN2,IN3,I

46、N4为逻辑输入端,当接收到高、低电平信号时,执行对应的小车运动状态。 L298N电机驱动模块程序如下所示:void Go()IN1=1;IN2=0;IN3=1;IN4=0.void Left()IN1=0;IN2=1;IN3=1;N4=0;以上程序局部即展示了小车5种运动状态下的状态引脚的电平信号值。本次设计采用的是IN1和IN2引脚控制左端电机,IN3和IN4控制右端电机的2轮小车,通过控制不同的电平对引脚的输入从而控制小车当前的状态。4.4 超声波测距程序超声波测距模块主要是测量小车前方与障碍物之间的距离,同时可以通过液晶显示屏来显示车辆前方与前方障碍物的距离。当红外避障模块监测到前方有障

47、碍物时,小车进展停车操作,此时超声波进展距离检测。超声波测距模块测距局部程序如下所示:void ceju(void)StartModule();while(!R*);TR0=1; while(R*);TR0=0;Conut(); delayms(80);以上程序为超声波测距的实现,当模块输出口R*为0时开场等待,并且开启计数,当模块输出口为1时开场计数并等待,然后关闭计数,最后调用Conut函数进展计算对距离进展计算,并且进展延时。超声波测距流程图如图4-2所示:图4-2 超声波测距流程图从流程图可以看出在无论小车在任何运动状态中只要红外壁障模块测出小车前方有障碍物,超声波模块就开场测量距离。

48、 4.5 红外避障模块程序在本次设计中,红外模块的作用是对小车的运动状态进展控制。安装在小车车尾左右放置,通过红外臂章模块对两侧的障碍物进展探测从而控制小车运动状态,同时,蜂鸣器作出报警相应提示,此时应注意车身周围是否存在障碍物。红外模块的功能可以独立完成,只需要给此模块一个高或低的电平即可。当红外模块发射管发射出的的红外线被红外模块的接收管接收时,此段程序开场执行。当左右两侧检测到障碍物时,蜂鸣器进展报警,小车进展停车操作,并翻开延时。延迟过后蜂鸣器关闭报警状态。红外避障模块工作流程图如图4-3所示:图 4-3 红外避障流程图在此流程图中,我们可以看出红外模块在不同的工作状态下所执行的运行状

49、态和执行的操作也不一样。当遇见障碍物时蜂鸣器进展报警提示,在泊车开场前的检测只会对驾驶员进展报警提醒,假设是在泊车过程中不仅会报警提醒驾驶者同时会取消泊车操作。而当不存在障碍物则完成泊车过程。4.6 LCD1602液晶显示程序LCD1602液晶屏主要时将超声波模块所测得的数值显示出来,并且呈现给驾驶者,使其更能直观的将小车车尾与障碍物的距离显示出来,以提醒驾驶者注意平安。LCD1602液晶显示程序中初始化程序局部如下所示:void LcdInitiate(void)delay(15);WriteInstruction(0*38);.delay(5);WriteInstruction(0*01)

50、;delay(5);以上代码为使用LCD1206液晶显示屏之前要对其进展初始化。随着液晶屏的初始化操作完成以后,就该对其忙检测来确定LCD液晶屏当前的状态。LCD1602液晶显示程序中显示程序局部如下所示:void WritemandLCM(unsigned char WCLCM,BuysC) if (BuysC) ReadStatusLCM();LCM_Data = WCLCM;LCM_RS = 0;LCM_RW = 0;LCM_E = 0;LCM_E = 0;LCM_E = 1;unsigned char ReadDataLCM(void)LCM_RS = 1; LCM_RW = 1;LC

51、M_E = 0;LCM_E = 0;LCM_E = 1;return(LCM_Data);.以上所显示程序代码就是在忙检测和显示设置方面完成的前提下,进展数据的读与写的过程,并且将得到的数据显示在液晶屏上。让使用者能够更加直观的知道所获得的数据。第五章 自动停泊小车的测试第一次测试的时候伴随着我紧的心情,小车还是出现了一些小问题。不过我并没有气馁,经过屡次调试后,小车能实现功能,并且运行得十分流畅。不管是L298N电机驱动模块,还是超声波测距模块、红外避障模块,都能正常工作。LCD显示屏和蜂鸣器工作状态也没有异常。本次设计主要考虑的问题有:1、小车是否需要自动寻找泊车位置;2、小车的初始位置如

52、何选择;3、切入角度大小是多少;4、超声波模块测得与前方距离为多少时向前移动;5、如果需要向前移动,需要移动多少。遇到以上问题后开场研究解决方法,并且经过无数次的测试、改良。到最后解决问题也好点了不少时间,不过,问题都已迎刃而解:1、此次涉及小车不需要自动寻找停车位,那样会多附加很多功能,难以实现;2、初始位置应该与左侧的障碍物平行;3、入弯切入角约为40;4、如果超声波模块测得的距离为危险距离时,小车需要向前移动;5、移动的距离为脱离超声波测得的危险距离即止。设计的缺乏:此次设计完成后,小车可以实现的功能符合课题的根本要求,虽然在制作、调试过程中历尽艰辛,并付出了很多,但是设计中还存在着缺乏

53、和需要改良的地方,具体如下:1、需要计算好地面与车轮的摩擦,会导致误差;2、小车可以自动寻找车位,并完成倒车;3、主函数太大,运行时会出现问题;4、对电机的控制不准确,会出现碰撞;5、万向轮有时会影响小车的前进方向。升级的方向:基于以上缺乏,小车需要改良改良的方向大致为一下点:首先,对车轮进展升级,并且增加车身重量,如此可以对抗摩擦力,并减小摩擦力带来的误差。其次,对单片机进展升级,变为可以进展更强大的数据处理的芯片,在对此进展功能附加,让小车完成自动寻找车位,并且完成倒车;然后对程序进展调整,简化主函数,这样有利于程序更好的运行,并且在运行期间不会出错;而且在功能改良时程序更加简易明了。最后

54、,对万向轮进展改良,由于小车底盘的原因,电池盒的位置和万向轮离得太近,导致万向轮不能随意转动,方向也跟着受影响,不能改变。结 论在大学的最后这段时间里,我把全身心投入到毕业设计中去,虽然学校给的时间是两个月,但由于自身原因和课题原因,我不得不提前准备,期间尝遍了设计带给我的酸甜苦辣。历时三个月,设计终于完成了,我在此过程中学到了很多,也懂得了很多。虽然我做出来的设计与期望相差很大,但我看着自己的成果还是很欣慰,很快乐。我感觉最后的这次设计教会我们的东西不比这大学四年来学到的东西少,这些都是走向社会以后的珍贵经历。它让我知道只有不断摸索,不断创新,不断超越自己才能扫尽眼前的雾霾,迎接温暖的,创造

55、美好的新生活。四年大学中我学到了不少知识,不过这些知识的绝大局部都是一些理论知识,虽然有用,但是无法应用到实践中去。但是通过此次设计,使我把课堂上学到的C语言知识、单片机知识全部应用到实践中去,让理论与实践有了完美的结合,在此结合的过程中让自己的知识得到强化和复习, 温故而知新,学到了不少新的知识。还对Keil C51软件和STC_ISP软件使用方法得到了加固。并且让我感觉到自己的知识面和动手能力等多方面都得到了加强,比起以前更上一层楼。我也明白了单单掌握理论知识无异于纸上谈兵,单单掌握实践,就像无头苍蝇,理论与实践是不可别离、相辅相成的。除了对知识的掌握和深化,我还知道了团队的重要性,因为没

56、有同学们的帮助,此次设计也就很难完成,团队作用是伟大的。致 本次设计历时数个月,到最后能够顺利完成少不了各位教师的悉心指导与各位同学们的热心帮助。如果不是他们,我在设计制作期间遇到的无数困难将会无法度过。首先我要感我的指导教师博教师,他在此期间,不辞辛苦,对我进展了无私的指导,使我在设计进展期间得到了很大的帮助,并且不厌其烦的为我讲解各类设计中所用到的知识。其次,我要感教研组的其它教师,因为在我的导师不在或者忙碌时,我遇到困难后经常麻烦他们,不过教师们都会细心地为我讲解。还有实验室的迟明玉教师,在设计的制作过程中,所需要的工具和局部器件都由迟教师为我提供。最后我要感我的同学们,每当一个人遇到问

57、题时,其它同学都会无私的利用自己的时间帮助其解决问题,让我感觉到了集体的力量,让我明白了只要我们团结,没有什么不可战胜。尊敬的教师和同学们,没有你们的帮助我的设计也不能顺利完成,你们,!参考文献1尤晴曦,洪兴:基于变论域理论的自动倒车控制,师大学学报,2005.2吴锴:智能自动泊车系统研究,2008.3宋金泽:自主泊车系统关键技术研究,国防科技大学博士学位论文,2009.4王为青,程国刚:KEILC51应用开发技术,人民邮电,2006.5高海生:单片机应用技术大全,西南科技,2003.6朝青:单片机原理及接口技术,航天航空大学,2004.7玲:平行泊车方法研究与仿真,长安大学硕士论文,2009

58、.8毅刚,喜元,宇:单片机原理及应用,2000.9何立民:单片机高级教程,航天航空大学,2001.10晓安:MSC-51单片机原理及应用,*大学,2001.11广第:单片机根底,航天航空大学,1999.12*惠民,安德宁:单片机微型计算机原理及应用,邮电大学,2001.13夏继强:单片机实验与实践教程,航天航空大学,2001.14志强,胡辉:单片机应用系统设计实践指南,2003.15肖红兵:单片机应用技术,人民邮电,2005.附 录附录一源程序:变量以及函数的声明:-. z#include #include #define uchar unsigned char #define uint un

59、signed int #define LCM_Data P0 sbit BZ_L=P16; sbit BZ_R=P17; sbit T*=P31; sbit R*=P32; sbit IN1=P10; sbit IN2=P11; sbit IN3=P12; sbit IN4=P13; sbit PWM1 = P14;sbit PWM2 =P15;sbit Sound=P37;sbit LCM_RW = P25; sbit LCM_RS = P26;sbit LCM_E = P24;bit succeed_flag;#define Busy 0*80 void Delay5Ms(void); u

60、nsigned char ReadDataLCM(void);unsigned char ReadStatusLCM(void);unsigned char code Cls = ;unsigned char code ASCII15 = 0,1,2,3,4,5,6,7,8,9,.,-,M;static unsigned char DisNum = 0; unsigned int time=0;unsigned long S=0;bit flag =0;unsigned char disbuff4 = 0,0,0,0,;void WriteDataLCM(unsigned char WDLCM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论