51单片机开发板-超声波测距-数码管显示(共16页).doc

上传人:飞****2 文档编号:14016057 上传时间:2022-05-02 格式:DOC 页数:16 大小:595KB
返回 下载 相关 举报
51单片机开发板-超声波测距-数码管显示(共16页).doc_第1页
第1页 / 共16页
51单片机开发板-超声波测距-数码管显示(共16页).doc_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《51单片机开发板-超声波测距-数码管显示(共16页).doc》由会员分享,可在线阅读,更多相关《51单片机开发板-超声波测距-数码管显示(共16页).doc(16页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上计算机技术系项目工作报告课程名称单片机开发板设计与制作实训班级学号姓名 项目名称超声波测距,数码管显示实训日期/时间2015.6.23-2015.7.5地点指导教师同组成员仪器设备(参考资料)计算机、Keil uVision2、Proteus ISIS 电烙铁、开发板、HC-SR04超声波模块实训内容(任务安排)1焊接开发板2自选课题3开发与调试4项目汇报与总结一、 项目名称与要求项目名称:超声波测距,数码管显示功能描述:采用HC-SR04超声波模块,STC89C52单片机以及数码管显示设计的一种超声波测距显示器,可以实现测量物体到仪器距离以及显示等功能,可以测量范围

2、为2cm 450cm ,精确度为1cm。是一种结构简单、性能稳定、使用方便、价格低廉的超声波距离测量器,具有一定的实用价值。 二、 项目设计思路 1、 硬件资源单片机开发板(携带数码管);HC-SR04超声波模块;STC89C52芯片;2、 软件设计思路软件设计采用C语言编程,运用模块化程序设计思想,对不同功能模块的程序进行分别编程,以便移植或调用,这样使软件层次结构清晰,有利于软件的调试修改。 软件设计思路是:系统初始化、发射脉冲串、计时、接收输入脉冲,接收串口输入速度值、计算距离、显示距离值、重复。超声波测距算法设计如下:超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体

3、后反射回来,就会被超声波接收器R接收到。这样,只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器于反射物体的距离。该距离的计算公式如下: d=s/2(vt)/2 其中:d为被测物于测距器的距离;s为声波的来回路程;v为声速;t为声波来回所用的时间。超声波测距原理图如下: 3、 项目涉及的知识点说明HC-SR04超声波模块简介: 实物图: 正面:背面:HC-SR04 超声波测距模块可提供 2cm-400cm 的非接触式距离感测功能, 测距精度可达高到 1cm;模块包括超声波发射器、接收器与控制电路。 1、基本工作原理: (1)采用 IO 口 TRIG 触发测距,给至少 1

4、0us 的高电平信号; (2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回; (3)有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。2、主要技术参数:(1)使用电压:DC-5V(2)静态电流:小于2mA(3)电平输出:高5V(4)电平输出:底0V(5)感应角度:不大于15度(6)探测距离:2cm-450cm(7)高精确度:1cm 三、 硬件设计1、 电路原理图HC-SR04超声波模块电路图: 2、 元器件或模块清单主要元器件单片机开发板STC89C52芯片共阳极四位数码管0.36英寸(3641B)外围模块HC-SR04超声

5、波模块四、软件设计1、程序流程图开始 初始化发送脉冲延迟等待距离为零判断接受情况否是计算距离显示距离结束2.程序清单#include reg51.h#include /常变量定义:code unsigned char table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf;/表:共阳数码管 0-9 -unsigned int time=0;unsigned int timer=0;unsigned long S=0;bit flag =0;unsigned char l_disbuff4= 0xff,0,0,0,;/显示缓冲un

6、signed char l_posit=1;/位选择/引脚定义:sbit SMG_q = P10;/定义数码管阳级控制脚(千位)本例程只用到三位数码管sbit SMG_b = P11;/定义数码管阳级控制脚(百位)sbit SMG_s = P12;/定义数码管阳级控制脚(十位)sbit SMG_g = P13;/定义数码管阳级控制脚(个位)sbit RX = P21;/模块引脚sbit TX = P20;/*/显示函数,参数为显示内容void display()P0=0XFF;/switch(l_posit)case 0:/选择千位数码管,关闭其它位SMG_q=0;SMG_b=1;SMG_s=

7、1;SMG_g=1;P0=0xff;/tablel_disbuff0;/此位不显示break;case 1:/选择百位数码管,关闭其它位SMG_q=1;SMG_b=0;SMG_s=1;SMG_g=1;P0=tablel_disbuff1&0x7f;/加入小数点break;case 2:/选择十位数码管,关闭其它位SMG_q=1;SMG_b=1;SMG_s=0;SMG_g=1;P0=tablel_disbuff2;break;case 3:/选择个位数码管,关闭其它位SMG_q=1;SMG_b=1;SMG_s=1;SMG_g=0;P0=tablel_disbuff3;break;l_posit+

8、;if(l_posit3)l_posit=0;/*/void Conut(void) time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.7)/100; /算出来是CM if(S=700)|flag=1) /超出测量范围显示“-” flag=0; l_disbuff1=10; /“-” l_disbuff2=10; /“-” l_disbuff3=10; /“-” else l_disbuff1=S%1000/100; l_disbuff2=S%1000%100/10; l_disbuff3=S%1000%10 %10; /*/void zd0() interr

9、upt 1 /T0中断用来计数器溢出,超过测距范围 flag=1;/中断溢出标志/*/void zd3() interrupt 3 /T1中断用来扫描数码管和计800MS启动模块 TH1=0xf8; TL1=0x30; display(); timer+; if(timer=400) timer=0; TX=1; /800MS 启动一次模块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _n

10、op_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; /*/void main( void ) TMOD=0x11; /设T0,T1为方式1TH0=0;TL0=0; TH1=0xf8; /2MS定时TL1=0x30;ET0=1; /允许T0中断ET1=1; /允许T1中断TR1=1; /开启定时器EA=1; /开启总中断while(1) while(!RX);/当RX为零时等待 TR0=1; /开启计数 while(RX);/当RX为1计数并等待 TR0=0;/关闭计数 Conut();/计算 五、系统调试过程与演

11、示1.电路板焊接2.载入程序调试3.调试结果演示如下:A4纸规格:长:29.7 cm宽:21 cmA4长度测量:A4宽度测量:六、项目总结 单片机课是一门实践性很强的课程,仅有课堂上理论知识的学习,对运用好单片机是完全不够的,必须亲自做实验,从实验中吸取教训,总结经验,增加实战经验,加深对单片机的理解,更好的运用单片机。单片机实验课的目的就是为学生提供做实验的机会,让学生能够从几个简单的实验中学会单片机开发的过程和单片机的实际运用。通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在

12、原有的基础上进行改进,使之功能不断完善,成为真己的东西。经过几个星期的实训设计,我要感谢我的指导教师张劲老师在实训设计中对我给予的悉心指导和帮助,也谢谢同学对我的的帮助。在此次实训中,对Keil uVision2软件的使用有了明显的提高,比以前更加的熟悉了用该软件菜单的各项调试工具和窗口,再结合硬件和软件,进行整体调试。我深刻的认识到了理论知识和实践操作必须是相结合的,也许在实训时会有很多各种软、硬件等故障。总之,亲自动手是课堂学习的延续,电子领域随时随地都在发生着翻天覆地的变化,现有的知识储备总是落后于科技的发展脚步,我们只有不断学习新知识,才能做到面对新课题时游刃有余。通过为期一周的单片机

13、实训,使我们对这门课有了许多新的了解,弥补了在课堂上学习的不足。并且,这次实训是真正意义上的学以致用。让我们对单片机有了更加清晰的了解更深刻的认识。所以,在这里我得感谢我们的实训老师! 首先,在这次试训中我被单片机强大的功能所震撼,以前在课堂上完全没有能理解可编程单片机的优越性。这次通过实体仿真软件等辅助软件的共同效果,是这次试训有了鲜明的活力。换是我们认识到这次试训不仅仅是一个软件的应用,更多的是使我们认识到学习到很多在课堂上无法得到的东西。 单片机作为一种最简单的软件,与我们的日常生活息息相关,了解一些单片机程序的简单录入是费城必要的。如:LED显示器、键盘和显示器的应用和原理。 在这次实

14、训中,我们组做的事超声波测距。从单片机开发版的焊接到程序的写入运行,最后让测距仪可以使用。这使我们深深地体会到了单片机在现实生活中的小小应用,既增强了我们的好奇心,又巩固了我们的理论知识。更让我们体会到了单片机手动的开始平台的完善与成熟。只要你有想法,单片机就有可能让他成为现实。在这次试训中不仅只对单片机编程有了新的认识,还对整个单片机的开发平台都有了一定的了解,真是受益颇多。 通过这几天的试训,使我的感触很深,解决一个问题有很多办法的,要达到目的,不同的人就有不同的方法。然后,我也深深体会到要注重团退合作,同学们的帮助会起到很大作用。在编程中“简”字贯穿于整个程序设计中,越简单越好,毕竟单片机留给用户的资源是有限的,所以我们要充分利用这些资源,达到更好的效果,这些是我们在以后的学习生活中应值得注意的地方。 这次实训真的受益匪浅!以前对单片机只是纸上谈兵,经过这次实训,我们才是真正的自己动手去应用单片机,摸索单片机蕴藏的知识。最后,我得在此感谢我们的实训老师的谆谆教诲和悉心教导!专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com