基于单片机的倒车系统设计毕业论文.doc_第1页
基于单片机的倒车系统设计毕业论文.doc_第2页
基于单片机的倒车系统设计毕业论文.doc_第3页
基于单片机的倒车系统设计毕业论文.doc_第4页
基于单片机的倒车系统设计毕业论文.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

毕业论文(设计)基于单片机的倒车系统设计学 生 姓 名: 王彤 指导教师: 姜凤娇 副教授 专业名称: 电子信息工程 所在学院: 信息工程学院 2015 年 6 月目录摘 要IAbstractII第一章前言11.1研究目的和意义11.2国内外发展现状11.3本文研究的主要内容1第二章 系统硬件电路的设计22.1系统总体方案设计22.2系统相关器件的介绍22.3系统硬件方案的设计12第三章 系统软件方案的设计173.1主程序设计及其流程图173.2超声波测距的计算183.3程序的主要算法20第四章 系统误差分析及解决方案254.1影响超声波探测的因素254.2超声波测距的误差分析254.3误差解决方案26结论29致谢30参考文献31附录32大连海洋大学本科毕业论文(设计) 摘要摘 要随着交通运输业进入一个兴盛的时代,以及社会经济技术水平不断地提高,汽车的数量日益增加,呈现出大幅增长的趋势。但是就在汽车的日益普及的同时,在倒车以及停车的过程中出现的事故也越来越多。为了减少事故的发生,具有反应灵敏、安全可靠以及成本较低的汽车防撞预警系统成为人们日益迫切的需求。在这种情况下,在倒车以及停车具有有利作用的倒车报警器就产生了。在本文中主要阐述了以单片机为平台设计的脉冲反射形式的利用超声波进行距离测量和红外传感循迹的系统。此设计中采用的核心单片机芯片为STC89C52,发挥超声波和红外传感的优点,综合STC89C52单片机与利用超声波测量距离和红外传感循迹的模块。介绍了利用超声波设计的传感器,整个电路分为了主程序以及很多的子程序模块构成,其中子程序模块包括预置、发射、接收、显示以及报警等。论文中阐述了用到的软件的构造,以及功能的完成需要经过编程来实现。其中滤波、放大以及整形等方面的电路都属于硬件电路。对系统的干扰原因以及产生的误差进行分析,最后得出解决问题的方法。这个系统对于软件与硬件的结合合理,具有较强的抗干扰性能以及较好的实时性能等优势,对系统进行升级扩展之后就能够在汽车倒车时完成报警。关键字:超声波传感器,红外传感器,单片机,测量距离,汽车倒车系统,报警II大连海洋大学本科毕业论文(设计) AbstractAbstract In order to reduce the happening of the accident, a responsive, safe and reliable and low cost of automotive anti-collision warning system become increasingly pressing needs. In this case, has favorable effect in reverse and parking of the reverse alarm is generated.In this article mainly expounds the design with the single chip processor as the platform of the pulse reflection in the form of an ultrasonic distance measurement and infrared sensor tracking system. Used in the design of the core for STC89C52 single-chip microcomputer, play advantage of the ultrasonic and infrared sensors, integrated STC89C52 microcontroller and the use of ultrasonic distance measurement and infrared sensor tracking module. Introduces the design of using ultrasonic sensors, the whole circuit is divided into the main program and a lot of subroutine modules, subroutine modules including presets, launch, receive, display and alarm, etc. The thesis expounds the use of software structure, and function of programming to implement the complete needed. Including filtering, amplifying and shaping circuit belong to hardware circuit. Disturbance to the system reason and the error is analyzed, finally it is concluded that the method to solve the problem.The system for the combination of software and hardware is reasonable, with strong anti-interference performance and good real-time performance and other advantages, the system upgrade expansion when you will be able to reverse the car after complete report to the police.Key words:ultrasonic sensors, infrared sensor, single chip microcomputer, the measured distance, car reversing system, call the police大连海洋大学本科毕业论文(设计) 第一章 前言第一章 前言1.1研究目的和意义随着交通运输业进入一个兴盛的时代,以及社会经济技术水平不断地提高,汽车的数量日益增加,呈现出大幅增长的趋势。但是就在汽车的日益普及的同时,在倒车以及停车的过程中出现的事故也越来越多。为了减少事故的发生,具有反应灵敏、安全可靠以及成本较低的汽车防撞预警系统成为人们日益迫切的需求。在测量距离时使用较为广泛的就是利用超声波测量距离,这种方法较多的用在汽车倒车的防止碰撞的报警系统中以及汽车的左右前后防撞的距离的测量。在车辆倒车时,根据反射的性质,超声波能够对车辆后面的物体的位置进行检测,并通过蜂鸣器以及指示灯将具体的距离以及位置的信息向驾驶员进行传递,这样就能够实现倒车的安全性。根据调查显示,在中国因为车后的盲区而产生的交通安全问题占的比重约为30%,在美国比重约为20%,因此为了将车辆的安全系数提升,将车后的盲区范围缩小,交通管理部门提出用户安装的后视镜应该曲率多视野大,尽管这样事故的数目仍然没有被有效的降低。由于车后盲区具有较大的潜在性的不安全因素,这就意味着人的生命财产安全就会受到威胁,而且也严重伤害人的精神。初学者以及女司机在倒车时经受的压力就会更大。由此看来,解决这些问题的最好的办法就是将超声波倒车报警系统设计出来进行应用。1.2国内外发展现状随着社会的发展,辅助司机倒车的装置在技术方面经过了数次的改进,生产的这几代的产品无论从价格、性能上,还是外在构造上都具有独特的方面,当前用到的比较广泛系统包括倒车后视系统、超声波测量距离倒车报警系统以及车载监测系统等。在刚起步的阶段,只有奔驰以及宝马等高档的车辆才会采用具有倒车报警系统的装置。随着近几年汽车行业的兴旺发展,倒车报警系统在一些中高档的车辆中实现了普及。甚至在国内中档主流车型中几乎都配套倒车报警系统装置,而且很多汽车厂也纷纷开始配套生产倒车报警系统产品。毫无质疑的是在车辆市场中,倒车报警系统的应用将越来越普及。而且智能化的轨迹报警系统已经成为当前市场发展的方向。1.3本文研究的主要内容在本文中主要阐述以单片机为平台设计的脉冲反射形式的利用超声波进行距离测量和红外传感探测循迹的系统。此设计中采用的核心单片机芯片为STC89C52,发挥超声波的优点,综合利用STC89C52单片机与超声波测量距离和红外传感器探测循迹的系统,使得小车实现倒车和循迹的功能。40 大连海洋大学本科毕业论文(设计) 第二章 系统硬件电路的设计第二章 系统硬件电路的设计2.1系统总体方案设计本设计采用STC89C52单片机控制系统、电机驱动电路系统、超声波检测系统、红外循迹系统、液晶显示系统和电源系统。探头将超声波发射出来采用的控制电路为发射电路,超声波在碰到物体时会反射,接收探头接收返回的超声波,按照脉冲对其中的时间差进行推算,利用STC89C52单片机中处理器将与物体之间的距离计算出来,然后计算出的距离会在LCD1602液晶显示屏上显示出来,预先输出一个最小距离,当距离小于了这个最小距离,小车就会自动发声报警。单片机实时检测红外循迹系统在黑线跑道上的状态,并自主调整小车的方向。在循迹的跑道上检测前方的距离,当前方距离小于20厘米时,小车避开障碍物往回继续循迹。小车把前方障碍物的距离显示在LCD1602液晶上,该设计还采用L298驱动芯片驱动小车的行走。系统总体框图如图2-1所示:电源部分减速电机超声波检测MCUL298驱动液晶显示循迹模块图2-1 总体结构框图 2.2系统相关器件的介绍 大连海洋大学本科毕业论文(设计) 第二章 系统硬件电路的设计2.2.1 STC89C52单片机在本设计的系统中占有最重要位置的是STC89C52单片机。单片机STC89C52是由 STC公司生产出来的,它是一种性能相当高的CMOS 8位微控制器,具有功耗较低、性能较好等优势,并且在Flash存储器中可编程系统有8k之大。它的内核采用是MCS-51内核,并且在此基础上进行了一定的改善,使其拥有了一些传统的51单片机不能实现的性能。单芯片中包含的CPU为8位以及可编程Flash,这样使得STC89C52就能将更多灵活度较高以及效果显著的方法提供给许多的嵌入式的控制使用体系。它具有如下的性能:512字节的RAM,8k字节的Flash,看门狗式的定时器,I/O 口线为32位,4KBEEPROM,16 位定时器/计数器3个,MAX810式复位电路,外部中断包含4个,7向量的具有4级中断结构的有1个(与传统的51单片机的5量级2级中断构造实现兼容),全双工式的串行口。而且STC89X52的静态逻辑操作可以实现到0Hz之低,在省电的模式下可以兼容软件的使用。非工作形式下,CPU也处于非工作状态,但是定时器/计数器、中断、RAM以及串口可以继续进行;在掉电保护状态下,可以保留RAM中的内容,冻结振荡器,单片机中的所有结构都将停止工作,这种状态维持到硬件复位或者出现下一个中断。STC89C52单片机的基本组成框图如图2-2所示:图2-2 STC89C52单片机结构图STC89C52单片机的引脚如图2-3所示:图2-3 STC89C52单片机引脚图STC89C52单片机部分引脚的介绍:1.时钟电路引脚XTAL1 和XTAL2:XTAL2(18 脚):接外部晶体和微调电容的一端;在片内它是振荡电路中反相放大器的输出端,晶体固有频率就是振荡电路的频率。如果需用外部时钟电路时,该引脚输入外部时钟脉冲。振荡电路是否正常工作,可用示波器查看XTAL2 端是否有脉冲信号输出来检查。XTAL1(19 脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚必须接地。2.控制信号引脚RST,ALE,PSEN 和EA:RST/VPD(9 脚):RST 是复位信号输入端,高电平有效。输入端保持备用电源的输入端。当主电源VCC 发生故障,降低到低电平规定值时,将5V 电源自动两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。RST 引脚的第二功能是VPD,即接入RST 端,为RAM 提供备用电源,以保证存储在RAM 中的信息不丢失,从而合复位后能继续正常运行。ALE/PROG(30 脚):地址锁存允许信号端。当8051 上电正常工作后,ALE 引脚不断向外输出正脉冲信号,此频率为振荡器频率的1/6。CPU 访问片外存储器时,ALE 输出信号作为锁存低8 位地址的控制信号。平时不访问片外存储器时,ALE 端也以振荡频率的1/6 固定输出正脉冲,因而ALE 信号可以用作对外输出时钟或定时信号。如果想确定8051/8031 芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出。如有脉冲信号输出,则8051/8031 基本上是好的。ALE 端的负载驱动能力为8个LS 型TTL(低功耗甚高速TTL)负载。此引脚的第二功能PROG 在对片内带有4KB EPROM 的8751 编程写入(固化程序)时,作为编程脉冲输入端。PSEN(29 脚):程序存储允许输出信号端。在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。此引肢接EPROM 的OE 端(见后面几章任何一个小系统硬件图)。PSEN 端有效,即允许读出EPROMROM 中的指令码。PSEN 端同样可驱动8个LS 型TTL 负载。要检查一个8051/8031 小系统上电后CPU 能否正常到EPROMROM 中读取指令码,也可用示波器看PSEN 端有无脉冲输出。如有则说明基本上工作正常。EA/VPP(31 脚):外部程序存储器地址允许输入端/固化编程电压输入端。当EA 引脚接高电平时,CPU只访问片内EPROM/ROM并执行内部程序存储器中的指令,但是当PC(程序计数器)的值超过0FFFH(对8751/8051 为4K)时,将自动转去执行片外程序存储器内的程序。当输入信号EA 引脚接低电平(接地)时,CPU 只访问外部EPROM/ROM 并执行外部程序存储器中的指令,而不管是否有片内程序存储器。对于无片内ROM 的8031 或8032,需外扩EPROM,此时必须将EA 引脚接地。此引脚的第二功能是VPP 是对8751 片内EPROM固化编程时,作为施加较高编程电压(一般12V21V)的输入端。3.输入/输出端口P0/P1/P2/P3:P0口(P0.0P0.7,3932 脚):P0口是一个漏极开路的8 位准双向I/O口。作为漏极开路的输出端口,每位能驱动8个LS 型TTL 负载。当P0 口作为输入口使用时,应先向口锁存器(地址80H)写入全1,此时P0 口的全部引脚浮空,可作为高阻抗输入。作输入口使用时要先写1,这就是准双向口的含义。在CPU 访问片外存储器时,P0口分时提供低8 位地址和8 位数据的复用总线。在此期间,P0口内部上拉电阻有效。P1口(P1.0P1.7,18 脚):P1口是一个带内部上拉电阻的8 位准双向I/O口。P1口每位能驱动4个LS 型TTL 负载。在P1口作为输入口使用时,应先向P1口锁存地址(90H)写入全1,此时P1口引脚由内部上拉电阻拉成高电平。P2口(P2.0P2.7,2128 脚):P2口是一个带内部上拉电阻的8 位准双向I/O口。P口每位能驱动4个LS 型TTL 负载。在访问片外EPROM/RAM 时,它输出高8 位地址。P3口(P3.0P3.7,1017 脚):P3口是一个带内部上拉电阻的8 位准双向I/O口。P3口每位能驱动4个LS型TTL负载。P3口与其它I/O 端口有很大的区别,它的每个引脚都有第二功能,如下:P3.0:(RXD)串行数据接收。P3.1:(RXD)串行数据发送。P3.2:(INT0#)外部中断0输入。P3.3:(INT1#)外部中断1输入。P3.4:(T0)定时/计数器0的外部计数输入。P3.5:(T1)定时/计数器1的外部计数输入。P3.6:(WR#)外部数据存储器写选通。P3.7:(RD#)外部数据存储器读选通。2.2.2 超声波传感器声波在频率达到20kHz以上时就被称为超声波,它具有较好的方向性,较强的穿透力,在集中的声音能量的获取方面较为简单,在水中也能有较远的传播,在距离测量,速度测量,焊接,清洗消毒杀菌等方面均有应用。可以广泛的应用在工业、军事以及医学方面。其频率的最小值大概与人的听觉的最大值相等,这就是它被称为超声波的原因。超声波具有如下的特性:(1)传播中具有较强的方向性,聚集能量比较简单。(2)各种介质中都可以实现超声波的传输,传输的距离可以达到很远。(3)传播声音的介质和超声波可以互相促进,能够较为简单的实现信息的传递。(4)超声波传播的能量很高。(5)干涉、反射、共振以及叠加等状况在超声波中都会在超声波下生成。(6)当超声波的传播介质为液体时,在界面上会有比较大的冲击以及空化等情况的产生。超声波传感器产生所依据的就是超声波所具有的特点。超声波作为一种机械波,其振动频率比声波的频率要高,其生成是在电压激励的情况下经过换能晶片实现的。它有较高的频率,较短的波长以及存在的绕射状况较小,尤其是具有较好的方向性,可以变成射线实现定点的传输。在介质为固体或者液体时,超声波具有较强的穿透能力,在不能透过阳光的固体中,可以实现几十米的穿透。在遇到分界面或者杂质的情况时,超声波会发生明显的反射形成回波,在遇到移动的物体时会有多普勒效应发生。广泛应用在工业、国防、生物医学等方面。超声波传感器具有频率特性、阻抗特性以及指向特性等方面的基本特性。(1) 频率特性图2-4 超声波传感器的频率特性图2-4是超声波发射传感器的声压能级和灵敏度。超声波发射传感器的中心频率为40kHz,在此处超声波发射传感器生成最强的超声波的能量,因此我们可以说在此处超声波发射传感器生成了最高的超声声压能量级。随着向两侧的发展,声压的能级会有很大的衰减。所以在超声波发射传感器的应用中使用的交流电压应该靠近中间频率。并且超声波在发射传感器频率特性上相似于接收传感器。频率为40kHz的曲线上是最为突起的地方,而且是输出幅度最大的电信号,因此可以看出具有最高灵敏度的频率值就是40kHz。超声波传感器在选用频率上具有较好的特性。超声波接收传感器在频率特征方面的曲线与输出端的外置电阻R存在的影响较大,在具有很大的R的情况下,频率具有高翘共振的特性,而且在此时的共振频率下具有很高的灵敏度。但在R很小的情况下,就会具有很平滑的频率特征,并且带宽较宽,此时灵敏度会减小。(2) 指向特性在超声波传感器中用到的压电晶片实际上就是个小圆片,表层的任何一个点都能够看作是振荡源,辐射出的波是半球形的,产生的这些是无指向性的子波。然而在远离超声波传感器的任何点的声压都需要将子波进行叠加得到总和,实际上就是衍射。如图2-5所示: 图2-5 超声波传感器的指向特性超声波传感器的指向图的组成部分为一个主瓣以及一些副瓣,在物理方面所指的意思就是电压在0o时达到最大,声压随着角度的增加而不断降低。此传感器所对应的大部分是40o到80o之间的角度。(3) 阻抗特性当输出达到最大时所产生的串联谐振频率就是发送传感器最常用的工作频率,具有最高灵敏度的接收的并联谐振频率就是接收传感器的最佳的工作频率。实验验证之后得到,发送传感器与接收传感器工作的频率基本上是一样的。如图2-6所示:图2-6 超声波传感器的阻抗特性因此超声波传感器在实际中使用均在靠近谐振频率的范围内。接收超声波的头的型号需要与发射头的型号相对应,最重要的是具有相同的谐振频率,不然就会没有办法达到共振,接收情况就会受到干扰,也有可能会接收失败。而且,超声波传感器的驱动需要较高的电压,是电压型的,具有较高的电阻,较小的驱动电流。超声波传感器工作时依据的原理。在弹性介质中,超声波是一种机械型振荡,包括的两种形式分别为横波(横向振荡)和纵波(纵向振荡)。超声波的传播介质可以是固体、液体或者气体,但是具有不一样的传播速度。而且超声波中存在反射以及折射的现象,其能量在传递时呈现下降趋势。超声波传播介质是空气时,具有比较低的频率,大概为几十kHz,但其介质是液体或者固体时,就具有较高的频率。其下降的速度在空气中大于固体和液体中,因此传递的距离也比液体和固体近。磁致伸缩的镍铁铝合金和电致伸缩的压电晶体,这两种材料是超声波传感器用到的最重要的材料。超声波传感器由压电晶体构成的是可逆的,它生成超声波的原理是实现电能到机械能之间的转化,当超声波接收到时,也能实现带能的转化,因此分为接收器和发送器两类。有的超声波传感器可以同时当作接收和发送。在此次设计中阐述的超声波传感器是小型的,在接收和发送之间存在着很小的不同,40-45kHz以及23-25kHz是它的工作频率,在空气中传递是其主要的应用。这种传感器可以应用在距离的测量、防盗以及遥控等方面。超声波传感器的构成主要包括接收传感器、接收传感器、电源以及控制模块。接收传感器的构成部分为放大电路与陶瓷振子换能器;发送传感器的构成包括陶瓷振子换能器与发送器;其中换能器实现波的接收从而发出机械振动,完成电能的转换,并将其当作接收器输出,因此实现检测发出的超声波。运用超声波完成距离测量的原理:利用超声波进行测量的电路中,脉冲方波会由输出端进行输出,接收超声波同发射超声波之间的时间差就是脉冲方波的宽度,脉冲的宽度与其被测的距离的远近呈正相关的关系,并且距离也正比于脉冲的数量。利用超声波测量距离具有往返时间检测、声波幅值检测以及相位检测等方法。其中声波幅值检测法中反射波会干扰声波检测的结果,相位检测的方法虽然具有较高的准确度,但其检测的距离是一定的。所以在本次设计里我采用了超声波往返时间检测法,其测量原理图如图2-7所示:图2-7 超声波测距原理图图2-8 超声波时序图如图2-8所示,通过计算超声波往返时间是本设计中用到的方法。在T0时刻单片机会有方波的发射,而且会开启定时器进行计时,在回波被接收到时,会在单片机的端口有一个负向的跳变,单片机中的中断部分就会被响应,此时定时器的计数就会中断。通过对时间差的推算,介质中超声波的传递时间t就会获得,这样距离障碍物的长度就可以通过计算得到。2.2.3 L298电机驱动芯片本设计选用了L298电机驱动芯片,如图2-9和2-10所示。ST公司生产的L298芯片,它的驱动电机具有的电压较高以及电流较大的特点。此芯片具有以下的特征:(1)工作时需要较高的电压,其中46V是可以到达的最高的电压。(2)电流的输出较大,瞬时电流的峰值能够达到3A,连续的工作电流能够到2A。(3)其中还包括电压较高以及电流较大的H桥的全桥形式的驱动器2个,它能够实现对步进机、直流电动机、感性负载以及继电器等的驱动。(4)控制电平信号时应用的逻辑是标准TTL。(5)包含的使能控制端为2个,禁止或者准许设备工作不会受到输入信号的干扰。(6)包含的一个输入端为逻辑电源,在低压的状况下就可以实现内在逻辑电路的工作。(7)能够将检测电路进行外置,控制电路对反馈的变化量进行接收。 图2-9 L298图2-10 L2982.2.4 红外传感器光电对管中的RPR220型光电探测器是反射型的,砷化镓的红外线LED是它的发射器,具有的灵敏度较高的平面为硅的光电三极管是它的接收器。RPR220用到的封装形式是DIP4封装,这种封装有以下几方面的特性:灵敏度可以通过塑料透镜来提升;受到的离散光的干扰会因内在的可见光的过滤器而降低;结构较为集中,体积较小;在LED发射的光被反射时,三极管实现导通低电平输出。这个电路较为简单,具有稳定的工作状态。因此,本设计采用RPR220型光电对管来做循迹传感器。2.2.5 LCD1602液晶显示器如图2-11所示,LCD1602液晶显示器就是我们通常说的1602字符型的显示器,这是一种液晶模块,特点是点阵型并且可以对数字、字母以及符号进行表示。这种显示器是由多个5X11、5X7的点阵字符形成的,屏幕上显示出的一个字符都是由一个点阵字符实现的。但是,这种显示器有一个缺点,图形并不能在它上面很好的显示。这是由于每行和每点阵字符位都是有间隔的,它们就具有了行间距、字符间距的用处。LCD1602的每一行具有16个字符液晶模块并且具有两行,通常的表示方法为16X2。图2-11 LCD1602液晶显示器 液晶显示器应用在生活中的很多方面,常见的电子器件以及家用电器中我们都能够看到,例如,万用表、计算器、电子表,电视机,电脑显示屏等等,我们看到的显示的东西主要是专用符号、图形、数字。LED数码管、发光管、液晶显示器一般是在单片机的人机交流界面里的。其中发光管和LED数码管是比较常用的,软硬件都比较简单。而LCD1602液晶显示器的优点很多,主要有丰富的显示内容、较低的功耗、较小的体积、较轻的重量及较薄的厚度等等,所以,在很多方面都有得到充分的应用,尤其是在应用系统的功耗低以及小而精的仪表中。因此,本设计采用这种液晶显示器。2.3系统硬件方案的设计2.3.1 主控制系统设计 图2-12 单片主控电路主控制系统电路如图2-12所示,单片机主控制系统是由单片机、复位电路、时钟电路构成。因为STC89C52 单片机的工作电压范围是4V-5.5V,所以通常给单片机外接5V的直流电源,连接方式为单片机中的40脚VCC接 +5V,而20脚VSS接电源地端。复位电路,就是利用把电路恢复到起始的时候,从而就能够知道单片机开始时的工作设定,这样就能够对单片机的启动完成了。接下来就是启动过程,接通电源后,单片机就会产生复位信号。若外界环境影响比较严重时,运行中的单片机会出现程序上的错误,这时候就可以通过复位按钮进行纠正,程序就会自动重新开始执行。一般设备上有自动复位和外部按键手动复位,单片机的复位过程是在时钟电路中进行的,给出2个机器周期的高电平并且由RESET端供给。一是在给电路通电时马上进行复位操作;二是在必要时可以手动操作;三是根据程序或者电路运行的需要自动地进行。复位电路大都比较简单,只有电阻和电容组合,再复杂点就有三极等配合程序来进行了。该设计采用的是外部手动按键复位电路,需要接上拉电阻,从而提高输出高电平的值。时钟电路就是单片机的心脏,它控制单片机的工作节奏。时钟电路为振荡电路,它会输出一个正弦波的信号给单片机。是向单片机提供一个正弦波信号作为基准,决定了单片机的执行速度。作为片内振荡器的反向放大器具有XTAL1和XTAL2。在时钟电路中,一个机器周期由12个振荡周期组成,若有频率12MHz的石英晶体振荡器接在外电路中时,振荡周期就得1/12us。2.3,2 超声波测距系统设计图2-13 超声波模块实物如图2-13所示,超声波测距系统选择的是技术成熟的HC-SR04,这种技术能够进行近距离的感应,而且不需要触及就能实现,最短距离为2cm,最长可以到40cm,准确度为3mm。这个模块主要包含了三个方面,分别为接收装置,发射装置以及控制系统。这一系统主要的依据是:根据IO口TRIG的工作来进行距离的测量,把高电平的时间最低保持在10us,这时,该模块就会主动的传出8个在40kHz的方形波,来确定有没有数据的传送。当存在数据时,ECHO就会发生作用,产生高电平,而这种电平所耗费的时间就是超声波进行一个来回的记录。因此我们就能达到远近的计算,间隔为高电平耗费时间与声音传播速度乘积的二分之一。其中VCC 供5V 电源,GND 为地线,TRIG 触发控制信号输入,ECHO 回响信号输出等四支线。STC89C52单片机传送出40kHz的信号,通过放大处理随后进行反射,然后作为输入信号传送到芯片,锁相环对其进行锁定,这时芯片的中断发挥作用,得到经历的时间,通过一系列的过程之后,将在数码显示器上得到结果。图2-14 超声波测距系统框图对检测到的超声波系统最大可测量距离的影响主要有以下几点,分别为:信号的变化,障碍物的自身特性,障碍物表面的光滑程度以及接收装置的灵敏度。最小可测量距离的大小受接收装置的能力影响。2.3.3 循迹系统电路设计 图2-15 循迹原理图如图2-15所示,对于实验设计依据的理论进行了详细的讲解,主要依据的是循迹的理论,小车在前行的过程中,主要在一张带有黑线的白色纸张上,由于两种颜色对于光的反射条件不同,就能在前行的过程中准确的知道哪种是“路线”。因此要想实现这种原理就用到了红外线,根据红外线进行发射,不仅容易实现,同时也得到了准确的结果。在实验中采取红外线的方法,主要依据的是它的反射特性,将色彩能够准确的辨别出来。就像上文中提到的那样,在放出红外线的过程中,由于小车是在带有黑线的白纸上前行的,如果打在白纸上,就会发生漫反射,这样就能够收到信号;如果打在黑线上就不一样了,由于黑色可以吸收红外线,那么就不存在反射,此时就得到了区分,这两种结果的对比是通过LM339来实现的,这样就完成了判断。2.3.4 液晶显示系统电路设计液晶显示系统采用LCD1602液晶显示器,它能够在液晶上清晰的显示字符和数字。液晶的命令操作脚是RS、RW、EN接在单片机的P35、P36、P37脚。数据脚D0D7分别接单片机的P1口。其电路图如图2-16所示图2-16液晶显示电路2.3.5 电机驱动系统的设计电机主要是靠电路实现驱动的,通常情况下都会利用H桥式,L298N自身就可以完成这种电路的设计,不必外界电路辅助,因此采用了L298N,从系统接收对于小车的转动情况的信号来实现。驱动电路原理图如图2-15所示,L298N的5、7、10、12四个引脚接到单片机上,单片机通过编程就可以实现两个直流电机的正反转。图2-17电机驱动电路2.3.6 电源部分的设计电源系统的设计主要采用7805芯片,使用7805芯片搭建电路的优点是简单、实用。因为78系列在形成稳压电源的过程中,不需要过多的外部元件的辅助,而且其本身对于电流也有一定的检测和维护,在散热方面,也存在一定的系统,因此安全问题有了最大的保障,同时所需资金较低,易于接受,并且能够完全满足小车单片机控制系统和L298N芯片的逻辑供电的供电需要,所以本设计采用该电源系统。7805芯片有3个引脚,分别为输入IN端、输出OUT端和接地GND端,通常情况下可以提供1.5A的电流,在散热足够的情况下可以提供大于1.5A的电流。7805芯片的输入电压可以为9V、12V、15V不等,输出电压稳定在5V,误差不超过正负0.2V。基于这样的情况,再结合电机的工作电压,选取了6节9V干电池作为7805芯片的输入电源,电源部分电路图如图2-18所示:图2-18 电源接口电路大连海洋大学本科毕业论文(设计) 第三章 系统软件方面的设计第三章 系统软件方案的设计3.1主程序设计及其流程图 循迹流程图如图所示:开始单片机初始化外小车避开障碍物小车调整角度回到跑道上循迹是否调整结束是否有障碍物显示当前检测的距离读出前方的距离YNYN 图3-1循迹流程图由主程序、超声波发生程序、超声波接收程序及显示程序构成了超声波测量距离的软件设计。因为其程序中涉及到复杂的计算,精细的计算程序运行时间,所以我采用C语言编程来设计本程序。 主程序是对系统环境的初始化,设计数为定时器0,定时为定时器1,EA为置位总中断允许位。主程序运行后,进行定时的测量距离判断,当程序中cl=1,小车完成一次测量,在程序的设计中,超声波测量距离的频度是2次/秒。在整个程序中,系统对测量结果进行循环显示。调用超声波测距的子程,单片机产生六到八个频率为38.46kHz超声波脉冲,释放在超声波发射头上,当超声波发射头发送完超声波后,内部计时器T0被启动开始计时。有时超声波会被直接从发射头传送到接收头上,这样会造成直射波触发。为了避免这一现象,我们让单片机延时1.5 -2ms的时间(这个值被称为盲区值,以至于超声波测距仪会有一个最小可测距离的原因),然后再运行对单片机P3.7脚的电平判断程序。当检测到P3.7脚的电平由高电平转为低电平时,立即停止T0计时。由于本次设计所用到的单片机的晶振是12 MHz,所以计时器每计一个数所用的时间是1us。当接收成功的标志位被超声波测距子程序检测到时,计算计数器T0中的数(超声波来回所用的时间),于是障碍物与测距仪之间的距离就被计算出来了。判断是否存在阻碍根据的是超声波传感器传出的信号。如果存在阻碍,那么信号碰到障碍物就会反射回去,但是在实际过程中我们需要提前设定一个时间,若超过了这个时间范围,反射信号不会被系统检测到,然后在此处系统又将会重新发送一个超声波信号;若在这个时间内,反射信号被系统检测到了,把信号在空气中的传播速度和接收与发射之间的时间差相乘,就能得到障碍物与小车之间的距离。3.2超声波测距的计算这种理论的依据是根据超声波传感器发出的超声波,在遇到阻碍时所反射回的信号,再根据在这段时间内所经历的时间差值,得到这个障碍物与超声波传感器的远近,这种远近所依据的公式为:l=s/2=ct/2。在上面的公式中,障碍物与传感器的间距用l来表示,信号在传送和接收这两段时间内走的路程为s,在温度为20时声音的传播速度为c,在这个过程中完成的时间为t。在发送出超声波的同时还要将时间设定装置进行计时,利用定时器的计数功能记录超声波发射的时间和收到反射波的所具有的时间差。当收到超声波反射信号时,接收电路的输出端就会产生一个负跳变,并且在INT0或INT1端产生一个中断请求信号,即单片机响应外部中断请求,执行外部中断服务子程序,然后读取时间差,计算小车与障碍物之间的距离。超声波测距的过程可以用如图3-2所示的流程图来表示。开始初始化启动定时器=1测量标志=0超声波测距Y距离上限值设定断码转换YN距离盲区值N显示值=显示值=测量断码转换显示N距离0;z-) for(x=110;x0;x-);void LCDWriteCom(unsigned char com)RS_L;RW_L;READ_DATA = com;EN_H;DelayMs(5);EN_L;void LCDWriteData(unsigned char dat)RS_H;RW_L;READ_DATA = dat;EN_H;DelayMs(5);EN_L;/*小车后退函数*/d go()qu_ll = 1; qu_zl =0; qu_zr =0; qu_rr =1; /*小车前进函数*/ void back() qu_ll =0; qu_zl =1; qu_zr =1; qu_rr =0; /*小车左转函数 只有一个轮子动*/void left()qu_ll = 0; qu_zl = 0; qu_zr = 0; qu_rr = 1; /*左转函数 左边轮子后退 右边轮子前进*/void left_s()qu_ll = 0; qu_zl = 1; qu_zr = 0; qu_rr = 1; /*小车停下函数*/void stop()qu_ll = 0; qu_zl = 0; qu_zr = 0; qu_rr = 0; /*小车右转函数 只有一个轮子动*/void right()qu_ll = 1; qu_zl = 0; qu_zr = 0; qu_rr = 0; /*右转函数 左边轮子前进 右边轮子后退*/void right_s()qu_ll = 1; qu_zl = 0; qu_zr = 1; qu_rr = 0; /*小车左转90度*/void left_s_90_while()/小车向左转90度go();/前进一小会让小车转90度时刚好让黑线在小车的中间DelayMs(120);left_s();/左转90度注意这个延时不能太长,只要能让寻迹模块中间的传感离开黑线就好DelayMs(180);che_90_180_break(L);/*小车右转90度*/void right_s_90_while() /go();/前进一小会让小车转90度时刚好让黑线在小车的中间DelayMs(120);right_s();/左转90度注意这个延时不能太长,只要能让寻迹模块中间的传感离开黑线就好DelayMs(180);che_90_180_break(R);/ 白线为 1 黑线为 0void xunnji()if(xun_ll=1) & (xun_l=1) & (xun_z=0) &

温馨提示

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

评论

0/150

提交评论