ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:19.29KB ,
资源ID:18863048      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18863048.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(超声波测距仪单片机课设实验报告Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

超声波测距仪单片机课设实验报告Word文件下载.docx

1、超声波测距的原理是利用超声波在空气中的传播速度为已知, 测量声波在发射后遇到障碍物反射回来的时间, 根据发射和接收的时间差计算出发射点到障碍物的实际距离。超声波测距主要应用于倒车提醒、建筑工地、工业现场等的距离测量。超声波在气体、液体及固体中以不同速度传播,定向性好、能量集中、传输过程中衰减较小、 反射能力较强。 超声波能以一定速度定向传播、 遇障碍物后形成反射,利用这一特性, 通过测定超声波往返所用时间就可计算出实际距离, 从而实现无接触测量物体距离。超声波测距迅速、方便,且不受光线等因素影响,广泛应用于水文液位测量、 建筑施工工地的测量、 现场的位置监控、 振动仪车辆倒车障碍物的检测、移动

2、机器入探测定位等领域。1.2 设计方法本课题包括数据测距模块、显示模块。测距模块包括一个 HC-SR04 超声波测距模块和一片 AT89C51 单片机,该设计选用 HC-SR04 超声波测距模块,通过HC-SR04 发射和接受超声波,使用 AT89C51 单片机对超声波进行计时并根据超声波在空气中速度为 340 米每秒的特性计算出距离。 显示模块包括一个 4 位共阳极 LED 数码管和 AT89C51 单片机,由 AT89C51 单片机控制数码管动态显示距离。1.3 设计要求采用单片机为核心部件, 选用超声波模组, 实现对距离的测量, 测量距离能够通过显示输出 (LED , LCD) 。2设计

3、方案及原理2.1 超声波测距模块设计HC-SR04超声波测距模块可提供 2cm-400cm的非接触式距离感测功能,测距精度可达高到 3mm。模块包括超声波发射器、接收器与控制电路。当提供一个10uS以上正脉冲触发信号,该模块内部将发出 8个 40kHz 周期电平并检测回波。一旦检测到有回波信号则输出回响信号。 回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离由以上信息,在设计时选用两个定时器,定时器 1用来定时 800ms,当产生1中断时,启动 HC-SR04超声波测距模块, 即给其 TRIG(发射)口送一个持续 20ms 的正脉冲,定时器 0用来

4、对超声波传递时间进行计时,即当 ECHO(回波)口为高电平时启动计时,当 ECHO口变为低电平时关闭计时。再根据超声波在空气中的传播速度为 340米每秒,通过 AT89C51计算出距离, 当距离超过 400cm时,显示8888,表示超出工作距离。2.2 LED 显示模块设计将算得的距离通过一个 4 位 LED数码管采用动态扫描进行显示。2.3 其他功能的设计考虑到实际的需求,本设计还应增加以下功能:1、增加一个指示灯。当 ECHO(回波)口为高电平时,即超声波信号在空气中传播时,指示灯点亮。当数码管不能正常点亮时,若指示灯正常指示,则说明 LED 显示模块发生故障;若指示灯不能正常点亮,则说明

5、超声波测距模块发生故障。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 个

6、0.17 元5、电路板 1 个 0.57 元6、其他开关、电阻及电容总计 0.5 元总计: 8.54 元市场平均价格: 12 元预计定价: 10 元利润: 1.46 元3硬件设计此系统的硬件设计主要包括 HC-SR04 超声波测距模块、 AT89C51 单片机、42位 LED 显示模块,并连入指示灯、待机开关和锁存开关。仿真时,将 HC-SR04 超声波测距模块用一个 555 延时电路来代替即可,其中调节改变滑动变阻器的阻值可以模拟被测物体距离的变化。 实验仿真电路图如图1所示。图 1 设计硬件电路图4软件设计此系统的软件设计主要包括超声波测距模块设计、 LED 显示模块设计、和其他拓展模块。

7、采用定时器 1 每 800ms 发射一个脉冲信号启动超声波测距模块,采用定时器 0 计算超声波传播时间, 并通过一个计算函数算得距离, 然后送 LED显示屏进行动态扫描并显示结果。4.1 程序流程图主程序流程图如图 2 所示。3图 2 程序流程图44.2 程序基于 AT89C51 单片机的超声波测距源程序见附录一。5系统仿真及调试结果基于 AT89C51 单片机的超声波测距仿真结果见附录二。基于 AT89C51 单片机的超声波测距调试结果如图 3 所示。图 3 系统程序调试结果6总结本设计通过对超声波测距的研究, 与单片机结合,实现了超声波测距的目标,并增加了数据锁存、指示灯和待机的功能。 仿

8、真时由于软件中没有 HC-SR04模块,因此用 555 延时电路来代替。通过这次课程设计, 我加深了对单片机的理解, 也为以后更好的运用打下了基础。最后要感谢李老师的指导,在李老师的耐心解答下,我受益匪浅。参考文献1李积英 .数字电子技术 .中国电力出版社 ,20112深圳市捷什科技有限公司 .HC-SR04 超声波测距模块说明书 .3彭江 .单片机原理及接口技术的开发 J. 软件导刊 ,2011,12(8):66-70.4王思明 .张金敏 .苟军年 .张鑫 .杨乔礼 .单片机原理及应用系统设计 .科学出版社 .20125附录一:实验源程序#include#define uchar unsig

9、ned char#define uint unsigned int#define LED_port P0 /用于 LED 段选#define LED_pos P1 /用于 LED 位选sbit qq=P26; /待机按钮sbit suocun=P21; /锁存结果sbit RX=P14; /回波sbit TX=P15; /送波sbit D1=P37; / 接收指示灯uint time=0; /定时器 0 时间uint timer=0; /定时器 1 时间unsigned long S=0; /用于显示最后计算得到的距离unsigned long W2=0,0; / 用于比较两次测算距离大小bi

10、t flag =0; /定时器 0 中断溢出标志位uchar value4;uchar code LED_seg10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; / 数码管段选uchar code pos4=0x01,0x02,0x04,0x08; /数码管位选/*/void Delay(uchar t) /延时函数uchar i,j,k;for(i=0;it;i+)for(j=0;j20;j+)for(k=0;k=400)timer=0;TX=0; /800MS 启动一次模块/Delay(30); /一次超声波信号时长 30ms,仿真

11、时只需加负脉冲,故屏蔽此句TX=1;void zd0() interrupt 1 /T0 中断用来计数器溢出flag=1; /中断溢出标志void Count(void) /计算程序time=TH0*256+TL0; /这是最后算到的时间, 往返时间,但应该再乘以 12/11.0593M 是一个机器周期,时间应该是 time*12/11.059TH0=0; /定时器 0 的初始值为 0TL0=0;S=(time*1.845)/10; / 算 出 来 是 mm ,7time*12*170/(11.0592*1000)mm=time* (1845/10000) mmW0=S;if(W0-W1)2)

12、=4000) /最大距离 4m,即 4000mmS=8888;if (flag=1) /判断是否溢出flag=0;void main( void )TMOD=0x11; /设 T0 为方式 1,T1 为方式 1 /中断 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 为低电平TR0=1;D1=1; /开启计数while(RX); /当 RX 为 1 计数并等待TR0=0; /关闭计数D1=0; /关指示灯qq) /待机按钮按下时,关总中断和位选EA=0;8P1=0X00;Count(); /计算value_shift(value);Display(value); /显示while(suocun) /当按下锁存按钮时 ,关总中断并显示附录二:1距离小于 4m时的仿真图图 1 距离小于 4m92距离大于 4m时的仿真图图 2 距离大于 4m10

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1