欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    单片机超声波测距模块.docx

    • 资源ID:18003781       资源大小:277.97KB        全文页数:17页
    • 资源格式: DOCX        下载积分:6金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要6金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机超声波测距模块.docx

    1、单片机超声波测距模块 西安邮电大学 通信与信息工程学院 课程设计实验报告专业班级: 电科1003班 * * 学号(班内序号): *(13 ) 2014 年 3 月 25 日成绩鉴定表学生姓名易海博班级/学号电科1003班/03102085进行时间2014年3月 1日 2014年3月28日成绩鉴定学习内容(20分)与教学任务计划结合程度(10分)与专业培养结合程度(6分)其它(4分)学习态度评价(20分)实践能力(10分)学习态度(6分)学习纪律(4分)报告鉴定(60分) 报告内容与实践过程紧密结合(15分)报告内容与教学计划内容紧密结合(15分)报告质量(主题、结构、观点、逻辑、资料、字数 3

    2、0分)评阅教师姓名陈瑞职称讲师成绩评语 评阅教师签字 年 月 日 超声波测距模块设计一设计目的本设计利用超声波传输中距离与时间的关系,采用STC51单片机进行控制和数据处理,设计出能够精确测量两点间距离的超声波测距仪。同时了解单片机各个管脚的功能,工作方式,计数/定时,I/O口相关的原理,并了解学习单片机的相关内容知识。二设计要求设计一个超声波测距仪,能够用1602屏实时显示测量的数据,并要求设定一定距离下提示报警。三设计器材 元器件 数量 电阻 2个 HC-SR04(超声波测距模块) 1片 HJ1602A(液晶显示模块) 1片 单片机最小系统板 1个四超声波测距原理 在超声探测电路中,发射端

    3、得到输出脉冲为一系列方波,其宽度为发射超声的时间间隔,被测物距离越大,脉冲宽度越大,输出脉冲个数与被测距离成正比。超声测距有以下方法: 取输出脉冲的平均值电压,该电压(其幅值基本固定)与距离成正比,测量电压即可测得距离; 测量输出脉冲的宽度,即发射超声波与接收超声波的时间间隔t,故被测距离为S=1/2vt。本测量电路采用第二种方案。由于超声波的声速与温度有关,如果温度变化不大,则可认为声速基本不变。如果测距精度要求很高,则应通过温度补偿的方法加以校正。超声波在标准空气中的传播速度为331.45m/s,由单片机负责计时,单片机使用12.0M晶振。超声波测距的算法设计:超声波在空气中传播速度为每秒

    4、钟340米(15时),x1是声波返回的时刻,x2是声波发声的时刻,x2-x1得出的是一个时间差的绝对值,则超声波发出遇到反射物返回的距离如下1 超声波测距器的系统框图如下2 图1 图2 系统框图五、设计方案及分析(包含设计电路图)硬件电路设计 1.单片机最小系统控制模块设计与比较采用STC51单片机控制。STC51单片机是一种低功耗、高性能CMOS8位微控制器,具有 8KB的系统可编程Flash 存储器。最小系统电路图如图3所示图3 单片机最小系统2. 显示模块设计HJ1602A显示,连接电路简单,显示电路连接图如图4图4 显示屏电路3. 超声波测距模块图5 超声波电路本系统采用超声波模块UR

    5、F04进行测距,该模块使用直流5V供电,理想条件下测距可达500cm,广泛应用于超声波测距领域,模块性能稳定,测度距离精确,盲区(2cm)超近。超声波测距原理:单片机给超声波传感器模块一个触发电平,超声波传感器的发射管自动发送8个40KHZ的方波,当超声波检测到障碍物时就会信号返回,接收管接收到信号返回之后,单片机处理从单片机发送信号到接收到返回信号这段时间里超声波传感器模块输出高电平。这段高电平持续时间即为超声波从发射到返回的传播时间。测量距离=(高电平持续时间*波速)/2。4 .其他电路设计a.复位电路单片机在RESET端加一个大于20ms正脉冲即可实现复位,上电复位和按钮组合的复位电路如

    6、下:图6 复位电路在系统上电的瞬间,RST与电源电压同电位,随着电容的电压逐渐上升,RST电位下降,于是在RST形成一个正脉冲。只要该脉冲足够宽就可以实现复位,即(RC(20ms。一般取R(1K(,C(22uF。当人按下按钮S1时,使电容C1通过R1迅速放电,待S1弹起后,C再次充电,手动复位。R1一般取200(。b.时钟电路当使用单片机的内部时钟电路时,单片机的XATL1和XATL2用来接石英晶体和微调电容,如图所示,晶体一般可以选择3M24M,电容选择30pF左右。我们选择晶振为12MHz,电容33pF。图7 时钟电路图 8按键电路c. 按键电路我们通过P1.0来启动测量,程序中通过查询P

    7、1.0的电平来检测是否按键被按下,电路原理如下:当按下按键时P1.0为低电平,单片机通过 查询到低电平开始测量距离,当松开按键,P1.0即为高电平。在软件中通过软件延时来消除按键的机械抖动。5.软件程序设计软件分为两部分,主程序和中断服务程序。主程序完成初始化工作、超声波发射和接收顺序的控制。外部中断服务子程序主要完成时间值的读取、距离计算、结果的输出、数码管显示等工作。主程序首先是对超声波模块初始化,通过延时函数产生10us的高电平,再将计数器初始化,判断超声波接收端是否收到回波,进而执行外部中断程序。中断程序首先关闭外部中断,关闭计数器,然后读出计数值,根据公式计算距离,然后将结果送往数码

    8、管显示。图9主程序流程图图10 外部中断服务子程序为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1 ms(这也就是超声波测距仪会有一个最小可测距离的原因)后,才打开外中断0接收返回的超声波信号。由于采用的是12 MHz的晶 振,计数器每计一个数,就是1s,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按公式计算,即可得被测物体与测距仪之间的距离,设计时取30时的声速为340 m/s则有: d=(ct)/2=170T0/10000cm 其中,T0为计数器T0的计算值。六、问题分析与解决方法1.在拿到设计要求之后,我们根据超声波模块的工作原理

    9、:给超声波传感器模块一个触发电平,超声波传感器的发射管自动发送8个40KHZ的方波,当超声波检测到障碍物时就会信号返回,接收管接收到信号返回之后,单片机处理从单片机发送信号到接收到返回信号这段时间里超声波传感器模块输出高电平。这段高电平持续时间即为超声波从发射到返回的传播时间。测量距离=(高电平持续时间*波速)/2。我们的设计方案是利用计数器0进行计数,通过捕获上升沿和下降沿用计数器来计算高电平的持序时间,实现数据的测量。而且经讨论学习后知道,高电平持续时间=计数值单片机的机器周期(1us)。2.在设计数码管显示电路时,在刚开始连接电路时,发现连好之后,数码管不亮,最后我们分析电路,单片机IO

    10、口输出电流太小,不足以驱动数码管,于是我们加了一个与门的驱动器,使之前的3A电流变为5A,由此数码管就足以驱动。七、设计结果a测试环境及工具测试距离:在实验室的特定环境中测量了0.032.15m。测试仪器:数字万用表,直尺。b测试方法超声波测距测距仪的硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。用直尺确定障碍物的距离,数码管显示测量的距离。c测试结果分析测距仪能测的范围为0.032.15m,测距仪最大误差不超过1cm。系统调试完后应对测量误差和重复一致性进行多次实验分析,不断优化系统使其达到实际使用的测量要求。由于条件有限,我们忽略温度的影响,不进行温度补偿,声速选取340

    11、m/s.调试测量的部分测距数据如下表所示:测试序号显示距离(m)实际距离(m)误差(m)10.0350.0340.00121.001.00031.2571.2550.00241.3641.3650.00152.1482.1470.001调试测量的部分数据八、设计体会与收获本次试验目的为设计利用超声波传输中距离与时间的关系,采用STC51单片机进行控制和数据处理,设计出能够精确测量两点间距离的超声波测距仪。我们这次设计共有三个模块,分别是超声波模块,显示屏模块和报警模块。一开始搭建完成后,在调试的时候出现了很多问题,后来经过重新检查,最后才完成。这次课程设计虽然只有短短两周的时间,但却是一次难得

    12、的理论与实践相结合的机会,以前只是在书本上学习到单片机可以实现的很多功能,但却没有机会实践,通过本次课程设计我不光复习了模电知识及单片机知识,锻炼了动手能力,同时也熟悉掌握了proteus仿真软件和Protel电路设计软件的使用。对于我们电科专业的学生来说,Proteus和Protel是必须掌握的电路仿真软件,这次课程设计给我提供了一个很好的机会,让我可以很好地锻炼自己的实践能力。总的来说,此次实习还是收获颇丰的,很感谢学校可以给我们提供这样的一次机会。附录:超声波测距仪系统电路原理图图11超声波测距仪系统电路原理图附录:程序代码#include #include #define uint u

    13、nsigned int #define uchar unsigned char sbit trig=P12; sbit echo=P32; sbit test=P13; sbit dula=P26; sbit wela=P27; sbit BEEP=P23;sbit rs=P10;sbit rw=P11;sbit lcden=P25;sbit k1=P34;uchar table1=Distance Test:;uchar table2=000.0cm;uchar cache4=0,0,0,0;uint distance,timeh,timel,flag;void delay(uint x)u

    14、int a,b; for(a=x;a0;a-) for(b=10;b0;b-); void delay1(uint x)uint a,b; for(a=x;a0;a-) for(b=100;b0;b-); void delay20us() uchar a; for(a=0;a100;a+); /*void beer() BEEP=0; delay2(10); */ void initime0() TMOD=0x01; TH0=0; TL0=0; EA=0; ET0=0; EX0=0; voidestern() interrupt 0 timeh=TH0; timel=TL0; flag=1;

    15、EX0=0; TR0=0; void write_com(uchar com) P0=com; rs=0; lcden=0; delay(10); lcden=1; delay(10); lcden=0; void write_date(uchar date) P0=date; rs=1; lcden=0; delay(10); lcden=1; delay(10); lcden=0; void init() rw=0; dula=0; wela=0; write_com(0x38); delay(20); write_com(0x0f); delay(20); write_com(0x06)

    16、; delay(20); write_com(0x01); delay(20); void display(distance) uchar a; cache1=distance/1000; cache2=distance%1000/100; cache3=distance%100; cache4=distance%10; table20=cache1+0; table21=cache2+0; table22=cache3+0; table24=cache4+0; write_com(0x80+2); delay(20); for(a=0;a13;a+) write_date(table1a);

    17、 delay(20); write_com(0xc0+9); delay(50); for(a=0;a13;a+) write_date(table2a); delay(40); void shixi() EA=0; echo=1; trig=1; delay20us(); trig=0; while(echo=0); flag=0; EA=1; EX0=1; TR0=1; TH0=0; TL0=0; delay1(50); TR0=0; EX0=0; if(flag=1) uint time; time=timeh*256+timel; distance=time*0.1720; if(distance=500) BEEP=0; else BEEP=1; display(distance); /*if(flag=0) distance=0; test=!test; */ void main() initime0(); init(); test=0; trig=0; EA=1; if(k1=0) delay1(10); if(k1=0) while(!k1); while(1) shixi(); display(distance);


    注意事项

    本文(单片机超声波测距模块.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开