数码管超声波c语言黑51,51单片机开发板-超声波测距-数码管显示

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

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

2、度为1cm。是一种结构简单、性能稳定、使用方便、价格低廉的超声波距离测量器,具有一定的实用价值。2、 项目设计思路 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 触发测距,给至少 10us 的高电平信号; (2)模块自。

4、动发送 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超声波模块四、软件设计1、程序流程图开始初始。

5、化发送脉冲延迟等待距离为零判断接受情况否是计算距离显示距离结束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,;/显示缓冲unsigned char l_posit=1。

6、;/位选择/引脚定义: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=1;SMG_g=1;P0=0xff;/ta。

7、blel_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+;if(l_posit3)l_posit=。

8、0;/*/void Conut(void)time=TH0*256+TL0;TH0=0;TL0=0;S=(time*1.7)/100; /算出来是CMif(S=700)|flag=1) /超出测量范围显示“-” flag=0;l_disbuff1=10; /“-”l_disbuff2=10; /“-”l_disbuff3=10; /“-”elsel_disbuff1=S%1000/100;l_disbuff2=S%1000%100/10;l_disbuff3=S%1000%10 %10;/*/void zd0() interrupt 1 /T0中断用来计数器溢出,超过测距范围flag=1;/中。

9、断溢出标志/*/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_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _。

10、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();/计算五、系统调试过程与演示1.电路板焊接2.载入程序调试3.调试结果演示如下:A4纸规格:长:29.7 cm宽:21 cmA4。

11、长度测量:A4宽度测量:六、项目总结单片机课是一门实践性很强的课程,仅有课堂上理论知识的学习,对运用好单片机是完全不够的,必须亲自做实验,从实验中吸取教训,总结经验,增加实战经验,加深对单片机的理解,更好的运用单片机。单片机实验课的目的就是为学生提供做实验的机会,让学生能够从几个简单的实验中学会单片机开发的过程和单片机的实际运用。通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。经过几个星期的实训设计,我要感谢我的指导教师张劲。

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

13、我们对单片机有了更加清晰的了解更深刻的认识。所以,在这里我得感谢我们的实训老师!首先,在这次试训中我被单片机强大的功能所震撼,以前在课堂上完全没有能理解可编程单片机的优越性。这次通过实体仿真软件等辅助软件的共同效果,是这次试训有了鲜明的活力。换是我们认识到这次试训不仅仅是一个软件的应用,更多的是使我们认识到学习到很多在课堂上无法得到的东西。单片机作为一种最简单的软件,与我们的日常生活息息相关,了解一些单片机程序的简单录入是费城必要的。如:LED显示器、键盘和显示器的应用和原理。在这次实训中,我们组做的事超声波测距。从单片机开发版的焊接到程序的写入运行,最后让测距仪可以使用。这使我们深深地体会到。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/542393.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 方法 示例_Java ArrayDeque带有示例的removeFirstOccurrence()方法

java 方法 示例ArrayDeque类removeFirstOccurrence()方法 (ArrayDeque Class removeFirstOccurrence() method) removeFirstOccurrence() method is available in java.lang package. removeFirstOccurrence()方法在java.lang包中可用。 removeFirstOccurrence() method is use…

社交应用动态九宫格图片的规则

这里主要以微信和QQ空间为作为研究对象,得到的结论如下。 QQ空间里的动态 iOS设备,以iPhone6为分界 iPhone6及以上分辨率的设备: 当宽且高同时 > 512px时,判断 宽/高的比例值:大于 2时,以高度为基准&…

c语言实现链表结构6,用c语言实现的链表结构--数据结构实验

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include"stdio.h"//使用new指针来将临时变量重新初始化#include"stdio.h"typedef int ElemType;typedef struct LNode{ElemType data;struct LNode *next;}LNode,*LinkList;void InitList(LinkList &L)//…

splunk中 如何隐藏input_翻糖制作中,如何避免裂缝,如何隐藏裂缝,如何防粘?...

翻糖蛋糕 因精致的样子和栩栩如生的各种造型深得人们的喜爱,它不仅满足了人们对蛋糕口味及装饰日益多样化的需求,同时也在动手制作的过程中,享受到美食与生活的无穷乐趣。不过裂缝,不平整,干燥对翻糖作品来说无疑是噩梦…

Java DataInputStream readUnsignedByte()方法(带示例)

DataInputStream类readUnsignedByte()方法 (DataInputStream Class readUnsignedByte() method) readUnsignedByte() method is available in java.io package. readUnsignedByte()方法在java.io包中可用。 readUnsignedByte() method is used to read 1 byte (i.e. 8 bit) of …

wpf中groupbox有什么用_展示设计中的标摊是什么 用的什么材料

经常听从事展示设计的工作人员说起标摊,那什么是标摊呢?顾名思义,标摊就是通用标准的国际展会摊位的缩写。但是不少人看到干巴巴的词语还是不能理解。那么这篇文章从用途、材料等方面来详细介绍标摊究竟是什么。 标摊的主要材质是什么一般来说…

Java BigInteger类| nextProbablePrime()方法与示例

BigInteger类nextProbablePrime()方法 (BigInteger Class nextProbablePrime() method) nextProbablePrime() method is available in java.math package. nextProbablePrime()方法在java.math包中可用。 nextProbablePrime() method is used to get the next probable prime n…

SQL 行转列的两种做法

if object_id(tb)is not null drop table tbGocreate table tb(姓名 varchar(10),课程 varchar(10),分数 int)insert into tb values(张三,语文,74)insert into tb values(张三,数学,83)insert into tb values(张三,物理,93)insert into tb values(李四,语文,74)insert into tb…

android一个工程的xml怎么引用另外一个工程的xml,如何在Android中使用XML引用库中另一个包的字符串?...

Androiddocumentation告诉我,我可以使用“包名”访问另一个包中的字符串,无论这意味着什么:[:]/所以在我的清单中,我想访问一个字符串,我已将其放在一个单独的库项目中,在com.globalmentor.android包中 – 毕竟我的R类就是这样:android:label"com.g…

kotlin 类和对象_Kotlin程序| 类和对象的示例(带有学生数据)

kotlin 类和对象In the below program, we are creating a student class to input and print the student data like name, age. It is a simple example of creating class in Kotlin. 在下面的程序中,我们将创建一个学生班级,以输入和打印学生数据&am…

python 复数数组_python的数组运算及推导式的运用

运行方式:缩进 TAb(四格)或者space(1格)注释:#可以在程序后注释文字 或者 ... ,""" ... """ 可以多行注释 中间全为注释数值输出 print(...)图形输出 import matplotlib as pltplt.show()列表 list[] #字符串…

ActiveX: 如何用.inf和.ocx文件生成cab文件

ActiveX: 如何用.inf和.ocx文件生成cab文件 转载于:https://www.cnblogs.com/time-is-life/p/5977962.html

Android工具里没有Android,android – AppCompat工具栏没有显示

在主题中声明.NoActionBar之后,以及将工具栏放在布局中,我的工具栏不会显示.我最终得到的正是你在宣布没有动作栏时所期望的 – 没有动作栏.这是布局:activity_home.xml:layout"layout/app_bar_home"android:layout_width"match_parent&q…

操作系统中的处理机调度调度_操作系统中的多处理器调度

操作系统中的处理机调度调度多处理器操作系统 (Multiprocessor Operating system) A multiprocessor system consists of several processors which share memory. In the multiprocessor, there is more than one processor in the system. The reason we use multiprocessor …

转:Delphi2010新发现-类的构造和析构函数功能

Delphi2010发布了. 虽然凭着对Delphi的热爱第一时间就安装了,但是现在可能是年纪大了,对新事物缺乏兴趣了.一直都没有仔细研究. 今天有点时间试了一下新功能. 本来C#和Delphi.NET是支持类的构造函数/析构函数的(注意不是实例的构造和析构).也就是在模块初始化/卸载的时候会调用…

sed 替换_sed命令批量替换文件内容

“ 开发人员有时会大批量替换文件内容,sed命令是一个很好用的工具。”01—暴力替换方式近期有个临时任务,将系统中所有"帐"替换为"账",那"帐"和"账"有啥区别呢;1、账的部首是贝;帐的部首是巾。2、账是关于货币、…

android 模仿uc标签页,模仿UCweb菜单 - 白羽雕弓 - 博客园

UCWeb的菜单看起来不错,自己想模仿做一个,苦恼一直没有思路google了几天,终于找到一个帖子 http://www.eoeandroid.com/viewthread.php?tid28824按照上面提供的思路实现了1、保留menu按键作用2、用popupwindow作为菜单显示容器3、用GridVie…

ipv6路由协议配置_IPV6寻址,标头和路由协议

ipv6路由协议配置The IPV6 address is 128 bits. Whereas IPV4 is represented by 4 groups of decimal numbers, same IPV6 is represented by 8 groups of hexadecimal numbers. The example of IPV6 address is 2001:0db8:85a3:0000:0000:8a2e:0370:7334. IPV6地址是128位。…

rpc框架

Motan,dubbo转载于:https://www.cnblogs.com/zhangshiwen/p/5980886.html

android webview 监听js,Android webview与js的数据交互

项目要用到Webview和js交互,查了查以前的项目感觉还是有必要整理下的。简单描述下项目中用到的地方,比如说在web页需要用到登录的地方点击登录跳转到APP原生登录界面去登录,点击web页的拨打电话弹出原生dialog询问是否拨打,点击we…