基于单片机超声波测距系统设计实验报告重.docx
- 文档编号:287578
- 上传时间:2022-10-08
- 格式:DOCX
- 页数:30
- 大小:564.04KB
基于单片机超声波测距系统设计实验报告重.docx
《基于单片机超声波测距系统设计实验报告重.docx》由会员分享,可在线阅读,更多相关《基于单片机超声波测距系统设计实验报告重.docx(30页珍藏版)》请在冰豆网上搜索。
基于单片机超声波测距系统设计实验报告重
指导教师评定成绩:
审定成绩:
自动化学院
计算机控制技术课程设计报告
设计题目:
基于单片机的超声波测距系统设计
单位(二级学院):
学生姓名:
专业:
班级:
学号:
指导教师:
负责项目:
设计时间:
二〇一四年五月
自动化学院制
2.4硬件实现及单元电路设计9
三、设计总结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所示:
t
超声波发射障碍物
S
H
θ
超声波接收
图2-1超声波的测距原理
(2-1)
(2-2)
式中:
L—两探头中心之间距离的一半;
又知道超声波传播的距离为:
(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位共阳极数码管显示电路、三极管驱动电路、蜂鸣器声光报警电路及键盘电路构成硬件系统。
以STC89C52单片机为核心,通过触发信号控制HC-SR04超声波测距模块发射超声波并接收回波,测算出前方障碍的距离,输入单片机进行运算,与预设报警距离比较后判断是否启动蜂鸣器声光报警装置。
根据系统功能要求及模块划分可绘制出系统硬件框图,如图2-2所示:
图2-2系统硬件框图
2.3主要元件选型及其结构
2.3.1STC89C52芯片
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
工作电压:
5.5V~3.3V。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
其引脚图如图2-3所示:
a引脚图b实物图
图2-3STC89C52引脚图
2.3.2HC-SR04超声波模块
HC-SR04超声波模块具有性能稳定、测度距离精确、模块高精度、盲区小等特点,使用简单易操作,常用于距离测量。
其原理图及实物图如图2-4、图2-5所示:
图2-4HC-SR04超声波模块原理图
图2-5HC-SR04超声波模块实物图
(1)接线方式:
VCC(接电源)、Trig(控制端)、 Echo(接收端)、 GND(接
地)
(2)基本工作原理:
a.采用I/O口TRIG触发测距,给至少10us的高电平信号;
b.模块自动发送8个40kHz的方波,自动检测是否有信号返回;
c.有信号返回,通过I/O口ECHO输出一个高电平,同时开始计时直到此口
变为低电平,高电平持续的时间就是超声波从发射到返回的时间。
测试距离=(高电平时间*声速(340M/S))/2。
(3)电气参数
表1HC-SR04电气参数表
(4)超声波时序图
图2-6超声波时序图
(5)操作:
初始化时将trig和echo端口都置低,首先向给 trig发送至少10us的高电平脉冲(模块自动向外发送8个40kHz的方波),然后等待,捕捉echo端输出上升沿,捕捉到上升沿的同时,打开定时器开始计时,再次等待捕捉echo的下降沿,当捕捉到下降沿,读出计时器的时间,这就是超声波在空气中运行的时间,按照测试距离=(高电平时间*声速(340M/S))/2就可以算出超声波到障碍物的距离。
2.3.34位共阳数码管
(1)共阳数码管的实物图、原理图如图2-7、图2-8所示:
图2-74位共阳数码管实物图
图2-84位共阳数码管原理图
(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-11HC-SR04超声波模块接口
(4)4位共阳极数码管显示电路及三极管驱动电路
显示电路如图2-12所示:
图2-124位共阳数码管显示电路
当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)主程序源代码
voidmain()
{
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超声波探
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 超声波 测距 系统 设计 实验 报告