超声波测距仪单片机课设实验报告
更新时间:2024-01-01 07:30:01 阅读量: 教育文库 文档下载
微机原理与单片机系统课程设计
评语: 考勤10分 守纪10分 过程30分 设计报告30分答辩20分 总成绩(100分)
专 业: 轨道交通信号与控制 班 级: 交控1305 姓 名: 贺云鹏 学 号: 201310104 指导教师: 李建国
兰州交通大学自动化与电气工程学院
2015 年 12 月 30 日
单片机原理及系统课程设计报告
超声波测距仪设计
1 设计说明
1.1 设计目的
超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。
超声波测距主要应用于倒车提醒、建筑工地、工业现场等的距离测量。 超声波在气体、液体及固体中以不同速度传播,定向性好、能量集中、传输过程中衰减较小、反射能力较强。超声波能以一定速度定向传播、遇障碍物后形成反射,利用这一特性,通过测定超声波往返所用时间就可计算出实际距离,从而实现无接触测量物体距离。超声波测距迅速、方便,且不受光线等因素影响,广泛应用于水文液位测量、建筑施工工地的测量、现场的位置监控、振动仪车辆倒车障碍物的检测、移动机器入探测定位等领域。
1.2 设计方法
本课题包括数据测距模块、显示模块。测距模块包括一个HC-SR04超声波测距模块和一片AT89C51单片机,该设计选用HC-SR04超声波测距模块,通过HC-SR04发射和接受超声波,使用AT89C51单片机对超声波进行计时并根据超声波在空气中速度为340米每秒的特性计算出距离。显示模块包括一个4位共阳极LED数码管和AT89C51单片机,由AT89C51单片机控制数码管动态显示距离。
1.3 设计要求
采用单片机为核心部件,选用超声波模组,实现对距离的测量,测量距离能够通过显示输出(LED,LCD)。
2 设计方案及原理
2.1超声波测距模块设计
HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm。模块包括超声波发射器、接收器与控制电路。当提供一个10uS以上正脉冲触发信号,该模块内部将发出8个40kHz 周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离
由以上信息,在设计时选用两个定时器,定时器1用来定时800ms,当产生
1
单片机原理及系统课程设计报告
中断时,启动HC-SR04超声波测距模块,即给其TRIG(发射)口送一个持续20ms的正脉冲,定时器0用来对超声波传递时间进行计时,即当ECHO(回波)口为高电平时启动计时,当ECHO口变为低电平时关闭计时。再根据超声波在空气中的传播速度为340米每秒,通过AT89C51计算出距离,当距离超过400cm时,显示8888,表示超出工作距离。
2.2 LED显示模块设计
将算得的距离通过一个4位LED数码管采用动态扫描进行显示。
2.3 其他功能的设计
考虑到实际的需求,本设计还应增加以下功能:
1、增加一个指示灯。当ECHO(回波)口为高电平时,即超声波信号在空气中传播时,指示灯点亮。当数码管不能正常点亮时,若指示灯正常指示,则说明LED显示模块发生故障;若指示灯不能正常点亮,则说明超声波测距模块发生故障。
2、 增加一个锁存按钮。由于设计时我们设计的为每800ms超声波测距模块启动一次,由于定时器会产生误差,造成测得距离不断变化,增加一个锁存按钮,当确定显示结果稳定时,按下按钮时,关闭超声波测距模块,可以使结果清楚显示。
3、增加一个待机按钮。当按下锁存按钮后,再按下待机按钮,这时关闭LED显示,若再打开待机按钮,这时LED启动工作,显示的数值为上一次被测距离。
2.4 设计成本及定价
成本:1、HC-SR04超声波测距模块1个3.3元 2、AT89C51单片机1个2.5元 3、四位LED数码管1个1.5元 4、晶振1个0.17元 5、电路板1个0.57元
6、其他开关、电阻及电容总计0.5元 总计:8.54元 市场平均价格:12元 预计定价:10元 利润:1.46元
3 硬件设计
此系统的硬件设计主要包括HC-SR04超声波测距模块、AT89C51单片机、4
2
单片机原理及系统课程设计报告
位LED显示模块,并连入指示灯、待机开关和锁存开关。
仿真时,将HC-SR04超声波测距模块用一个555延时电路来代替即可,其中调节改变滑动变阻器的阻值可以模拟被测物体距离的变化。实验仿真电路图如图1所示。
图1 设计硬件电路图
4 软件设计
此系统的软件设计主要包括超声波测距模块设计、LED显示模块设计、和其他拓展模块。采用定时器1每800ms发射一个脉冲信号启动超声波测距模块,采用定时器0计算超声波传播时间,并通过一个计算函数算得距离,然后送LED显示屏进行动态扫描并显示结果。
4.1 程序流程图
主程序流程图如图2所示。
3
单片机原理及系统课程设计报告
图2 程序流程图
4
单片机原理及系统课程设计报告
4.2程序
基于AT89C51单片机的超声波测距源程序见附录一。
5 系统仿真及调试结果
基于AT89C51单片机的超声波测距仿真结果见附录二。 基于AT89C51单片机的超声波测距调试结果如图3所示。
图3 系统程序调试结果
6 总结
本设计通过对超声波测距的研究,与单片机结合,实现了超声波测距的目标,并增加了数据锁存、指示灯和待机的功能。仿真时由于软件中没有HC-SR04模块,因此用555延时电路来代替。
通过这次课程设计,我加深了对单片机的理解,也为以后更好的运用打下了基础。最后要感谢李老师的指导,在李老师的耐心解答下,我受益匪浅。
参考文献
[1] 李积英.数字电子技术.中国电力出版社,2011
[2] 深圳市捷什科技有限公司.HC-SR04超声波测距模块说明书. [3] 彭江.单片机原理及接口技术的开发[J].软件导刊,2011,12(8):66-70.
[4] 王思明.张金敏.苟军年.张鑫.杨乔礼.单片机原理及应用系统设计.科学出版社.2012
5
单片机原理及系统课程设计报告
附录一:实验源程序
#include
#define uchar unsigned char #define uint unsigned int
#define LED_port P0 //用于LED段选 #define LED_pos P1 //用于LED位选 sbit qq=P2^6; //待机按钮 sbit suocun=P2^1; //锁存结果 sbit RX=P1^4; //回波 sbit TX=P1^5; //送波
sbit D1=P3^7; //接收指示灯 uint time=0; //定时器0时间 uint timer=0; //定时器1时间 unsigned long S=0; //用于显示最后计算得到的距离 unsigned long W[2]={0,0}; //用于比较两次测算距离大小 bit flag =0; //定时器0中断溢出标志位 uchar value[4];
uchar code LED_seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //数码管段选
uchar code pos[4]={0x01,0x02,0x04,0x08}; //数码管位选
/********************************************************/
void Delay(uchar t) //延时函数 {
uchar i,j,k; for(i=0;i /********************************************************/ void value_shift(uchar value[]) //将距离值的每一位放到数组中 { value[0]=S/1000; value[1]=S/100; value[2]=S/10; value[3]=S; } /********************************************************/ 6 单片机原理及系统课程设计报告 void Display(uchar value[]) //数码管显示 { uchar i; for(i=0;i<4;i++) { LED_pos=pos[i]; LED_port=LED_seg[value[i]]; Delay(1); } } /********************************************************/ void zd3() interrupt 3 //T1中断用来扫描数码管和计800MS启动模块 { //这是计时器1中断 TH1=0xf8; //赋初值,2ms TL1=0x30; timer++; if(timer>=400) { timer=0; TX=0; //800MS 启动一次模块 //Delay(30); //一次超声波信号时长30ms,仿真时只需加负脉冲,故屏蔽此句 TX=1; } } /********************************************************/ void zd0() interrupt 1 //T0中断用来计数器溢出 { flag=1; //中断溢出标志 } /********************************************************/ void Count(void) //计算程序 { time=TH0*256+TL0; //这是最后算到的时间,往返时间,但应该再乘以12/11.0593M是一个机器周期,时间应该是time*12/11.059 TH0=0; //定时器0的初始值为0 TL0=0; S=(time*1.845)/10; //算出来是mm, 7 单片机原理及系统课程设计报告 time*12*170/(11.0592*1000)mm=time*(1845/10000) mm W[0]=S; if(((W[0]-W[1])^2)<=100) //进行校正,若两次结果相差小于10mm,则采用前一次结果 S=W[1]; else W[1]=S; if (S>=4000) //最大距离4m,即4000mm S=8888; if (flag==1) //判断是否溢出 { S=8888; flag=0; TH0=0; TL0=0; } } /********************************************************/ void main( void ) { TMOD=0x11; //设T0为方式1,T1为方式1 TH0=0; //中断0初始化 TL0=0; //中断1初始化 TH1=0XF8; TL1=0X30; ET0=1; //允许T0中断 ET1=1; TR1=1; qq=1; suocun=0; EA=1; while(1) { while(!RX) ; //当RX为零时等待,即echo为低电平 TX=1; TR0=1; D1=1; //开启计数 while(RX); //当RX为1计数并等待 TR0=0; //关闭计数 D1=0; //关指示灯 while(!qq) //待机按钮按下时,关总中断和位选 { EA=0; 8 单片机原理及系统课程设计报告 P1=0X00; } qq=1; Count(); //计算 value_shift(value); Display(value); //显示 while(suocun) //当按下锁存按钮时 ,关总中断并显示 { EA=0; Display(value); } EA=1; } } 附录二: 1.距离小于4m时的仿真图 图1 距离小于4m 9 单片机原理及系统课程设计报告 2.距离大于4m时的仿真图 图2 距离大于4m 10
正在阅读:
超声波测距仪单片机课设实验报告01-01
流体流动自测题及答案06-16
2018届高三数学(理)一轮复习考点规范练:第二章 函数 单元质检二 Word版含解析06-08
大学物理习题册(3)12-09
八年级数学上册 第12章 一次函数 12.4 综合与实践 一05-08
论语300讲(一)01-20
2018苏教版三年级下册语文教学计划11-01
2016亲子阅读活动总结汇报03-08
2015全国中考散文汇编12-07
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 测距仪
- 单片机
- 超声波
- 实验
- 报告
- 公司营运能力分析-毕业论文
- 防水工程承包合同书
- 幼儿园小班体育活动目标
- 改掉坏毛病
- 公司战略与风险管理(2013年)第三章 战略选择 VIP单元测试(下载版)
- 数据结构习题解答
- 统计学第六章课后题及答案解析
- 主题式作文序列化训练方案
- 物理化学试卷 B.doc含答案
- packeteer产品安装调试指南
- 如何做好班组建设
- 循环水泵检修规程
- 2015-2020年中国婚庆市场评估及投资风险报告
- 城乡教育均衡发展的现状与对策
- 语文课堂教学中如何激发学生的学习兴趣
- 营业中突发事件处理
- 念建党90周年讲话
- (新课标)2015年高考物理二轮复习讲练测 专题14 分子动理论 气体热力学定律 - 图文
- 我校文检课开课前后调查问卷对比分析10
- 湖北省黄冈中学、黄石二中11-12学年高二政治下学期期中联考试题