收藏 分销(赏)

单片机超声波测距.doc

上传人:w****g 文档编号:2187800 上传时间:2024-05-22 格式:DOC 页数:21 大小:17.72MB 下载积分:10 金币
下载 相关 举报
单片机超声波测距.doc_第1页
第1页 / 共21页
单片机超声波测距.doc_第2页
第2页 / 共21页


点击查看更多>>
资源描述
______________________________________________________________________________________________________________ 成绩 课程设计报告 题 目 基于单片机的超声波测距 课 程 名 称 单片机系统软件设计与开发 院 部 名 称 机电工程学院 专 业 电气工程及其自动化 班 级 13电气工程及其自动化(单) 学 生 姓 名 杨秋平 学 号 1304201016 课程设计地点 工科楼 C304 课程设计学时 20 指 导 教 师 李国利 金陵科技学院教务处制 摘 要 超声波具有传播距离远、能量耗散少、指向性强等特点,在实际应用中常利用这些特点进行距离测量。超声波测距具有非接触式、测量快速、计算简单、应用性强的特点,在汽车倒车雷达系统、液位测量等方面应用广泛。本次课设利用超声波传播中距离与时间的关系为基本原理,以80C51单片机为核心进行控制及数据处理,通过外围电源、显示、键盘、声光报警等电路实现系统供电、测距显示、报警值设置及报警提示的功能。软件部分采用了模块化的设计,由系统主程序及各功能部分的子程序组成。超声波回波信号输入单片机,经单片机综合分析处理后实现其预定功能。 关键词:80C51单片机;超声波测距 目 录 一 、概述…………………………………………………………………………3 二、总体设计方案及说明……………………………………………………………6 三 、系统硬件电路设计………………………………………………………………7 (1) 时钟模块……………………………………………………………7 (2) 超声波测距模块………………………………………………………7 (3) 警报电路模块…………………………………………………………8 (4) 距离显示模块 ………………………………………………………8 (5) 清零模块………………………………………………………………9 (6) 电路总体设计图…………………………………………………………9 四 、系统软件部分设计……………………………………………………………10 系统源程序………………………………………………………………10 五、系统仿真过程与结果……………………………………………………………14 六、系统实物制作与功能实现………………………………………………15 六 、总结……………………………………………………………………………19 七 、参考文献………………………………………………………………………20 一、概述 1.1单片机简介 单片机是单片微型计算机的简称,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 1.2 超声波测距原理  常用的超声测距的方法是回声探测法,超声波发射器向某一方向发射超声波,在发射时刻的同时计数器开始计时,超声波在空气中传播,途中碰到障碍物面阻挡就立即反射回来,超声波接收器收到反射回的超声波就立即停止计时。设超声波在空气中的传播速度为340m/s(不计介质温度变化对速度的影响),根据计时器记录的时间t,就可以计算出发射点距障碍物面的距离s,即:s=340t/2。   如图2-1所示:                        式中:  L—两探头中心之间距离的一半;   又知道超声波传播的距离为:  式中:  v—超声波在介质中的传播速度;         t—超声波从发射到接收所需要的时间;       将式2-1、2-2、2-3联立 得:    其中,超声波的传播速度v在一定的温度下是一个常数(例如在温度T=30度时,V=349m/s);当需要测量的距离H远远大于L时,上式变为:    所以,只要需要测量出超声波传播的时间t,就可以得出测量的距离H. 二、 总体设计方案与说明 2.1:设计要求  1、 以51系列单片机为核心,控制超声波测距系统;  2、测量范围为:2cm~4m,测量精度:1cm;  3、通过键盘电路设置报警距离,测出的距离通过显示电路显示出来;  4、当所测距离小于报警距离时,声光报警装置报警加以提示;  5、设计出相应的电子电路和控制软件流程及源代码,并制作实物。 2.2系统总体方案设计    本超声波测距系统由系统硬件电路及软件程序实现两部分构成。其中由以超声波测距模块、警报电路模块、距离显示模块、时钟模块、清零模块构成硬件系统。以STC89C52单片机为核心,通过按钮trig控制超声波测距模块发射超声波并接收回波,测算出前方障碍的距离,输入单片机进行运算,与预设报警距离比较后判断是否启动光报警装置。    根据系统功能要求及模块划分可绘制出系统硬件框图,如图2-2所示: LM016L显示模块 时钟模块 8 警报电路模块 0 C 清零模块 5 超声波测距模块 1 三、系统硬件部分设计 (1)时钟模块 (2)超声波测距模块 以一个按钮代替 按下trig超声波开始测距,按的时间越短则距离越短,按的时间越长则距离越长。最长不可超过400cm,否则显示为000,且警报灯亮。 (3)警报电路模块 在测距超过400cm时,D1亮,表示超出有效测量范围。 (4)距离显示模块 显示超声波测距的距离。 (5)清零模块 \总体电路设计图 四、系统软件部分设计 #include<reg51.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit rs=P2^7; //LCD数据命令选择端 sbit lcden=P2^5;//LCD使能端 sbit wr=P2^6;//LCD读写端 sbit trig=P3^7; //触发控制信号输入 sbit echo=P3^6; //回响信号输出 sbit out=P2^1; //距离超出报警 uchar code table[]=" distance:";//数组定义 void delay(uint z) //1ms延时 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void write_com(uchar com)//LCD写命令子程序 { rs=0; wr=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; } void write_date(uchar date)//LCD写数据子程序 { rs=1; wr=0; P0=date; delay(5); lcden=1; delay(5); lcden=0; } void main() { uchar k,m; long temp; //距离 TMOD=0x01; //设置定时器0为模式1 TH0=0x00; //定时器清零 TL0=0x00;//定时器清零 ET0=1; //开定时器0中断2 EA=1; //开总中断 wr=0; lcden=0; out=0; //关闭报警 write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); for(k=0;k<13;k++) { write_date(table[k]); delay(5); } write_com(0x80+0x40+9);//LCD位置定位 write_date('m'); write_date('m');//距离单位mm while(1) { TH0=0x00; TL0=0x00; trig=1; //触发控制信号写入1 for(m=0;m<20;m++)//延时等待20us _nop_(); trig=0;//触发控制信号写入0 while(!echo);//回响信号输出为0 TR0=1; //开启定时器0 while(echo);//等待回响信号 { TR0=0; //关闭定时器 temp=TH0*256+TL0;//读出定时器0的时间 temp*=170; //距离 = 速度 * 时间 将temp转换成距离单位为 mm temp/=1000; } if(temp<=400) //距离小于40cm时 显示当前距离 { out=0; write_com(0x80+0x40+5); write_date(0x30+temp%1000/100); write_date(0x30+temp%100/10); write_date(0x30+temp%10); delay(1000); } else //当距离大于40cm时显示000 并且开启报警 { out=1; write_com(0x80+0x40+5); write_date(0x30+0); write_date(0x30+0); write_date(0x30+0); delay(1000); } } } void time() interrupt 1 { TH0=0xfc; TL0=0x18; temp1++; } 系统仿真过程与结果 仿真图 正常测距(距离小于400cm) 超出距离(距离大于400cm) 实物图: 实验过程: (1) 距离小于400mm时,显示当前距离且蜂鸣器不发出声音 (2) 当距离大于400mm时显示000 并且开启报警 3、当测试距离为0时:显示000,并且报警(不在测量范围内) 六、总结 结论:本次超声波测距的有效测量范围为400cm以内,显示器显示测量距离;当测量距离超出400cm时,显示为“000”,并且警报灯亮。 心得与体会:做了几个星期的基于单片机超声波测距仪的实训项目终于完成了!虽然不是很顺利,很辛苦,但是看到我们自己做出的实验课题,自己就觉得值!都说付出就会有收获,经过几个星期的努力,我和我的小组成员带着好奇和兴奋顺利的做完了所有的步骤与程序。说真的,这几个星期我学到了好多好多,同时眼界也宽了好多好多的。 本次实验最大的难点就在于对程序的调试,虽然学过单片机的编程,不过还是出现了许多的错误,经过查找书籍和询问同学最终完成了程序的编写。然后带入仿真图进行调试,完善程序上的一些不足。  这次的实物依旧是用开发板制作的,所以在实物方面还是比较熟练的,毕竟对于开发板还是比较熟悉的。 这次课程设计,能加强我们对于单片机一些软件的应用,以及对我们编写程序也有许多的好处,不至于以后对于编程一窍不通。也能锻炼我们的团队合作能力,毕竟对于我们而言,单独一个人是很难完成这个任务的,更多的还是要靠大家一起努力。对于以后的工作有很大的帮助。       总之,“一份耕耘,一份收获”。通过我们自己的亲手操作,我们确实学到了许多东西。 七、 参考文献   ① 谭浩强 .C程序设计(第三版). 清华大学出版社 . 2010.02    ② 郭天祥 .新概念51单片机c语言教程 . 电子工业出版社 . 2009.01 ③ 胡向东 .传感器与检测技术 . 机械工业出版社 . 2009.02.01 ④ 向敏 .微控制其原理及应用 . 人民邮电出版社 . 2012.04.01 Welcome To Download !!! 欢迎您的下载,资料仅供参考! 精品资料
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服