版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录摘 要:3Abstract4第一章 绪 论51.1 引言51.2 超声波测距原理以及理论分析5第二章 系统概述62.1 方案选择62.1.1 方案一62.1.2 方案二72.2 系统设计原理72.3 系统组成82.3.1 主控制器82.3.2 显示电路82.3.3 HC-SR04超声波模块8第3章 系统硬件设计93.1 主控芯片STC89C5193.1.1 单片机特点:93.1.2 内部结构93.1.3 引脚图以及部分引脚功能93.2 液晶显示模块103.2.1 模块简介:103.2.2 引脚功能说明:113.2.3 系统显示模块电路113.3 超声波测距模块113.3.1 模块简介11
2、3.3.2 模块工作原理:123.3.3 模块电气参数123.3.4 系统超声波模块电路123.4 报警电路模块123.4.1 蜂蜜器简介123.4.2 系统报警电路模块12第四章 系统软件设计134.1 主程序设计134.1.1 主程序简介134.1.2 程序代码134.2 LCD显示模块程序设计154.2.1 模块简介154.2.2 程序代码154.3 超声波测距模块程序设计184.3.1 模块简介184.3.2 模块代码184.4 报警模块程序设计204.4.1 模块简介204.4.2 模块代码204.5 辅助代码20结论24超声波倒车雷达系统设计摘 要:基于超声波测距的汽车倒车雷达系统
3、是在了解超声波测距原理以及51单片机基本原理的基础上提出并实现的,该系统工作时,在单片机控制下超声波传感器发出脉冲信号,超声波在传播过程中遇到障碍物后反射,反射波由超声波接收装置接收后送至51单片机处理,从而实现汽车倒车过程中障碍物的实时监测并通过显示屏以及警报器提醒驾驶员。本系统是由以STC89C51单片机作为主控模块,超声波发射接收模块构成传感器模块,LCD显示模块,蜂鸣器报警模块等硬件系统以及软件程序设计组成。关键词:单片机;超声波测距;LCD显示;报警;程序设计The design of ultrasonic reversing radar systemAbstract:Automob
4、ile reversing radar system based on ultrasonic distance measurement is in the understanding of the principle of ultrasonic distance measurement and the basic principle of 51 single chip microcomputer based on the proposed and implemented , The system is working, Under the control of the microcontrol
5、ler ultrasonic sensor sends out pulse signals , Ultrasonic obstacle in the process of propagation after reflection The reflected wave from the ultrasonic receiving device receives the evacuation to 51 single chip processing, So as to realize real-time monitoring obstacles car reversing the process o
6、bject and through the display and alarm to remind the driver . This system is composed of MCU STC89C51 as the main control module , Ultrasonic transmitting and receiving modules sensor module , LCD display module , The buzzer alarm module of hardware system and software program design composition.Ke
7、y words: Single chip microcomputer;Ultrasonic ranging;LCD display;Alarm;Program design第一章 绪 论1.1 引言近年来,随着科技带动汽车行业的快速发展以及人们生活水平的不断提高,我国汽车数量正在逐年增加。同时对于一名驾驶员来说,倒车是必须掌握的技能,与前进相比倒车更加需要小心谨慎,在街道,车库,停车场等场所倒车时,往往因为驾驶员无暇同时顾及汽车前后和四周以及尾部视线盲区等原因引起的交通事故不在少数,这些事故中轻则对自己的车和他人的财物造成损伤,重则可能危及人的性命。现如今后视镜已越来越不能满足人们安全倒车的需
8、求了。据初步调查统计,15的汽车事故是由汽车倒车后视不良造成的。因此,人们对汽车倒车操纵的便捷性提出了更高的要求,增加汽车的后视能力研制汽车尾部探测障碍物的倒车雷达成为近年来的热点之一,然而安全避障的前提是快速准确的测量障碍物与汽车之间的距离。超声波具有在传播中不受电磁场,色彩以及关照等影响的特性,同时超声波传感器处理信息简单,硬件易于实现以及价格低廉等优点,被人们广泛的用作测距传感器。本文基于STC89C51单片机以及HC-SRF04超声波测距模块进行研究,从而设计实现了超声波测距倒车雷达。1.2 超声波测距原理以及理论分析声波是物体机械振动状态(或能量)的传播形式,一般来说,频率在20Hz
9、20000Hz之间的机械波能被人耳感知为声波,频率低于20Hz的机械波为次声波,频率高于20000Hz的机械波称为超声波。而高于100MHz的机械波则称之为特超声波。由于超声波具有方向性好,穿透能力强,易于获得较集中的声能的特性一次常常被用于测距。超声波测距是依据声波从发射到接收过程中的在空气介质中的传播时间测出声波的传播距离的。本文使用的超声波模块是借助于超声脉冲回波渡越时间法来实现的。 设超声波脉冲由传感器发出到接收所经历的时间为 t ,超声波在空气中的传播速度为 c ,则从传感器到目标物体的距离 D 可用下式求出D = ct /2第二章 系统概述2.1 方案选择 方案一超声波测距模块采用
10、SRF08测距模块对障碍物的位置进行检测,为了保证检测对车身的准确定位,系统设计采用3个模块分别在尾部和左右同时检测,当检测到障碍物距离车身小于1米时系统红灯闪烁同时蜂鸣器报警在测量过程中通过LCD显示屏实时显示车身尾部以及左右距离障碍物的距离。由于SRF08超声波模块接口采用I2C总线接口设计,可以与PIC等总舵处理器配合使用,因此该模块使用方便。SRF08是一款高性能的双探头超声波,其探测距离为3厘米-6米,独特的触发指令可以让SRF08工作在连续探测模式下,也就是能够自动在完成一个距离探测后自动进行第二次探测,相当于连接了一个微处理器。同时SRF08超声波测距模块内部含有36个寄存器,测
11、距模式需要对相应寄存器进行操作,在测距模式下每向命令寄存器写入一次命令就会启动一次测距,启动测距时,回波记录缓冲区数据也将同时清除。测量得到的距离将按照测量的顺序按照2B为单位一次进村入寄存器,由于一次测距需要一定的等待时间,这个时间可以通过主控芯片修改SRF08测量范围寄存器中的数据来改变。在等待时间片刻,可以对挂载总线上的其他模块进行启动测距操作,从而实现3个测距模块的在短时间内工作,达到高效,实时,准确的测距定位。由于需要直观明了的显示3个位置的测距信息,考虑到显示美观以及显示效果,需要显示位宽较高的显示器,因此该设计方案选择LCD 12864显示实时信息。系统软件部分主要包括主函数部分
12、,LCD显示部分,包括对LCD显示屏的初始化,写命令,写数据等,对SRF08超声波测距部分包括对I2C总线的启动,停止,读写数据以及距离测量以及判断等部分。另外包含延时,报警等部分。系统框图如图2.1所示图2.1SRF08超声波模块测距系统框图2.1.2 方案二超声波模块采用SRF04超声波模块对障碍物进行检测,STC89C51单片机作为主控制器,LCD1602做显示输出,蜂蜜器报警。HC-SRF04超声波测距模块采用 IO 触发测距,IO口给至少 10us 的高电平信号,启动模块,当模块启动后,超声波接收器接收到回波时会在输出引脚输出高电平,当主控芯片检测到输出信号就可以开定时器计,当此口变
13、为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,就可以达到实时测距的功能。由于SRF04模块自身不含寄存器,因此在测量时需要耗费单片机硬件资源,因此此方案采用尾部单传感器测量,如果采用LCD12864显示器做显示输出,则会浪费大量资源,因此选用LCD1602做显示输出部分。通过主控芯片以以及超声波模块测量出汽车尾部句障碍物的距离,与系统的报警阈值进行比较。超过阈值,报警达到有效的避免与障碍物碰撞的目的。该方案系统软件部分包含,STC89C51单片机的时钟,中断的编写,LCD1902显示部分包含对液晶显示器的初始化,命令的写入,以及数据的写入,对SRF04超
14、声波测距模块的控制。从以上两种方案可以看出方案一测量精度高,同时超声波模块较多能很好的实现基本功能,但是硬件成本较高,电路较为复杂,同时软件设计较为复杂。方案二电路设计简单,同时检测灵敏,软件设计较为简单易于实现。因此本文设计基于方案二进行。2.2 系统设计原理该系统由STC89C51单片机向SRF04超声波测距模块发送启动信号,同时接收SRFO4模块的返回信号,由单片机内部时钟记录返回信号持续时间并计算出距离,将所测距离送至LCD1602显示,同时与系统距离阈值进行比较,如果小于阈值则通过蜂鸣器报警。2.3 系统组成本课题以89S51单片机为核心设计的一种超声波测距倒车雷达系统,系统整体框图
15、主要由主控制器、超声波测距模块、单片机复位、时钟振荡、液晶显示、报警提示组成。系统框图如图2.2所示。图2.2系统基本框图 主控制器单片机STC89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要。 显示电路显示电路采用LCD1602液晶显示屏,从P0口输出数据。 HC-SR04超声波模块经发射器发射出长约 6mm ,频率为 40KHZ 的超声波信号。此信号被物体反射回来由接收头接收,接收头实质上是一种压电效应的换能器。它接收到信号后产生 mV 级的微弱电压信号并通过接收电路将信号放大得到回送信号。第3章 系统硬件设计3.1 主控芯片STC89C51 单片机特
16、点:有优异的性价比。集成度高,体积小,又很高的可靠性控制功能强单片机的系统扩展和系统配置都比较典型、规范、且容易构成各种规模的应用系统。 内部结构MCS-51单片机是在一块芯片上集成了 CPU、RAM、ROM定时器、计数器和多功能I/O口。其中包括:一个8位CPU;4KB ROM或EPROM128字节RAM数据存储器4个8位并行I/O口,其中P0,P2为地址/数据线,可寻址64KB ROM和64KB RAM;一个可编程全双工串行口;具有5个中断源,两个优先级,嵌套中断结构;两个16位定时/计数器;一个片内振荡器及时钟电路。 引脚图以及部分引脚功能图3.1 STC89C51引脚图部分引脚功能:V
17、cc,Vss为电源引脚;XTAL2(18 脚):接外部晶体和微调电容的一端;在89C51 片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。XTAL1(19 脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚必须接地。RST/VPD(9 脚):RST 是复位信号输入端,高电平有效。ALE/PROG(30 脚):地址锁存允许信号端。PSEN(29 脚):程序存储允许输出信号端。EA/Vpp(31 脚):外部程序存储器地址允许输入端/固化编程电压输入端。输入/输出端口P0/P1/P2/P33.2 液晶显示模块 模块简介:字符型液晶显
18、示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别。实物图如图3.1所示。图3.1 LCD液晶显示器实物图602LCD主要技术参数:显示容量:16×2个字符;芯片工作电压:4.55.5V;工作电流:2.0mA(5.0V);模块最佳工作电压:5.0V;字符尺寸:2.95×4.35(W×H)mm; 引脚功能说明:第1脚:VSS为地电源第2脚:VDD接5V正电源。第3脚:VL为液晶显示器
19、对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。3.2.3 系统显示模块电路3.3 超
20、声波测距模块 模块简介超声波测距采用HC-SR04超声波传感器实现,该模块能提供2cm400cm的非接触式距离感测功能,测距精度可达到3mm,模块包括超声波发射器,接收器,以及控制电路。模块实物图如图3.2所示图3.2 HC-SR04超声波模块 模块工作原理:1)采用 IO 触发测距,通过单片机给至少 10us 的高电平信号;2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;3)有信号返回,通过 IO 输出一高电平,高电平持续的时间就是即为声波在介质中的传播时间。4)超声波从发射到返回的时间测试距离=(高电平时间*声速(340M/S)/2;3.3.3 模块电气参数引脚功能:
21、提供5V正电源,GND为电源地线,TRIG触发控制信号输入端,ECHO回响信号输出端。3.3.4 系统超声波模块电路3.4 报警电路模块 蜂蜜器简介蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电分为有源与无源之分,本文采用无源蜂鸣器。 系统报警电路模块第四章 系统软件设计4.1 主程序设计 主程序简介本系统大致流程包括先开始,对LCDl602液晶显示器进行初始化,然后对单片机时钟惊醒初始化,初始化结束后,启动超声波测距,打开时钟,接收回波信号。关闭时钟,计算距离,通过LCD显示,并与系统距离阈值进行比较。低于系统阈值报警。同时将数据送至LCD显示。程序流程图如图4.1所示。图4.1 系统
22、流程图 程序代码void main(void)unsigned char TempCyc;unsigned long juli;int i;Delay400Ms(); /启动等待,等LCM讲入工作状态LCMInit(); /LCM初始化Delay5Ms(); /延时片刻(可不要)DisplayListChar(0, 0, mcustudio);DisplayListChar(0, 1, email);ReadDataLCM();for (TempCyc=0; TempCyc<10; TempCyc+)while(1) TMOD=0x01; /设T0为方式1,GATE=1; TH0=0;
23、TL0=0; ET0=1; /允许T0中断 EA=1; /开启总中断while(1) StartModule();/ DisplayOneChar(0, 1, ASCII0); while(!RX);/当RX为零时等待 TR0=1; /开启计数 while(RX);/当RX为1计数并等待 TR0=0;/关闭计数 juli = Conut();/计算 if(juli < 30) display(juli);LED = 0;beep();LED = 1; display(juli); delayms(70);/80MS 4.2 LCD显示模块程序设计 模块简介液晶显示部分主要显示“bi ye
24、 she ji”和所检测的距离。显示开始先对LCD初始化,把LCD定位到首行首列,然后显示字符“bi ye she ji”到第一行,LCD第二行,显示字符“ju li:X.XX MM”。当测量距离超过超声波模块的最大测量范围时,显示“ju li:-.-MM”。程序流程图如图4.2所示。图4.2 显示模块程序流程图 程序代码写数据函数:该函数主要用于向1602发送数据,参数WDLCM为需要传送的数据void WriteDataLCM(unsigned char WDLCM) ReadStatusLCM(); /检测忙LCM_Data = WDLCM;LCM_RS = 1;LCM_RW = 0;L
25、CM_E = 0; /若晶振速度太高可以在这后加小的延时LCM_E = 0; /延时LCM_E = 1;写指令函数:该函数主要功能为向1602写入用户指令,指令码通过参数WCLCM传送,参数BuysC为1602显示器忙信号,用于检测1602是否处于忙状态。void WriteCommandLCM(unsigned char WCLCM,BuysC) /BuysC为0时忽略忙检测if (BuysC) ReadStatusLCM(); /根据需要检测忙LCM_Data = WCLCM;LCM_RS = 0;LCM_RW = 0;LCM_E = 0;LCM_E = 0;LCM_E = 1;读数据函数
26、unsigned char ReadDataLCM(void)LCM_RS = 1; LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;return(LCM_Data);/读状态unsigned char ReadStatusLCM(void)LCM_Data = 0xFF; LCM_RS = 0;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;while (LCM_Data & Busy); /检测忙信号return(LCM_Data);初始化函数:该函数主要用于对1602显示器的初始化,例如显示模式的设置,设置屏显,
27、光标设置等等。void LCMInit(void) /LCM初始化LCM_Data = 0;WriteCommandLCM(0x38,0); /三次显示模式设置,不检测忙信号Delay5Ms(); WriteCommandLCM(0x38,0);Delay5Ms(); WriteCommandLCM(0x38,0);Delay5Ms(); WriteCommandLCM(0x38,1); /显示模式设置,开始要求每次检测忙信号WriteCommandLCM(0x08,1); /关闭显示WriteCommandLCM(0x01,1); /显示清屏WriteCommandLCM(0x06,1);
28、/ 显示光标移动设置WriteCommandLCM(0x0c,1); / 显示开及光标设置字符显示函数:该函数主要用于在1602指定位置显示一个字符,字符的位置通过坐标X,Y确定,其中X为列坐标,Y为行坐标。参数Ddata 为需要具体显示的字符。void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)Y &= 0x1;X &= 0xF; /限制X不能大于15,Y不能大于1if (Y) X |= 0x40; /当要显示第二行时地址码+0x40;X |= 0x80; /算出指令码WriteC
29、ommandLCM(X, 1); /发命令字WriteDataLCM(DData); /发数据字符串显示函数:该函数主要用于在1602中显示字符串,坐标通过参数X.Y确定,其中X为列坐标,Y为行坐标。字符串通过指针Ddata确定。void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)unsigned char ListLength; ListLength = 0;Y &= 0x1;X &= 0xF; /限制X不能大于15,Y不能大于1while (DDataListLen
30、gth>0x19) /若到达字串尾则退出if (X <= 0xF) /X坐标应小于0xFDisplayOneChar(X, Y, DDataListLength); /显示单个字符ListLength+;X+;4.3 超声波测距模块程序设计 模块简介该模块主要用于驱动超声波模块,实现启动模块,读取超声波模块回送信号的作用,并根据超声波测距原理计算出障碍物的距离。为1602显示提供实时数据。 模块代码模块启动函数:该函数主要是为超声波硬件模块提供启动时需要的10us的高电平。 void StartModule() /启动模块 TX=1; /启动一次模块 _nop_(); _nop_(
31、); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; 测距函数:该函数主要用于计算实际测得的距离,通过单片机的时钟测得的时间与声波在空气中的传播速度计算求得。实际的距离通过参数S返回。unsigned long Conut(void) time=TH0*256+TL0; TH0=0; TL0=
32、0;return S = (time*1.7)/100; /算出来是CM 距离显示函数:该函数主要用于对采集回来的数据与模块可提供的准确测距范围进行比对,如果超出量程则显示-.- -,如果在精度范围内则显示具体的数据。显示需要的数据通过参数S传入。void display(unsigned long S) if(S>=700)|flag=1) /超出测量范围显示“-” flag=0; DisplayOneChar(6, 1, ASCII11); DisplayOneChar(7, 1, ASCII10);/显示点 DisplayOneChar(8, 1, ASCII11); Displa
33、yOneChar(9, 1, ASCII11); DisplayOneChar(10, 1, ASCII12);/显示M else disbuff0=S%1000/100; disbuff1=S%1000%100/10; disbuff2=S%1000%10 %10; DisplayOneChar(6, 1, ASCIIdisbuff0); DisplayOneChar(7, 1, ASCII10);/显示点 DisplayOneChar(8, 1, ASCIIdisbuff1); DisplayOneChar(9, 1, ASCIIdisbuff2); DisplayOneChar(10,
34、1, ASCII12);/显示M 4.4 报警模块程序设计 模块简介报警模块主要用于驱动蜂鸣器与LCD小灯,达到报警的效果。 模块代码void beep() int i;SPK = 0;for(i = 0; i <50; i+)DelayUs2x(100);SPK =!SPK;SPK = 1;4.5 辅助代码该部分代码主要用于对整个代码框架起辅助作用,主要包括系统中所包含的函数接口声明,以及系统硬件各个硬件接口申明定义,以及系统常用延时函数,一些标志函数。起到了精简代码的所用,减少了整个代码的冗余度,同时使程序在运行的过程中简洁。系统硬件接口以及函数声明#include <AT89
35、x51.H>/器件配置文件#include <intrins.h>#define RX P2_3#define TX P2_2#define SPK P1_0 /喇叭定义#define LED P1_1#define LCM_RW P2_5 /定义LCD引脚#define LCM_RS P2_4#define LCM_E P2_6#define LCM_Data P0#define Busy 0x80 /用于检测LCM状态字中的Busy标识void LCMInit(void);void DisplayOneChar(unsigned char X, unsigned char
36、 Y, unsigned char DData);void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);void Delay5Ms(void);void Delay400Ms(void);void Decode(unsigned char ScanCode);void WriteDataLCM(unsigned char WDLCM);void WriteCommandLCM(unsigned char WCLCM,BuysC);unsigned char ReadDataLCM(vo
37、id);unsigned char ReadStatusLCM(void);unsigned char code mcustudio ="bi ye she ji "unsigned char code email = "ju li:"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,;系统各级别延时函数:/5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农产品销售合同协议范本
- 招标文件房产项目
- 版短期无担保个人
- 第三方支付保证金协议
- 知识产权顾问合同的争议解决方法分享
- 学生健康饮食承诺保证书
- 装饰拆除改造合同
- 道具采购合同范本中文模板样式
- 导购员合同协议的交通补贴
- 幼儿园食品订购合同范本
- 电影作品解读-世界科幻电影智慧树知到期末考试答案章节答案2024年成都锦城学院
- NB-T47003.1-2009钢制焊接常压容器(同JB-T4735.1-2009)
- 聚焦高质量+探索新高度+-2025届高考政治复习备考策略
- 惠州市惠城区2022-2023学年七年级上学期期末教学质量检测数学试卷
- 北京市西城区2022-2023学年七年级上学期期末英语试题【带答案】
- ISO45001-2018职业健康安全管理体系之5-4:“5 领导作用和工作人员参与-5.4 工作人员的协商和参与”解读和应用指导材料(2024A0-雷泽佳)
- 看图猜成语共876道题目动画版
- 小学二年级上册数学-数角的个数专项练习
- 曲式与作品分析智慧树知到期末考试答案章节答案2024年兰州文理学院
- 园林设施维护方案
- 特种设备使用单位日管控、周排查、月调度示范表
评论
0/150
提交评论