基于单片机的超声波测距的设计.doc
《基于单片机的超声波测距的设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的超声波测距的设计.doc(28页珍藏版)》请在沃文网上搜索。
1、目录一、设计题目1 基于51单片机的超声波测距系统设计1 设计要求1摘要2二、设计报告正文3 2.1 超声波测距原理3 2.2系统总体方案设计4 2.3主要元件选型及其结构5 2.4硬件实现及单元电路设计9 2.5系统的软件设计13三、设计总结17四、参考文献17五、附录18 附录一:总体电路图18 附录二:系统源代码18一、 设计题目基于单片机的超声波测距系统设计设计要求1、以51系列单片机为核心,控制超声波测距系统;2、测量范围为:2cm4m,测量精度:1cm;3、通过键盘电路设置报警距离,测出的距离通过显示电路显示出来;4、当所测距离小于报警距离时,声光报警装置报警加以提示;5、设计出相
2、应的电子电路和控制软件流程及源代码,并制作实物。摘要 超声波具有传播距离远、能量耗散少、指向性强等特点,在实际应用中常利用这些特点进行距离测量。超声波测距具有非接触式、测量快速、计算简单、应用性强的特点,在汽车倒车雷达系统、液位测量等方面应用广泛。本次课设利用超声波传播中距离与时间的关系为基本原理,以STC89C52单片机为核心进行控制及数据处理,通过外围电源、显示、键盘、声光报警等电路实现系统供电、测距显示、报警值设置及报警提示的功能。软件部分采用了模块化的设计,由系统主程序及各功能部分的子程序组成。超声波回波信号输入单片机,经单片机综合分析处理后实现其预定功能。关键词:STC89C52单片
3、机; HC-SR04; 超声波测距二、设计报告正文2.1 超声波测距原理 常用的超声测距的方法是回声探测法,超声波发射器向某一方向发射超声波,在发射时刻的同时计数器开始计时,超声波在空气中传播,途中碰到障碍物面阻挡就立即反射回来,超声波接收器收到反射回的超声波就立即停止计时。设超声波在空气中的传播速度为340m/s(不计介质温度变化对速度的影响),根据计时器记录的时间t,就可以计算出发射点距障碍物面的距离s,即:s=340t/2。 如图2-1所示: t超声波发射 障碍物 S H 超声波接收图2-1 超声波的测距原理 (2-1) (2-2)式中: L两探头中心之间距离的一半;又知道超声波传播的距
4、离为: (2-3) 式中: v超声波在介质中的传播速度; t超声波从发射到接收所需要的时间;将式2-1、2-2、2-3联立得: (2-4) 其中,超声波的传播速度v在一定的温度下是一个常数(例如在温度T=30度时,V=349m/s);当需要测量的距离H远远大于L时,上式变为: (2-5) 所以,只要需要测量出超声波传播的时间t,就可以得出测量的距离H.2.2系统总体方案设计 本超声波测距系统由系统硬件电路及软件程序实现两部分构成。其中由STC89C52单片机最小系统、HC-SR04超声波模块、电源接口电路、4位共阳极数码管显示电路、三极管驱动电路、蜂鸣器声光报警电路及键盘电路构成硬件系统。以S
5、TC89C52单片机为核心,通过触发信号控制HC-SR04超声波测距模块发射超声波并接收回波,测算出前方障碍的距离,输入单片机进行运算,与预设报警距离比较后判断是否启动蜂鸣器声光报警装置。 根据系统功能要求及模块划分可绘制出系统硬件框图,如图2-2所示:电源接口电路STC89C52单片机最小系统超声波测距模块显示模块键盘模块声光报警电路图2-2 系统硬件框图2.3主要元件选型及其结构2.3.1 STC89C52芯片STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。工作电压:5.5V3.3V。STC89C52使用经典的MCS-51
6、内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串
7、口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。其引脚图如图2-3所示: a 引脚图 b 实物图图2-3 STC89C52引脚图2.3.2 HC-SR04超声波模块 HC-SR04超声波模块具有性能稳定、测度距离精确、模块高精度、盲区小等特点,使用简单易操作,常用于距离测量。其原理图及实物图如图2-4、图2-5所示:图2-4 HC-SR04超声波模块原理图图2-5 HC-SR04超声波模块实物图(1)接线方式:VCC(接电源)、Trig(控制端)、Echo(接收端)、GND(接 地)(
8、2)基本工作原理: a.采用I/O口TRIG触发测距,给至少10us的高电平信号; b.模块自动发送8个40kHz的方波,自动检测是否有信号返回; c.有信号返回,通过I/O口ECHO输出一个高电平,同时开始计时直到此口 变为低电平,高电平持续的时间就是超声波从发射到返回的时间。 测试距离=(高电平时间*声速(340M/S)/2。 (3)电气参数表1 HC-SR04电气参数表(4)超声波时序图图2-6 超声波时序图(5)操作: 初始化时将trig和echo端口都置低,首先向给trig发送至少10 us的高电平脉冲(模块自动向外发送8个40kHz的方波),然后等待,捕捉echo端输出上升沿,捕捉
9、到上升沿的同时,打开定时器开始计时,再次等待捕捉echo的下降沿,当捕捉到下降沿,读出计时器的时间,这就是超声波在空气中运行的时间,按照测试距离=(高电平时间*声速(340M/S)/2就可以算出超声波到障碍物的距离。 2.3.3 4位共阳数码管(1)共阳数码管的实物图、原理图如图2-7、图2-8所示:图2-7 4位共阳数码管实物图图2-8 4位共阳数码管原理图(2) 工作原理:共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。
10、(3)动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由
11、于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。2.4 硬件实现及单元电路设计(1)单片机最小系统 单片机系统由电源、晶振电路、复位电路组成。如图2-9所示:图2-9 单片机最小系统(2)电源接口电路设计 电源部分的设计采用3节5号干电池4.5V供电,如图2-10所示:图2-10 电源接口电路(3)超声波模块接口 HC-SR04超声波模块接口如图2-11所示:图2-11 HC-SR04超声波模块接口(4) 4位共阳极数码管显示电路及三极管驱动电路 显示电路如图2-12所示:图2-12 4位共阳数
12、码管显示电路当I/O口输出低电平时,相应段被选通,反之则不然。三极管驱动电路如图2-13所示:图2-13 三极管驱动电路当I/O口输出低电平时,相应位被选通,反之则不然。(5)声光报警电路的设计 声光报警电路如图2-14所示:图2-14 声光报警电路声光报警电路由一个蜂鸣器、一个三极管、一个发光二极管、两个电阻构成。其中电阻起限流的作用,当I/O口输出低电平时,三极管饱和导通,蜂鸣器报警、LED亮,反之则不报警。(6)键盘电路的设计键盘电路如图2-15所示:图2-15 键盘电路2.5系统的软件设计(1)各主要模块 超声波测距模块。给超声波Trig口至少10us的高电平,启动测量,定时 器T0计
13、时,通过计算测得距离。 显示模块。包括数码管位选函数、段选函数及距离处理显示模块。将超声 波测距测量值、报警设定值显示在4位数码管上。 键盘模块。由键盘检测函数及键盘处理函数组成。有设定键、加键、减键、 复位键、开关键。主要设置报警值。 声光报警模块。将测量值与设定报警值比较,若小于设定值,报警。 特殊存储器eepom模块。包括单片机eepom存储器读、写操作以及初始化。 其内存储设定报警值,掉电数据不丢失。 定时器模块。TO定时器用于超声波测距的计时。T1定时器用于主程序扫 描时间的控制。(2)主程序源代码 void main()send_wave(); /测距离函数smg_display(
14、); /处理距离显示函数time_init(); /定时器初始化init_eepom(); /初始化eepom(读取set_d)while(1)if(flag_300ms = 1) /300ms执行一次flag_300ms = 0;clock_h_l(); /报警函数send_wave(); /测距离函数if(menu_1 = 0) /没有键按下时才给缓冲数组赋新值smg_display(); /处理距离显示函数if(zd_break_en = 1) /自动退出设置界面程序zd_break_value +; /每300ms加一次if(zd_break_value 100) /30秒后自动退出设
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 超声波 测距 设计