基于单片机的超声波测距系统设计实验报告 - 重

更新时间:2023-05-16 20:36:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于单片机的超声波测距系统设计实验报告,课程设计

指导教师评定成绩:

审定成绩:

自 动 化 学 院

计算机控制技术课程设计报告

设计题目:基于单片机的超声波测距系统设计

单位(二级学院): 学 生 姓 名: 专 业: 班 级: 学 号: 指 导 教 师: 负 责 项 目:

设计时间:二〇一四 年 五 月

自动化学院制

基于单片机的超声波测距系统设计实验报告,课程设计

目录

一、设计题目 ......................................... 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

基于单片机的超声波测距系统设计实验报告,课程设计

基于单片机的超声波测距系统设计实验报告,课程设计

一、设计题目

基于51单片机的超声波测距系统设计

设计要求

1、以51系列单片机为核心,控制超声波测距系统; 2、测量范围为:2cm~4m,测量精度:1cm;

3、通过键盘电路设置报警距离,测出的距离通过显示电路显示出来; 4、当所测距离小于报警距离时,声光报警装置报警加以提示; 5、设计出相应的电子电路和控制软件流程及源代码,并制作实物。

基于单片机的超声波测距系统设计实验报告,课程设计

摘要

超声波具有传播距离远、能量耗散少、指向性强等特点,在实际应用中常利用这些特点进行距离测量。超声波测距具有非接触式、测量快速、计算简单、应用性强的特点,在汽车倒车雷达系统、液位测量等方面应用广泛。本次课设利用超声波传播中距离与时间的关系为基本原理,以STC89C52单片机为核心进行控制及数据处理,通过外围电源、显示、键盘、声光报警等电路实现系统供电、测距显示、报警值设置及报警提示的功能。软件部分采用了模块化的设计,由系统主程序及各功能部分的子程序组成。超声波回波信号输入单片机,经单片机综合分析处理后实现其预定功能。

关键词:STC89C52单片机; HC-SR04; 超声波测距

基于单片机的超声波测距系统设计实验报告,课程设计

二、设计报告正文

2.1 超声波测距原理

常用的超声测距的方法是回声探测法,超声波发射器向某一方向发射超声波,在发射时刻的同时计数器开始计时,超声波在空气中传播,途中碰到障碍物面阻挡就立即反射回来,超声波接收器收到反射回的超声波就立即停止计时。设超声波在空气中的传播速度为340m/s(不计介质温度变化对速度的影响),根据计时器记录的时间t,就可以计算出发射点距障碍物面的距离s,即:s=340t/2。 如图2-1所示:

超声波发射障碍物

超声波接收图2-1 超声波的测距原理

H Scos (2-1)

arctg(

L

)

H (2-2)

式中: L—两探头中心之间距离的一半;

又知道超声波传播的距离为:

2S vt (2-3) 式中: v—超声波在介质中的传播速度; t—超声波从发射到接收所需要的时间;

基于单片机的超声波测距系统设计实验报告,课程设计

将式2-1、2-2、2-3联立 得:

1LH vtcos[arctg]

2H (2-4)

其中,超声波的传播速度v在一定的温度下是一个常数(例如在温度T=30度时,V=349m/s);当需要测量的距离H远远大于L时,上式变为:

1H vt

2 (2-5)

所以,只要需要测量出超声波传播的时间t,就可以得出测量的距离H.

2.2系统总体方案设计

本超声波测距系统由系统硬件电路及软件程序实现两部分构成。其中由

STC89C52单片机最小系统、HC-SR04超声波模块、电源接口电路、4位共阳极数码管显示电路、三极管驱动电路、蜂鸣器声光报警电路及键盘电路构成硬件系统。以STC89C52单片机为核心,通过触发信号控制HC-SR04超声波测距模块发射超声波并接收回波,测算出前方障碍的距离,输入单片机进行运算,与预设报警距离比较后判断是否启动蜂鸣器声光报警装置。

根据系统功能要求及模块划分可绘制出系统硬件框图,如图2-2所示:

图2-2 系统硬件框图

基于单片机的超声波测距系统设计实验报告,课程设计

2.3主要元件选型及其结构 2.3.1 STC89C52芯片

STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。工作电压:5.5V~3.3V。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统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、定时器/计数器、串口、中断继续工作。掉电保护方式下,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(接 地)

(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端输出上升沿,捕捉到上升沿的同时,打开定时器开始计时,再次等待捕捉echo的下降沿,当捕捉到下降沿,读出计时器的时间,这就是超声波在空气中运行的时间,按照测试距离=(高电平时间*声速(340M/S))/2就可以算出超声波到障碍物的距离。

2.3.3 4位共阳数码管

(1)共阳数码管的实物图、原理图如图2-7、图2-8所示:

图2-7 4位共阳数码管实物图

图2-8 4位共阳数码管原理图

(2)工作原理:

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。

(3)动态显示驱动:

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱

基于单片机的超声波测距系统设计实验报告,课程设计

动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。

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位共阳数码管显示电路

当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计时,通过计算测得距离。

② 显示模块。包括数码管位选函数、段选函数及距离处理显示模块。将超声 波测距测量值、报警设定值显示在4位数码管上。

③ 键盘模块。由键盘检测函数及键盘处理函数组成。有设定键、加键、减键、 复位键、开关键。主要设置报警值。

④ 声光报警模块。将测量值与设定报警值比较,若小于设定值,报警。 ⑤ 特殊存储器eepom模块。包括单片机eepom存储器读、写操作以及初始化。 其内存储设定报警值,掉电数据不丢失。

⑥ 定时器模块。TO定时器用于超声波测距的计时。T1定时器用于主程序扫 描时间的控制。

(2)主程序源代码

void main() { send_wave(); //测距离函数 smg_display(); //处理距离显示函数 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秒后自动退出设置界面 { menu_1 = 0; smg_i = 3; zd_break_en = 0; zd_break_value = 0;

基于单片机的超声波测距系统设计实验报告,课程设计

}

}

} }

key(); if(key_can < 4) { key_with(); }

//按键检测函数

//按键处理函数,修改报警设定值

(3)主程序工作流程图

图2-16 主程序流程图

基于单片机的超声波测距系统设计实验报告,课程设计

(4)超声波探测程序流程图

图2-17 超声波探测程序流程图

基于单片机的超声波测距系统设计实验报告,课程设计

三、设计总结

基于单片机的超声波测距系统设计实验报告,课程设计

四、参考文献

[1] C程序设计(第三版). 谭浩强 . 清华大学出版社 . [2] 新概念51单片机c语言教程 . 郭天祥 . 电子工业出版社 [3] 传感器与检测技术 . 胡向东 . 机械工业出版社 [4] 微控制其原理及应用 . 向敏 . 人民邮电出版社

五、附录

附录一:系统总体电路图

图5-1 超声波探测程序流程图

基于单片机的超声波测距系统设计实验报告,课程设计

附录二:系统软件源代码

/*

*************************************************** *课设名称:基于51单片机的超声波测距系统设计 *硬件平台: 超声波模块+51最小系统 *显示模块:4个数码管 *输入模块:3个按键

*实现的功能:用超声波模块把距离测量出来,用数码管显示,可通过按键设置要报警的距离,低于设置

* 的值则自动报警,一直按住调值的键会越加越快,超出量程(3.8m)则显示888 *接口说明:数码管位P3^4 P3^5 P3^6 P3^7 * 超声波发射=>P3^2 * 超声波接收=>P3^3 按键用的接口是P2口 *待改进的地方:温度补偿,提高精度 *当前的缺陷: 不能测出4m的距离 *测量单位:米(m)

****************************************************/

#include <reg52.h> #include <intrins.h> #include <string.h> #include <eepom52.h>

#define uchar unsigned char #define uint unsigned int

//数码管段选定义 设 0 1 2 3 4 5 6 7 8 9 uchar code smg_duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

//数码管位选

uchar dis_smg[4] ={0,1,2,3};

sbit smg_we1 = P3^4; //数码管位选端口 sbit smg_we2 = P3^5; sbit smg_we3 = P3^6; sbit smg_we4 = P3^7; sbit c_send = P3^1; //超声波发射 sbit c_recive = P3^0; //超声波接收 uchar flag_hc_value; //超声波中间变量

sbit beep = P2^3; //蜂鸣器IO口定义

本文来源:https://www.bwwdw.com/article/5x94.html

Top