基于51单片机倒车雷达系统_第1页
基于51单片机倒车雷达系统_第2页
基于51单片机倒车雷达系统_第3页
基于51单片机倒车雷达系统_第4页
基于51单片机倒车雷达系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

基于超声波的倒车雷达系统电子0601郑灵光电子0602潘建标,陈永根2摘要随着科技的发展,人们生活水平的提高,城市发展建设加快,城市给交通系统也有较大发展,其状况不断改善。但是,由于多种原因合成时间住的许多不可预见因素,城市还是经常出现大量的交通事故,特别是倒车时,看不到后方而导致大量的交通事故。因此,设计出好的倒车雷达系统,对于减少城市的交通事故将有一个很好的控制作用。当然这要求倒车雷达系统,具有精度高,抗干扰强,价格应该低,适宜推广等特点,这样基于超声波的测距系统,完全可以胜任此任务。本设计采用以AT89C51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法。整个电路采用模块化设计,由主程序、发射子程序、接收子程序、显示子程序等模块组成。各探头的信号经单片机综合分析处理,实现超声波测距仪的各种功能。在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块。该设计设抗干扰能力较好,实时性良好,误差可以达到MM级,可以有效地解决汽车倒车作用。本系统在倒车时不断测量汽车尾部与其后面障碍物的距离,并随时显示其距离,并用语音及时提示。在不同的距离范围内,不同的温度下测出距离,发出报警信号,以提高汽车倒车时的安全性的仪器。3目录第一章绪论311课题背景,目的和意义312两种常用的超声波测距方案3第2章超声波测距系统设计321超声波测距的原理422超声波测距系统电路的设计4221总体设计方案4222发射电路的设计4223接收电路的设计4224显示模块的设计5225温度补偿模块设计5226语音处理模块5第三章超声波测距系统的软件设531总体流程图532程序及分析6第四章电路调试及误差分析741电路的调试742系统的误差分析7第5章功能扩展74参考文献7附录822第1章绪论11课题背景,目的和意义由于社会的进步,经济的发展和生活水平的不断提高,汽。车数量逐年增长,造成道路交通拥挤不堪,交通事故频繁发生汽车倒车报警器在倒车时不断测量汽车尾部与其后面障碍物的距离,并随时显示其距离,并用语音及时提示。在不同的距离范围内,不同的温度下测出距离,发出报警信号,以提高汽车倒车时的安全性的仪器。22两种常用的超声波测距方案221基于CPLD的超声波测距系统CPLD模块主要由发射模块,16位计时计数器模块,接收模块,顺序执行计数器模块和六选一数据选择器模块五部分组成。其总体框图如图1所示。CPLD模块主要完成超声波的发射、接收和时间的测量。超声波发射模块启动40KHZ的超声波发射,当发射脉冲串达到设定值后,关闭超声波的发射,同时启动六路计时计数器模块开始计时信号经过障碍物反射回来,接收电路接收到回波后,将其进行整形,作为接收模块的信号,当接收完回波脉冲信号后,接收模块输出端发出信号,关闭计时计数器停止工作当所有的回波接收完毕后,顺序执行计数器输出端发出信号启动单片机开始接收数据,通过顺序执行计数器的计数值、数据选择器的选择端与计时计数器的控制端分别读取六路不同的计数值。所有的数据读取完后,清除计时计数器的计数值,准备下一次的循环计数。221基于单片机的超声波测距系统本警器由单片机来控制。整个控制系统由超声波发射电路、超声波接收电路、报警电路、复位电路、显示电路组成。实行实时数字显示测得的距离,在不同的距离范围内发出不同的报警信号,驾驶员可根据个人需要调整设置报警距离,以5减少事故的发生。本作品将采用此种方法。第二章超声波测距系统设计21超声波测距的原理超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为C,根据计时器记录的时间T,就可以计算出发射点距障碍物的距离S,即SCT/2。这就是所谓的时间差测距法。22超声波测距系统电路的设计221总体设计方案该设计总体基于51,包括发射模块,接收模块,显示模块,语音模块,温度补偿模块。由发射电路发射超声波,51计数器从0开始计时,当超声波反射回来,接收电路接收,51停止计时,将所计得得数转化成十进制N,因为使用的12MHZ晶体作时钟基准的89C51单片机定时器能方便的计数到1S的精度,因此系统采用89C51定时器能保证时间误差在1MM的测量范围内。,则将N与1US相乘即可以得到时间,从而利用超声波测距的原理就可以判断距离以是否利用利用凌阳61版的语音处理功能,进行报警及播放当前的距离,温度和超声波传播速度。再者显示器也将显示距离,温度,及超声波传播速度。222发射电路的设计用单片机直接产生的40KHZ信号经过74LS04放大后直接驱动超声波发射探头。223接收电路的设计6将超声波接收探头接收的信号经CX20106红外线专用芯片处理接收,然后送给单片机。224显示模块的设计使用1602液晶屏,与单片机连接,将单片机的距离,温度,超声波数度(声速)传送给液晶屏显示出来。225温度补偿模块设计因为声速在不同温度下的传播速度是不同的,根据补偿公式CC00607TC0为零度时的声波速度332M/S;T为实际温度。采用18B20温度传感器测温,根据测得的温度,来确定具体的声速。226语音处理模块根据手中的现有的材料,利用凌阳61版的语音处理功能,播放出“倒车请注意”并通过51单片机和凌阳的串口通讯,将51测得的距离,温度,声速数据传给凌阳,然后通过凌阳的语音处理将其播报出来。第三章超声波测距系统的软件设计31总体流程图311凌阳模块流程图7初始化发射是否有数据数据处理播报是否31251单片机模块开始发射是否有键按下处理(关中断,定时器)数据接收延时中断接收初始化是串口发送数据,凌阳接收处理否832程序及分析(见附录)第4章电路调试及误差分析51电路的调试(盲区问题)由于超声波发射探头在发射超声波时,接受探头也会接受到超声波,所以在发射超声波时,必须先关外部中断,延时一段时间,进而消除回波干扰,所以在测量中会有盲区出现,所以硬件调试中主要的就是调节延时时间,使盲区达到最小,进而跳高测量的精度。通过硬件调试,来控制发射脉冲波的个数以及延时时间,并在实际测量中测出三种不同测距模式下的盲区,分别约为5CM,20CM及45CM。、52系统的误差分析28根据超声波测距公式LCT,可知测距的误差是由超声波的传播速度误差和测量距离传播的时间误差引起的。1时间误差当要求测距误差小于1MM时,假设已知超声波速度C344M/S20室温,忽略声速的传播误差。测距误差STINCLUDEINCLUDE“18B20H“INCLUDE“INTRINSH“INCLUDE“LCD1602H“INCLUDE“DELAY1H“DEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTUCHARUCHIGH_TIME,UCLOW_TIME/超声波传输时间UCHARUCFLAG/中断标志位UCHARFRQ/音乐频率节拍问题FLOATC/不同温度下的超声波传播速度/针脚定义/SBITHZ40K_OUTP36/40K信号输出端SBITMOD_SHORTP14SBITMOD_LONGP15SBITMOD_OUTP17/判断数据是发给电脑机还是凌阳版SBITKEY_TRANP16/发送数据,开始通讯10/函数声明/VOIDTMR0_INTVOIDVOIDINT0_INTVOIDVOIDSEND_40KHZ_LONGVOID/发射超声波VOIDSEND_40KHZ_MEDIUMVOIDVOIDSEND_40KHZ_SHORTVOIDINTDISTANCE_COUNT/距离转换函数FLOATCOMPENSATE_C/温度补偿函数VOIDDISPLAY_DISVOID/距离显示函数VOIDDISPLAY_TEMVOID/温度显示函数VOIDDISPLAY_CVOID/声速显示函数VOIDDELAYMSUNSIGNEDCHARMSVOIDTMR1_INTVOID/子程序/VOIDTMR0_INTVOIDTMOD|0X01/TMR0方式1,16位计数EA0/关总中断ET00/关T0中断TR00/停止计时器0TH00X00TL00X00/VOIDINT0_INTVOIDIT00/低电平沿触发EA0/关总中断EX00/屏蔽中断/VOIDUSTART_INTVOIDSCON|0X50/串口方式1,允许接收TMOD|0X20/定时器1定时方式2/TCON0X40/设定时器1开始计数TH10XF3/12MHZ2400波特率TL10XF3TR10/关闭定时器/VOIDUSTART_SEND_LINGYANGVOIDUCHARSEND3UINTVOICE_VSEND0DISTANCE_COUNTSEND1DISTANCE_COUNT8TR11/启动定时器11TI0SBUFSEND1/先发高位再发低位WHILETI/等待发送完成TI0WHILERI/等待接收完成RI0/DELAY_MS200SBUFSEND0WHILETITI0SEND0READ_TEMPERATURE/10SEND1READ_TEMPERATURE/108/发送的为实际温度的十倍372C则发送372WHILERI/等待接收完成RI0/DELAY_MS200SBUFSEND1WHILETITI0WHILERI/等待接收完成RI0/DELAY_MS200SBUFSEND0WHILETITI0VOICE_VCOMPENSATE_C/将浮点型转换为整型SEND0VOICE_VSEND1VOICE_V8WHILERI/等待接收完成RI0/DELAY_MS200SBUFSEND1WHILETITI0WHILERI/等待接收完成RI0/DELAY_MS200SBUFSEND0WHILETITI0WHILERI/等待接收完成RI0TR10/关闭定时器/VOIDUSTART_SEND_PCVOID12UCHARSEND4UINTVOICE_VSEND0DISTANCE_COUNT/10000X30SEND1DISTANCE_COUNT1000/1000X30SEND2DISTANCE_COUNT100/100X30SEND3DISTANCE_COUNT100X30TR11/启动定时器TI0SBUFSEND0WHILETITI0SBUFSEND1WHILETITI0SBUFSEND2WHILETITI0SBUFSEND3WHILETITI0;SEND0READ_TEMPERATURE/10/1000X30SEND1READ_TEMPERATURE/10100/100X30/发送的为实际温度的十倍372C则发送372SEND2READ_TEMPERATURE/10100X30SBUFSEND0WHILETITI0SBUFSEND1WHILETITI0SBUFSEND2WHILETITI0VOICE_VCOMPENSATE_C/将浮点型转换为整型SEND0VOICE_V/1000X30SEND1VOICE_V100/100X30SEND2VOICE_V100X30SBUFSEND0WHILETITI0SBUFSEND1WHILETITI0SBUFSEND213WHILETITI0TR10/关闭定时器VOIDKEY_SCANVOIDKEY_TRAN1/写1准备开始读IFKEY_TRAN0DELAY_MS10WHILEKEY_TRAN/等待按键放开IFMOD_OUT1USTART_SEND_LINGYANGELSEUSTART_SEND_PC/VOIDSEND_40KHZ_SHORTVOID/从P10发出40KHZ的脉冲短波测量短距离UCHARN,PFORN0N0/判读显示位数WRITE_NUMBERDISTANCE_COUNT,4ELSEIFDISTANCE_COUNT/1000WRITE_NUMBERDISTANCE_COUNT,3ELSEIFDISTANCE_COUNT/100WRITE_NUMBERDISTANCE_COUNT,2WRITE_STRING_LCD1602“ELSEWRITE_NUMBERDISTANCE_COUNT,1WRITE_STRING_LCD1602“WRITE_STRING_LCD1602“MM“BREAKCASE2LCD_GOTOXY0,0WRITE_STRING_LCD1602“DISTANCEWRONG“BREAKDEFAULTLCD_GOTOXY0,0WRITE_STRING_LCD1602“BEGIN“BREAK15/VOIDDISPLAY_TEMVOID/显示温度LCD_GOTOXY1,0WRITE_STRING_LCD1602“T“IFREAD_TEMPERATURE/100100WRITE_NUMBERREAD_TEMPERATURE/100,3ELSEWRITE_NUMBERREAD_TEMPERATURE/100,2WRITE_STRING_LCD1602“WRITE_NUMBERREAD_TEMPERATURE100/10,1WRITE_STRING_LCD1602“C“/VOIDDISPLAY_CVOID/显示声速LCD_GOTOXY1,8WRITE_STRING_LCD1602“C“WRITE_NUMBERCOMPENSATE_C,3WRITE_STRING_LCD1602“M/S“/中断处理/VOIDINT0_ULTRASONICINTERRUPT0UCHARUCTEMP_TIME1,UCTEMP_TIME2UCFLAG1/外部中断标志位TR00/关定时器0ET00/屏蔽定时器0中断EX00/关外部中断UCTEMP_TIME1TL0UCTEMP_TIME2TH0IFUCTEMP_TIME10UCLOW_TIMETL0/VOIDOVERINTERRUPT1/T0溢出为无效测量FFF;UCFLAG2/溢出标志位TR00/关定时器0ET00/屏蔽定时器0中断EX00/屏蔽外部中断/主程序/VOIDMAINVOIDTMR0_INTINT0_INTUSTART_INT/串口通讯初始化16INIT_LCD1602EA1/开总中断WHILE1PX01/设置外部0中断优先级为最高TH00TL00/清定时0TR01/开定时0ET01/开启定时器0中断IFMOD_LONG0SEND_40KHZ_LONG/发射40KHZ脉冲测量长距离DELAY_MS1/1MSDELAY_US80/0724MS防回波干扰总延时2540/1000107242724MS/盲区2724170463MMIFMOD_LONG1/发射40KHZ脉冲测量中距离DELAY_US127/防回波干扰1157MS延时/总延时11570051207MS/盲区120717020519MMIFMOD_SHORT0SEND_40KHZ_SHORT/发射40KHZ脉冲测量短距离EX01/开启INT0中断DISPLAY_DIS/距离显示DISPLAY_TEM/温度显示DISPLAY_C/声速显示/TMR1_INT音乐播放DELAY_MS200DELAY_MS200/DELAY_MS200ET10/关TMR1中断关闭音乐,避免开音乐是中断太频繁,引起测温和测距离都不准确/DELAY_MS200DELAY_MS200KEY_SCAN/扫描按键判断是否要发送数据与凌阳版通讯(2)显示模块IFNDEF_RZ_LCD1602_DEFINE_RZ_LCD1602_IFNDEFUCHAR17DEFINEUCHARUNSIGNEDCHARENDIFIFNDEFUINTDEFINEUINTUNSIGNEDINTENDIFUCHARCODENUMBER10“0123456789“/用来显示数据DEFINEPORTP2SBITRS_LCD1602P11SBITRW_LCD1602P12SBITEN_LCD1602P13VOIDDELAY_MS_LCD1602UINTMS/延时程序以毫秒为单位。UCHARY,ZFORMS0MSFORY0YINCLUDEINCLUDETYPEDEFUNSIGNEDCHARBYTETYPEDEFUNSIGNEDINTWORD/DS18B20温度定义部分/SBITDQP10/18B20接口BITFLAG_MINUS0WORDTEMP_DATA3/函数列表/VOIDADJUST_RESCHARRES/RES分别等于0X1F,0X3F,0X5F温度读数分辨率分别对应BYTEOW_RESETVOIDBYTEREAD_BYTEVOIDVOIDWRITE_BYTECHARVALWORDREAD_TEMPERATUREVOID/VOIDDS18B20_DELAYWORDUSECONDSFORUSECONDS0USECONDS/延时87BYTEOW_RESETVOID/复位BYTEPRESENCEDQ0/拉低总线21DS18B20_DELAY29/保持480US29DQ1/释放总线DS18B20_DELAY3/等待回复PRESENCEDQ/读取信号DS18

温馨提示

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

评论

0/150

提交评论