超声波测距报告含程序..
- 格式:doc
- 大小:586.50 KB
- 文档页数:20
目录一、超声波测距原理二、超声波测距模块介绍1.主控模块2.电源模块3.显示模块4.超声波模块5.扬声器模块三、超声波测距功能介绍四、超声波测距前景展望五、心得附:程序超声波测距(可报警)一、超声波测距原理超声波发射器定期发送超声波,遇到被测物体时发生反射,反射波经超声波接收器接收并转化为电信号,只要测出发送和接收的时间差t,即可测出超声测距装置到被测物体之间的距离S:S=c*t/2(式中c为超声波在空气中的传播速度,c=331.45*√(1+T/273.16)) 由此可见声速与温度的密切的关系。
在应用中,如果温度变化不大或者对测量要求不太高(例如汽车泊车定位系统),则可认为声速是不变的,否则,必须进行温度补偿。
超声波传感器是超声测距核心部件,传感器按其工作介质可分气相、液相和固相传感器;按其发射波束宽度可分为宽波束和窄波束传感器;按其工作频率又可分为40kHz, 5OkHz等不同等级。
超声波在空气传播过程中,由于空气吸收衰减和扩散损失,声强随着传播距离的增大而衰减,而超声波的衰减随频率增大而成指数增加。
本设计选用气相、窄波束、40kHz的超声波传感器。
二、超声波测距模块介绍该产品共有五个模块,其中主控模块、电源模块、显示模块、扬声器模块集成在开发板上,超声波模块是外接的。
1.主控模块主要部分是51单片机。
51单片机是对目前所有兼容Intel 8031指令系统的单片机的统称。
该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATLEM公司的AT89系列,它广泛应用于工业测控系统之中。
目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。
51单片机是基础入门的一个单片机,还是应用最广泛的一种。
需要注意的是52系列的单片机一般不具备自编程能力。
主要功能:·8位CPU·4kbytes 程序存储器(ROM) (52为8K)·256bytes的数据存储器(RAM) (52有384bytes的RAM)·32条I/O口线·111条指令,大部分为单字节指令·21个专用寄存器·2个可编程定时/计数器·5个中断源,2个优先级(52有6个)·一个全双工串行通信口·外部数据存储器寻址空间为64kB·外部程序存储器寻址空间为64kB·逻辑操作位寻址功能·双列直插40PinDIP封装·单一+5V电源供电CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;ROM:用以存放程序、一些原始数据和表格;I/O口:四个8位并行I/O口,既可用作输入,也可用作输出;T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;五个中断源的中断控制系统;一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。
超声波测距实验报告1. 实验目的1.掌握超声波测距的基本原理;2.熟悉超声波测距仪器的使用;3.培养实验操作能力和数据处理能力。
2. 实验原理超声波测距是利用超声波在空气中的传播速度和反射原理,通过测量超声波发射和接收之间的时间间隔来计算被测物体与测距仪之间的距离。
超声波在空气中的传播速度约为 340 m/s。
3. 实验器材与步骤3.1 器材1.超声波测距仪;2.连接线;3.测量物体。
3.2 步骤1.连接超声波测距仪与电源;2.打开超声波测距仪,进行自检;3.将测量物体放置在合适的位置;4.调整超声波测距仪的测量范围;5.记录测量数据;6.分析数据,计算距离。
4. 实验数据与分析本实验共进行五次测量,记录数据如下:序号 | 测量距离(cm) | 误差(cm) |— | ———— | ——– |1 | 150.0 | 2.0 |2 | 152.5 | 1.5 |3 | 148.0 | 2.0 |4 | 151.0 | 1.0 |5 | 149.5 | 1.5 |平均距离 = (150.0 + 152.5 + 148.0 + 151.0 + 149.5) / 5 = 150.0 cm最大误差 = 2.0 cm最小误差 = 1.0 cm5. 实验总结本次实验掌握了超声波测距的基本原理和操作方法,通过对测量数据的分析,得出被测物体与测距仪之间的平均距离为 150.0 cm,最大误差为 2.0 cm,最小误差为 1.0 cm。
实验结果表明,超声波测距技术在实际应用中具有较高的准确性和可靠性。
6. 建议与改进1.在实验过程中,要确保测量物体与测距仪之间的距离在测距仪的测量范围内;2.提高实验操作技巧,减小人为误差;3.后续可以尝试使用不同类型的超声波测距仪进行实验,比较其性能和精度。
7. 实验拓展7.1 超声波测距的应用领域超声波测距技术广泛应用于工业、农业、医疗、交通、安防等领域,例如:1.工业领域:测量物体的尺寸、厚度、距离等;2.农业领域:测量土壤湿度、作物高度等;3.医疗领域:测量人体内部器官的距离、厚度等;4.交通领域:车辆测距、速度检测等;5.安防领域:监控设备、报警系统等。
一、实验目的1. 理解超声波测距的基本原理。
2. 掌握超声波测距模块的硬件连接与软件编程。
3. 学习使用超声波测距模块进行距离测量。
4. 了解超声波测距在实际应用中的优势与局限性。
二、实验原理超声波测距是利用超声波在介质中传播的速度和距离之间的关系来测量距离的一种方法。
当超声波发射器发出超声波时,它会遇到障碍物并反射回来。
通过测量发射和接收超声波之间的时间差,可以计算出障碍物与发射器之间的距离。
超声波在空气中的传播速度大约为340m/s。
设超声波发射器与接收器之间的距离为d,超声波从发射器传播到障碍物并返回所需的时间为t,则有:\[ d = \frac{v \times t}{2} \]其中,v为超声波在空气中的传播速度,t为超声波往返所需的时间。
三、实验设备1. 超声波测距模块HC-SR042. STM32单片机开发板3. 调试工具4. 电源5. 导线四、实验步骤1. 硬件连接(1)将超声波测距模块的VCC、GND、TRIG和ECHO引脚分别连接到STM32单片机的3.3V、GND、GPIO和中断引脚。
(2)将STM32单片机的电源和地连接到实验平台的电源。
2. 软件编程(1)编写STM32单片机的程序,用于控制超声波测距模块。
(2)程序主要包含以下功能:- 初始化GPIO和中断引脚;- 发送触发信号;- 读取回响信号;- 计算距离;- 显示距离。
(3)使用HAL库函数实现上述功能。
3. 调试与测试(1)将程序烧录到STM32单片机中。
(2)使用调试工具检查程序运行情况。
(3)调整超声波测距模块的位置,测试不同距离下的测量结果。
五、实验结果与分析1. 实验数据通过实验,得到以下数据:| 距离(cm) | 测量值(cm) || :--------: | :--------: || 10 | 9.8 || 20 | 19.7 || 30 | 29.6 || 40 | 39.5 || 50 | 49.4 |2. 数据分析实验结果表明,超声波测距模块的测量精度较高,误差在±1cm以内。
一、实训目的1. 掌握超声波测距的基本原理和操作方法。
2. 学会使用超声波测距模块进行实际测量。
3. 熟悉超声波测距系统的硬件组成和软件编程。
4. 提高非接触式测距技术的应用能力。
二、实训时间2023年X月X日至2023年X月X日三、实训地点XXX实验室四、实训器材1. 超声波测距模块2. 单片机或微控制器(如Arduino)3. 连接线4. 电源5. 计算器6. 实验台五、实训原理超声波测距是基于超声波在介质中传播的速度和时间关系进行距离测量的技术。
当超声波从发射器发出后,遇到障碍物会被反射回来,接收器接收到反射波后,通过计算超声波往返时间,即可得到障碍物与发射器之间的距离。
六、实训步骤1. 硬件连接(1)将超声波测距模块的发射引脚和接收引脚分别连接到单片机或微控制器的数字输出和数字输入引脚。
(2)将电源连接到单片机或微控制器的电源引脚。
(3)将单片机或微控制器连接到电脑,用于程序下载和调试。
2. 软件编程(1)编写程序,设置超声波模块的引脚模式,包括发射和接收引脚的模式。
(2)编写程序,控制超声波模块发射超声波信号。
(3)编写程序,读取接收到的反射波信号,计算超声波往返时间。
(4)编写程序,根据超声波往返时间和声速计算距离。
3. 实验操作(1)将单片机或微控制器程序下载到设备中。
(2)将设备放置在合适的位置,确保超声波模块能够发射和接收信号。
(3)启动程序,观察距离显示结果。
4. 数据分析(1)记录不同测量条件下的距离值。
(2)分析距离值与实际距离之间的误差。
(3)讨论误差产生的原因。
七、实训结果1. 测量距离范围:0.3米至5米2. 测量精度:±1厘米3. 距离显示:通过单片机或微控制器显示,可实时更新八、实训总结1. 通过本次实训,掌握了超声波测距的基本原理和操作方法。
2. 学会了使用超声波测距模块进行实际测量,并了解了超声波测距系统的硬件组成和软件编程。
3. 提高了非接触式测距技术的应用能力,为今后的学习和工作打下了基础。
《单片机原理及应用》单片机课程设计报告超声波测距报告目录第1 章课程设计概述 (2)1.1 课程设计选题及原理 (2)1.2课程设计选题调研 (2)1.2.1 选题目的与意义 (2)1.2.2 国内外研究综述 (3)第2 章方案设计 (4)2.1 主要任务 (4)2.2 设计框图 (4)2.3 设计所需元器件及简介 (4)2.4 设计程序流程简图 (5)2.5 编程语言的选择第3 章电路及部分代码设计 (6)3.1 Stc12c5a60s2最小系统 (6)3.2 超声波测距模块 (7)3.3 数码管显示模块 (8)3.4 蜂鸣器报警模块 (9)3.5 总仿真结果及实物测量结果 (10)第4 章课程设计心得体会和总结 (11)4.1 心得体会 (11)4.2 总结 (11)附1 课程设计仿真图…………………………………………………………附2 课程设计实物图…………………………………………………………附3 课程设计程序设计代码……………………………………………………………第1 章课程设计概述1.1 课程设计选题及原理课程设计题目超声波测距仪设计原理通过超声波发射装置发出超声波,根据接收器接到超声波时的时间差就可以知道距离了。
这与雷达测距原理相似。
超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。
最常用的超声测距的方法是回声探测法,超声波发射器向某一方向发射超声波,在发射时刻的同时计数器开始计时,超声波在空气中传播,途中碰到障碍物面阻挡就立即反射回来,超声波接收器收到反射回的超声波就立即停止计时。
超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物面的距离s,即:s=340t/2。
由于超声波也是一种声波,其声速V与温度有关。
在使用时,如果传播介质温度变化不大,则可近似认为超声波速度在传播的过程中是基本不变的。
超声波测距实验报告超声波测距实验报告引言:超声波测距是一种常见的测量技术,广泛应用于工业、医学和科学研究领域。
通过发射超声波并测量其返回时间,我们可以计算出被测物体与传感器之间的距离。
本实验旨在探究超声波测距的原理和应用,并通过实际操作验证其可靠性和准确性。
实验步骤:1. 实验器材准备:超声波传感器、数字示波器、计算机等。
2. 连接电路:将超声波传感器与数字示波器和计算机相连。
3. 设置参数:根据实验要求,设置传感器的工作频率和测量范围。
4. 发射超声波:通过控制电路,使传感器发射超声波信号。
5. 接收信号:传感器接收到返回的超声波信号,并将其转换为电信号。
6. 数据处理:将接收到的信号传输到计算机,并使用相应的软件进行数据处理和分析。
7. 计算距离:根据超声波的传播速度和返回时间,计算被测物体与传感器之间的距离。
实验结果:经过多次实验,我们得到了一系列距离数据,并进行了统计和分析。
结果表明,超声波测距的准确性较高,误差在合理范围内。
同时,我们还观察到在不同环境条件下,超声波的传播和测量结果可能会受到一定的影响。
例如,声波在空气中的传播速度与温度和湿度有关,因此在不同的环境下,需要进行相应的修正。
实验讨论:超声波测距技术在许多领域中都有广泛应用。
在工业领域,它可以用于测量物体的距离、检测障碍物并进行避障等。
在医学领域,超声波测距被应用于超声诊断、医学成像等。
此外,超声波测距还可以用于地震勘探、水下探测等科学研究领域。
然而,超声波测距也存在一些局限性。
首先,超声波在传播过程中会受到物体的吸收、散射和衍射等影响,从而导致信号衰减和失真。
其次,超声波的传播速度与介质的性质和温度有关,因此在不同的介质中,需要进行相应的修正和校准。
此外,超声波测距还受到传感器的分辨率和灵敏度等因素的限制,影响了其测量的精确度。
结论:通过本次实验,我们深入了解了超声波测距的原理和应用。
实验结果表明,超声波测距是一种准确可靠的测量技术,具有广泛的应用前景。
//超声波测距,测距X围2cm-400cm; #include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charsbit trig=P1^0;sbit echo=P3^2;sbit test=P1^1;//测试灯sbit dula=P2^6;sbit wela=P2^7;sbit BEEP=P2^3;uint timeh,timel,distance;uint ge,shi,bai,xiaoshu,flag,time;/*共阴极数码管不带小数点代码表*/ uchar code list[]={0x3f , 0x06 , 0x5b , 0x4f ,0x66 , 0x6d ,0x7d , 0x07 ,0x7f , 0x6f , 0x77 , 0x7c ,0x39 , 0x5e , 0x79 , 0x71 };/*共阴极数码管带小数点代码表*/ uchar code listtwo[] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};/*长延时函数*/void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=100;y>0;y--); }/*短延时函数*/void delay20us() {uchar a;for(a=0;a<100;a++); }/*报警函数*/ void beer(){//BEEP=0;delay(10);}/*定时器初始化*/ void initime0() {TMOD=0x01;TH0=0;TL0=0;EA=0;ET0=0;EX0=0;}/*外部中断函数*/void estern() interrupt 0{timeh=TH0;timel=TL0;beer();flag=1;//进入中断,标志位就置1 EX0=0;//同时关断外部中断和定时器 TR0=0;}/*显示函数*/void display(distance) {bai=distance/1000;shi=distance%1000/100; ge=distance%100; xiaoshu=distance%10;dula=1;P0=list[xiaoshu];dula=0;P0=0xff;wela=1;P0=0xf7;wela=0;delay(2);P0=listtwo[ge]; dula=0;P0=0xff;wela=1;P0=0xfb;wela=0;delay(2);dula=1;P0=list[shi]; dula=0;P0=0xff;wela=1;P0=0xfd;delay(1);dula=1;P0=list[bai]; dula=0;P0=0xff;wela=1;P0=0xfe;wela=0;delay(1);}/*被调用子函数*/ void diaoyong(){uint i;EA=0;echo=1;//为了检测电平的上下,首先必须拉高trig=1;delay20us();trig=0;while(echo==0);//如果进入中断即接收到超声波就向下执行flag=0;//接收到就去除标志位EA=1;//同时打开总中断EX0=1;//打开外部中断TR0=1;//开定时器TH0=0;//定时器清零TL0=0;for(i=0;i<100;i++)//等待测量的结果{display(distance);//用100次显示循环来延时,解决数码管显示不亮问题}//delay(50);//用延时函数数码管闪烁TR0=0;//延时一段时间后关断定时器EX0=0;//延时一段时间后关断外部中断if(flag==1)//如果进入中断,说明测距已经测好{time=timeh*256+timel;//计算测定距离,并显示distance=time*0.1720;display(distance);}if(flag==0)//如果没有进入中断,距离为0,同时灯闪烁{distance=0;test=!test;}}word/*主函数*/void main(){initime0();test=0;trig=0;EA=1;while(1){diaoyong();display(distance);}}11 / 11。
超声波测距程序流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!1. 初始化初始化超声波传感器,设置相关参数,如触发引脚、接收引脚等。
实验六超声波测距一、实验内容编写C51程序,使用超声波测量实验板距离障碍物的距离,将结果(以厘米计)显示到数码管上。
测量距离在30cm~200cm之间。
二、实验原理振动频率超过20kHz,不能被人耳所接收的声波称作“超声波”。
超声波频率高,波长短,在一定距离内沿直线传播,具有良好的束射性和方向性,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪等。
当超声波在发射后遇到障碍物反射回来之后,根据发射和接收的时间差计算出发射点到障碍物的实际距离。
在不考虑温度等因素的情况下,超声波在空气中的传播速度约为340m/s,根据记录的时间差t,就可以计算出发射点距障碍物的距离(s),即:s=340*t/2。
超声波测距装置分为两部分:超声波发生器和超声波接受器。
本实验中采用压电式超声波发生器。
它利用压电晶体的谐振原理来进行电能和机械能之间的相互转换。
超声波发生器内部有两个压电晶片和一个共振板。
当压电晶片外加一定电压的脉冲信号,并且其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,将电能转换为机械能,产生超声波。
反之,如果两电极间未外加电压,而共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。
因此同一种装置即可作为发生器,也可以作为接收器。
本实验使用的压电晶片的固有振荡频率为40kHz左右。
超声波测距产生误差的原因包括时间误差和超声波传播速度误差两大方面。
时间误差方面可以通过各种软件措施进行弥补,使用单片机也可以达到微秒级,对整体误差影响很小。
超声波的传播速度受空气的密度所影响,空气的密度越高则超声波的传播速度就越快,而空气的密度又与温度有着密切的关系,另外和湿度也有一定的关系。
整体来说,实际速度变化的幅度能够达到5%,是更加重要的影响因素。
本实验基本原理框图如下:本实验基本电路原理图如下:三、实验流程图1、外部中断服务程序e0流程图2、定时器0中断服务程序Timer0流程图3、定时器1中断服务程序Timer1流程图4、主程序流程图四、程序源代码1.#include <reg52.h>2.3.sfr P4 = 0xC0;4.sfr P4SW = 0xBB;5.sbit CLK = P4^4;6.sbit DAT = P4^5;7.sbit out = P1^0;8.9.bit badvalue;10.unsigned int count = 0;11.unsigned long int result = 0;12.unsigned long int n = 0;13.unsigned int m = 0;14.int i;15.unsigned int code tab[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};16.17.void show(unsigned int count){18. unsigned int i, num, c;19. num = tab[count];20.for (i = 0; i < 8; i++)21. {22. CLK = 0;23. c = num & 0x80;24. DAT = c;25. CLK = 1;26. num <<= 1;27. }28.}29.30.void display(unsigned int c)31.{32. show(c % 10);33. c /= 10;34. show(c % 10);35. show(c / 10);36.}37.38.void delay(unsigned char i,unsigned char j)39.{40.while(i--)41. {42.while(j--);43. j=255;44. }45.}46.47.void e0() interrupt 048.{ unsigned long t;49.if(INT0 == 0)50. {51. TR1=0;52. delay(2,255);53.if(badvalue)54. {55. TR1=0;56. result=0;57. }58.else59. {60. t=TH1;61. t = t << 8;62. t |= TL1;63. t=t*170;64. result=t/10000;65. }66.if(result != 11)67. n = 0;68.if(result < 300)69. m = 0;70.if(result >= 11 && result<= 15 )71. {72. n++;73.if(n > 10)74. {75. display(result);76. n = 0;77. }78. }79.else80. {81. display(result);82. }83. EX0=0;84. }85.}86.87.void timer0() interrupt 188.{89. out = ~out;90.if(count != 0x00)91. count-=1;92.else93. {94. TR0=0;95. delay(3,120);96. EX0=1;97. }98.}99.100.void timer1() interrupt 3101.{102. badvalue = 1;103.}104.105.void main()106.{107. P4=0xFF;108. P4SW=0x70;109. TMOD = 0x12;110. EA = 1;111. EX0 = 0;112. ET0 = 1;113. ET1 = 1;114. IT0 = 1;115.116.while(1)117. {118. count = 4;119. out = 0;120. badvalue = 0;121.122. TH0=0xf3;123. TL0=0xf3;124. TH1=0x00;125. TL1=0x00;126.127. TR0=1;128. TR1=1;129.for(i = 0; i < 5; i++)130. delay(255,255);131.132. }133.}五、思考题1. 当时间测量定时器溢出时,能够测量的最大距离是多少?定时器1在工作方式1下是16位定时器,最大值65535,也就是可以累加65536个数值,用65536*340/2/10000 = 1114cm,这便是能够测量的最大距离。
超声波测距仪源程序代码:#include <AT89X51.H>#include <intrins.h>#include <STDIO.H>#include <absacc.h>#define uchar unsigned char#define uint unsigned int#define L_W_D XBYTE[0X9Fff]#define L_W_C XBYTE[0X1Fff]#define L_R_C XBYTE[0X5Fff]sbit RX=P1^2 ;sbit TX=P1^3;sbit beep=P1^0;sbit en=P3^2;sbit d=P1^7;char table[]="cmX";char name[]="ZhangFengJun";unsigned char flag1=1;unsigned int time=0;unsigned int timer=0;float S=0;bit flag =0;void wait();/***********************1602写命令程序******************************************************/void send_command(uint command){wait();L_W_C=command;}/***************************1602********************************* *************/void delay(){uint i,j;for(i=0;i<50;i++)for(j=0;j<50;j++);}/**************************读忙程序**************************************************/void wait(){uchar x;do{x=L_R_C;}while(x&0x80);delay();}/*************************1602写数据程序*****************************************************/void send_data(uint sdata){wait();L_W_D=sdata;}/********************************************************/void Conut(void){time=TH0*256+TL0;TH0=0;TL0=0;S=(time*1.87)/100; //算出来是CMif(flag==1) //超出测量{beep=!beep;delay();delay();delay();delay();delay();beep=!beep;}}/********************************************************/void delayms(unsigned int ms){unsigned char i=100,j;for(;ms;ms--){while(--i){j=10;while(--j);}}}/********************************************************/void zd0() interrupt 1 //T0中断用来计数器溢出,超过测距范围{flag=1; //中断溢出标志}/********************************************************/ void StartModule() //T1中断用来扫描数码管和计800MS启动模块{TX=1; //800MS 启动一次模块_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();TX=0;}void key(){en=1;if(en==0){flag1=0;send_command(0x01);while(!en);}}/********************************************************/ void main(void){uchar OUT_PUT,i;flag=0;TMOD=0x21; //设T0为方式1,GATE=1;SCON=0x50;TH1=0xFD;TL1=0xFD;TH0=0;TL0=0;TR0=1;ET0=1; //允许T0中断TR1=1; //开启定时器TI=1;EA=1; //开启总中断send_command(0x38);send_command(0x0c);send_command(0x06);send_command(0x01);for(i=0;i<12;i++){send_command(0x80+i);send_data(name[i]);}while(1){key();if(flag1==0){StartModule();while(!RX); //当RX为零时等待TR0=1; //开启计数while(RX); //当RX为1计数并等待TR0=0; //关闭计数Conut(); //计算delayms(100); //100MSif(flag==0){OUT_PUT=S;send_command(0x82);send_data(OUT_PUT/100+0x30);send_command(0x83);send_data((OUT_PUT%100)/10+0x30);send_command(0x84);send_data(OUT_PUT%10+0x30);send_command(0x85);send_data(table[0]);send_command(0x86);send_data(table[1]);}else if(flag==1){send_command(0x82);send_data(table[2]);send_command(0x83);send_data(table[2]);send_command(0x84);send_data(table[2]);}flag=0;}}}。
超声波测距器的设计设计说明:超声波测距器可应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于,如液位、井深、管道长度、物体厚度等的测量。
也有很多方法可以测量,这里用超声波设计一个测距器,实现距离的测量。
1、基本部分a)测量电阻范围:0.10—3.00mb)测量精度:1cmc)测量时与被测物体无直接接触,能够清晰、稳定的显示测量结果。
2、发挥部分a)可以根据温度的不同,导致的速度的不同,用不同的速度测量距离。
摘要:本文介绍了基于AT89C52单片机的超声波测距器。
通过DS18B20数字温度测量仪测出当前的室温,送入单片机,单片机经过对比,进而得出用哪个档进行测量,单片机和发射电路发射出超声波,超声波遇到障碍物,反射回来,在经过接收电路接收,送入单片机,单片机经过计算,得出距离,并在数码管上显示出距离。
测量精度高达±0.5%,并且显示稳定的4位有效数字。
不仅测量简便,读数直观,且测量精度、分辨率较高。
关键词:单片机;DS18B20;CX20106A;TCT40-10F1;TCT40-10S1一、系统设计1、模块方案比较与论证由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。
利用超声波检测距离设计比较方便,计算处理也较简单,并且在测量精度方面也能达到日常使用的要求。
超声波发生器可以分为两大类:一类是用电器方式产生超声波;另一类是用机械方式产生超声波。
根据设计要求并综合各方面因素,本次决定采用AT89C51单片机作为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成,本系统的总方框图如图(1)所示:为较好的实现各模块的功能,我们分别设计了几种方案并分别进行了论证。
1.1单片机系统及显示电路单片机采用89C51或其兼容系列。
系统采用12MH最高精度的精度,以获得较稳定的时钟频率,并减小测量误差。
单片机用P1.0端口输出超声波换能器所需的40kHz方波信号,利用外中断0口检测超声波接收电路输出的返回信号。
超声波测距实训报告
超声波测距实训报告
一、实验目的
1. 掌握超声波测距的原理和方法;
2. 学习使用超声波模块进行测距;
3. 验证超声波测距的准确性和可靠性。
二、实验原理
超声波测距原理是利用超声波传播速度较快、能够穿透介质的特性来测量距离的一种方法。
通过发射超声波信号并接收回波信号,根据信号的往返时间来计算距离。
超声波模块一般由超声波传感器和控制电路组成。
超声波传感器会发射一束超声波信号,并接收回波信号。
控制电路会计算信号往返时间,并转换为距离值。
三、实验步骤
1. 将超声波模块与Arduino主板通过引脚连接;
2. 在Arduino上编写程序,设置超声波模块的引脚模式,并读取距离值;
3. 将Arduino通过USB线连接到电脑上,并上传程序;
4. 打开串口监视器,观察并记录测得的距离值;
5. 移动障碍物,再次记录距离值,并与实际距离进行对比。
四、实验数据
实验中我们测得的距离值如下:
实际距离(cm)测得距离(cm)
10 9.8
20 19.6
30 29.4
五、实验结果分析
通过实验数据可以看出,超声波测距的结果与实际距离十分接近,测距精度较高。
但是由于超声波信号的传播受到环境影响,如空气温度、湿度等,可能会有一定的误差。
同时,超声波测距的有效范围也受限于传感器的特性。
六、实验结论
通过本次实验,我们成功掌握了超声波测距的原理和方法,并验证了其准确性和可靠性。
超声波测距在实际应用中具有较高的测量精度和稳定性,广泛用于物体检测、避障等领域。
超声测距实验报告一、实验目的本次超声测距实验的目的是利用超声波的特性来测量物体之间的距离,并通过实验数据分析和处理,了解超声测距的原理、误差来源以及提高测量精度的方法。
二、实验原理超声波是一种频率高于 20kHz 的机械波,其在空气中的传播速度约为 340m/s。
超声测距的原理是通过发射超声波脉冲,并测量从发射到接收反射波的时间间隔,根据时间与速度的关系计算出距离。
具体计算公式为:距离=(超声波传播时间 ×超声波传播速度)/ 2 。
三、实验设备与材料1、超声波发射与接收模块2、微控制器(如 Arduino 或 STM32)3、显示模块(如液晶显示屏或数码管)4、电源5、反射物体(如平面板、障碍物等)四、实验步骤1、硬件连接将超声波发射与接收模块与微控制器连接,确保连接正确无误。
连接显示模块,以便实时显示测量的距离值。
接通电源,为整个系统供电。
2、软件编程使用相应的编程语言(如 C 或 Python)编写控制程序,实现超声波的发射、接收以及时间测量和距离计算。
对测量数据进行处理和滤波,以提高测量的稳定性和准确性。
3、实验环境设置选择一个相对空旷、无明显干扰的实验场地。
确定测量的起始点和目标反射物体的位置。
4、测量操作启动系统,开始发射超声波脉冲。
记录每次测量的时间间隔和计算得到的距离值。
改变反射物体的距离,进行多次测量。
五、实验数据记录与分析以下是部分实验数据记录:|测量次数|反射物体距离(m)|测量时间间隔(μs)|计算距离(m)|误差(m)|||||||| 1 | 100 | 5882 | 099 |-001 || 2 | 150 | 8823 | 149 |-001 || 3 | 200 | 11764 | 199 |-001 || 4 | 250 | 14705 | 249 |-001 || 5 | 300 | 17646 | 299 |-001 |通过对实验数据的分析,可以发现测量结果存在一定的误差。
超声波测距正确程序摘要超声波测距是一种常见的测量距离的方法,其原理是利用超声波在空气中传播的特性来测量距离。
然而,在实际使用中,由于各种因素的影响,常常会出现距离测量不准确的情况。
本文将介绍一种超声波测距的正确程序,以确保测距结果的准确性。
超声波测距是通过发射超声波并检测回波来测量距离的一种技术。
一般来说,超声波测距的整个过程包括以下几个步骤:1.发射超声波:通过发射器将超声波发射出去。
2.接收回波:当超声波遇到物体时,会反射回来。
通过接收器接收这些回波。
3.计算距离:根据回波的时间差来计算距离。
正确程序要确保超声波测距的准确性,需要注意以下几点:1. 选择合适的发射器和接收器在选择超声波发射器和接收器时,需要考虑其频率、灵敏度和信噪比等参数。
一般来说,频率较高的超声波在空气中传播的距离较短,但灵敏度较高,能够检测到较小的物体。
信噪比也是一个重要的参数,它决定了回波信号和噪声之间的比例,直接影响到测量结果的精度。
2. 稳定的电源超声波测距需要稳定的电源来提供能量,所以需要使用稳定的电源供电。
如果电源不稳定,可能会导致超声波发射不稳定或接收器失灵等问题,进而导致测量结果不准确。
3. 校准在使用之前,需要校准超声波发射器和接收器,以确定它们的工作状态。
校准通常包括调节发射器和接收器的角度、位置和距离等参数,以确保超声波能够正常传播并被接收器接收到。
此外,还需要根据具体的应用场景调整参数,比如根据测量距离要求调整超声波的频率。
4. 环境因素环境因素也会影响超声波的传播和接收。
比如在室内测量时,可能会出现多次反射、折射和干扰等现象,影响超声波的传播。
因此,需要在测量之前进行环境调查,并根据实际情况选择合适的参数进行测量。
超声波测距是一种常见的测量距离的方法。
然而,要确保测量结果的准确性,需要选择合适的发射器和接收器、稳定的电源、正确的校准和考虑环境因素等。
只有在以上各个方面都做到到位,才能够获得准确可靠的测距结果。
《单片机原理及应用》单片机课程设计报告超声波测距报告目录第1 章课程设计概述 (2)1.1 课程设计选题及原理 (2)1.2课程设计选题调研 (2)1.2.1 选题目的与意义 (2)1.2.2 国内外研究综述 (3)第2 章方案设计 (4)2.1 主要任务 (4)2.2 设计框图 (4)2.3 设计所需元器件及简介 (4)2.4 设计程序流程简图 (5)2.5 编程语言的选择第3 章电路及部分代码设计 (6)3.1 Stc12c5a60s2最小系统 (6)3.2 超声波测距模块 (7)3.3 数码管显示模块 (8)3.4 蜂鸣器报警模块 (9)3.5 总仿真结果及实物测量结果 (10)第4 章课程设计心得体会和总结 (11)4.1 心得体会 (11)4.2 总结 (11)附1 课程设计仿真图…………………………………………………………附2 课程设计实物图…………………………………………………………附3 课程设计程序设计代码……………………………………………………………第1 章课程设计概述1.1 课程设计选题及原理课程设计题目超声波测距仪设计原理通过超声波发射装置发出超声波,根据接收器接到超声波时的时间差就可以知道距离了。
这与雷达测距原理相似。
超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。
最常用的超声测距的方法是回声探测法,超声波发射器向某一方向发射超声波,在发射时刻的同时计数器开始计时,超声波在空气中传播,途中碰到障碍物面阻挡就立即反射回来,超声波接收器收到反射回的超声波就立即停止计时。
超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物面的距离s,即:s=340t/2。
由于超声波也是一种声波,其声速V与温度有关。
在使用时,如果传播介质温度变化不大,则可近似认为超声波速度在传播的过程中是基本不变的。
如果对测距精度要求很高,则应通过温度补偿的方法对测量结果加以数值校正。
声速确定后,只要测得超声波往返的时间,即可求得距离。
这就是超声波测距仪的基本原理。
1.2课程设计选题调研1.2.1 选题目的与意义超声波是指频率在20KHz以上的声波,它属于机械波的范畴,可用于非接触测量,具有不受光、电磁波以及粉尘等外界因素的干扰的优点,利用计算超声波在发送端和接收端之间的传输时间和声速来测量距离,对被测目标无损害。
而且超声波传播速度在很大范围内与频率无关。
超声波的这些独特优点越来越受到人们的重视。
目前对于超声波精确测距的需求也越来越大,比如油库和水箱液面的精确测量和控制,汽车辅助泊位系统的应用,物体内气孔大小的检测和机械内部损伤的检测等。
在机械制造,电子冶金,航海,宇航,石油化工,等工业领域也有广泛地应用。
此外,在材料科学,医学,生物科学等领域中也占具重要地位。
1.2.2 国内外研究综述历史上使用超声波来测量距离是从第二次世界大战时海军的声纳技术的发展开始。
声纳是一种利用声波在水下测定目标距离和运动速度的仪器。
经过几个世纪,科学家们对此反复研究,最终发现了超声波的原理。
超声波测距应用于各种工业领域,如工业自动控制,建筑工程测量和机器人视觉识别等方面。
超声波作为一种检测技术,采用的是非接触式测量,由于它具有不受外界因素影响,对环境有一定的适应能力,且操作简单,测量精度高等优点而被广泛应用。
这些特点可使测量仪器不受被测介质的影响,大大解决了传统测量仪器存在的问题,比如,在粉尘多的情况下对人引起的身体接触伤害,腐蚀性质的被测物对测量仪器腐蚀,触电接触不良造成的误测等。
此外该技术对被测元件无磨损,使测量仪器牢固耐用,使用寿命加长,而且还降低了能量损耗,节省人力和劳动的强度。
因此,利用超声波检测既迅速、方便、计算简单,又易于实时控制,在测量精度方面能达到工业实用的要求。
然而超声波测距在实际应用中也有很多局限性。
由于超声波在传播过程中,声压会随距离的增大而呈指数规律衰减,远目标的回波信号幅度小,信噪比低,用固定阈值的比较器检测回波,可能导致越过门槛的时间前后移动,从而影响计时的准确性,这必然会影响到测距的准确度。
此外,构成超声波传感器的压电陶瓷片在压电的双向转换过程中,存在惯性,滞后等现象,以及超声波脉冲在空气中传播本身及多重的反射路径,均导致回波信号被展宽,也会使测量产生较大的误差,影响了测距的分辨率。
其它如温度,风速等也会对测量造成一定的影响。
工程师针对这些误差提出的可变阈值的超声波测距方法,从回波信号处理的角度出发,分析了超声波回波曲线的特性,利用回波包络的峰值检测技术以确定回波到达的时刻,另外,利用温度补偿电路可以降低温度对声速的影响,这些改进都大大的提高了超声波测距的准确性。
计量学在制造业中越来越重要。
直接在机器上测量尤其能推动制造业的发展。
目前为止大部分还是采用视觉的或触觉的测量方法。
但是墙的厚度就不能用这些来测量,因此德国人把超声系统结合到机器设计出了测距方法。
随着超声波的发展,早在2000年时英国人就设计出了可观察,识别并测距的超声波集成系统。
第2 章方案设计2.1主要任务设计制作一个超声波测距仪,通过单片机控制超声波测距模块,计算并显示所测距离以及实现报警功能。
整体电路的控制核心为单片机STC12C5A60S2。
超声波发射和接收电路中都对相应信号进行整形及放大,以保证测量结果尽可能精确。
超声波探头接OUT 口实现超声波的发射和接收。
另外超声波发射和接受模块hc-sr04还有具有温度补偿的作用,使测量精度能够达到要求。
整体结构图包括超声波发射接收电路,单片机电路,显示电路与蜂鸣器报警电路等几部分模块组成。
2.2 设计框图本设计主要的四个模块:超声波发射和接收模块,蜂鸣器报警模块,单片机 STC12C5A60S2,四位数码管显示模块。
以下是设计框图图1 设计框图2.3 设计所需元器件及简介STC12C5A60S2增强型 8051 CPU ,1T ,单时钟/ 机器周期,指令代码完全兼容传统8051。
工作电压5.5V-3.3V 。
STC12C5A60S2/AD/PWM 系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。
内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D 转换(250K/S),针对电机控制,强干扰场合。
通用I/O 口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O 口) 可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏每个I/O 口驱动能力均可达到20mA ,但整个芯片最大不要超过55mA 。
本设计中用到的单片机管脚有P1,P2.0-P2.3,P3.5-P3.7。
超声波测距模块HC-SR04超声波测距模块HC-SR04 可提供2-400cm 的非接触式距离感测功能,测距精度可高达3mm 。
模块包括超声波发器、接收器与控制电路本模块性能稳定,测度距离精确。
能和国外的SRF05,SRF02等超声波测距模块相媲美。
模块高精度,盲区(2cm )超近,稳定的测距是此产品成功走向市场的有力根据图2 HC-SR04正面图主要技术参数:1:使用电压:DC5V 2:静态电流:小于2mA3:电平输出:高5V 4:电平输出:底0V5:感应角度:不大于15度6:高精度可达0.2cm7:探测距离:2cm-450cm接线方式:VCC,trig(控制端),echo(接收端),GND模块工作原理:(1)采用IO触发测距,给至少10us的高电平信号;(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;(3)有信号返回,通过IO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间.测试距离=(高电平时间*声速(340M/S))/2;超声波发射器向某一方向发射超声波,在发射超声波的同时开始计时,超声波在空气中传播,途中碰到障碍物反射后立即返回来,超声波接收器收到反射波就立即停止计时。
超声波在空气中的传播速度约为340m/s,根据计时器记录的时间t,就可以计算出超声波发射点距障碍物的距离(s),即为:s=340t/2,这就是所谓的时间差测距法。
存在4个因素限制了该系统的最大可测距离:超声波的幅度、反射的质地、反射回波和入射声波之间的夹角。
四位数码管显示模块数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
led 数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。
位数有半位,1,2,3,4,5,6,8,10位等等....,led数码管根据LED 的接法不同分为共阴和共阳两类。
本设计用到的是共阳极,静态驱动也称直流驱动数码管。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。
共阳TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,088H本设计还需要的元件有蜂鸣器,电阻,电容,12M晶振,按键,三极管,面包板等设计流程图说明:本设计P3.5连接超声波发射端,P3.7口接超声波接收端。
首先单片机开始工作,系统初始化后单片机向P3.5口发送40KHZ的方波,使超声波发射和接受模块开始工作,当P3.7口接收到高电平时计时器开始计时,选用的是计时器工作方式1,16位。
当P3.7口接收到低电平的时候计时器关闭。
此时时间存在TH0,TL0中,这是通过计算子程序把时间换算成距离四位,从高到底分别存在78H,77H,76H,75H。
此时调用显示子程序把距离显示在四位数码管中。
再调用报警子程序,根据距离的判断,使蜂鸣器发出不同频率的声音。
延时很短的时间,继续下次的测量。
2.5编程语言的选择在编程语言的选择上,我们主要考虑使用我所学过的汇编语言和C语言。
汇编语言是一种面向机器的低级的程序设计语言。
它直接利用机器提供的指令系统编写程序,该类程序的可执行指令是与机器语言程序的指令一一对应的。
汇编语言由于是面向机器的程序设计语言,与具体的计算机硬件有着密切的关系,因此,可移植性差。
但由于汇编指令与机器语言指令一一对应,即一条汇编语言的可执行指令对应着一条机器语言指令,反之亦然。
因此,汇编语言可直接利用机器硬件系统的许多特性,如寄存器、标志位以及一些特殊指令等,具有执行速度快、占用内存少等优点。
在本设计中,设计程序过程相对不复杂,用汇编语言完全可以实现,所以本设计选择了使用汇编语言进行编程。