基于-51单片机的HCSR04超声波测距系统制作

合集下载

基于51单片机的超声波测距系统

基于51单片机的超声波测距系统

封面目录摘要.........................................................错误!未定义书签。

一. 绪论......................................................错误!未定义书签。

二.超声波测距的原理..........................................错误!未定义书签。

超声波的基本理论.............................................错误!未定义书签。

超声波测距系统原理...........................................错误!未定义书签。

三. 系统硬件的具体设计与实现..................................错误!未定义书签。

系统原理和框图...............................................错误!未定义书签。

功能模块的设计...............................................错误!未定义书签。

单片机介绍...............................................错误!未定义书签。

STC89C52管脚说明....................................错误!未定义书签。

STC89C52主要特性....................................错误!未定义书签。

芯片擦除..............................................错误!未定义书签。

超声波测距模块HC-SR04 ..................................错误!未定义书签。

产品特点.............................................错误!未定义书签。

基于51单片机的超声波测距系统的设计

基于51单片机的超声波测距系统的设计

-55-/2011.10/基于51单片机的超声波测距系统的设计衡水职业技术学院 曹月真【摘要】详细介绍了超声波测距原理以及基于51单片机的测距原理。

以HC-SR04超声波测距模块为核心实现超声波的发射与接收,采用LCD12864显示所测距离。

为了避开超声波从发射探头到接收探头的“敏感时间”,采用了“延时接收”的方法。

【关键词】超声波;单片机;测距一、设计任务和性能指标(一)设计任务利用单片机及外围接口电路设计制作一个超声波测距仪器,用液晶显示器将测出的距离显示出来。

要求画出系统的电路原理图,实物图,绘出程序流程图,并给出程序清单。

(二)性能指标距离显示:用LCD液晶显示器进行显示(单位是米)。

测距范围:10cm到400cm的距离感测功能,测距精度可达到5mm以内。

二、设计方案按照系统设计的功能要求,初步确定设计系统由单片机主控模块、显示模块、超声波发射模块、接收模块共四个模块组成(如图1)。

单片机主控芯片使用51系列AT89S52单片机,该单片机工作性能稳定,同时也是在单片机课程设计中经常使用到的控制芯片。

显示模块采用LCD12864,其突出优点就是可以显示汉字等字符,且与单片机的接口简单,操作方便。

超声波发射模块和接收模块采用HC-SR04超声波测距模块,该模块性能稳定,测量距离精确,精度高,盲区(2cm)超近。

三、主控电路本系统采用了STC89S52作为主控电路,图2为主控电路原理图,图3为主控电路实物图。

STC89S52为STC公司的一款通用单片机,其操作简便,功能强大,适用于简单的控制系统的数据处理和动作控制方面。

该芯片加密性强,具有超强抗干扰性能:1.高抗静电(ESD保护)2.轻松过2KV/4KV快速脉冲干扰(EFT 测试)3.宽电压,不怕电源抖动4.宽温度范围:-40℃~85℃5.I/O口经过特殊处理图1 系统设计框图图2 超声波测距模块图34.结论本文所设计的积分器采用电流模相乘器的结构,同时结合可逆计数器控制,实现了斜率自适应功能。

(完整版)基于51单片机的超声波测距系统设计

(完整版)基于51单片机的超声波测距系统设计

完满 WORD 格式整理1设计任务本文采纳超声波传感器 ,IAP15 单片机以及 LCD显示模块设计了一种超声波测距显示器,能够实现丈量物体到仪器距离以及显示等功能。

是一种构造简单、性能稳固、使用方便、价钱便宜的超声波距离丈量器,拥有必定的适用价值。

2设计思路超声波测距超声波超声波是指频次在 20kHz 以上的声波,它属于机械波的范围。

最近几年来,跟着电子丈量技术的发展,运用超声波作出精准丈量已成可能。

跟着经济发展,电子丈量技术应用愈来愈宽泛,而超声波丈量精准高,成本低,性能稳固则备受喜爱。

超声波也按照一般机械波在弹性介质中的流传规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质汲取而发生衰减等。

正是因为拥有这些性质,使得超声波能够用于距离的丈量中。

跟着科技水平的不停提升,超声波测距技术被宽泛应用于人们平时工作和生活之中。

一般的超声波测距仪可用于固定物位或液位的丈量,合用于建筑物内部、液位高度的丈量等。

超声在空气中测距在特别环境下有较宽泛的应用。

利用超声波检测常常比较快速、方便、计算简单、易于实现及时控制,并且在丈量精度方面能达到工业适用的指标要求,所以为了使挪动机器人能够自动闪避阻碍物行走,就一定装备测距系统,以使其及时获得距阻碍物的地点信息(距离和方向)。

所以超声波测距在挪动机器人的研究上获得了宽泛的应用。

同时因为超声波测距系统拥有以上的这些长处,所以在汽车倒车雷达的研制方面也获得了宽泛的应用。

超声波测距原理最常用的超声测距的方法是回声探测法,超声波发射器向某一方向发射超声波,在发射时辰的同时计数器开始计时,超声波在空气中流传,途中遇到阻碍物面阻拦就立刻反射回来,超声波接收器收到反射回的超声波就立刻停止计时。

超声波在空气中的流传速度为340m/s,依据计时器记录的时间 t ,就能够计算出发射点距阻碍物面的距离s,即:s=340t/2 。

因为超声波也是一种声波,其声速 V 与温度有关。

基于51单片机超声波测距系统方案

基于51单片机超声波测距系统方案

目录摘要 (1)一. 绪论 (2)二.超声波测距的原理 (3)2.1 超声波的基本理论 (3)2.2 超声波测距系统原理 (7)三. 系统硬件的具体设计与实现 (8)3.1 系统原理和框图 (8)3.2 功能模块的设计 (8)3.2.1 单片机介绍 (8)3.2.1.1 AT89C51管脚说明 (9)3.2.1.2 AT89C51主要特性 (10)3.2.1.3芯片擦除 (11)3.2.2 超声波测距模块HC-SR04 (11)3.2.2.1 产品特点 (11)3.2.2.2 基本原理 (12)3.2.2.3 电气参数 (12)3.2.2.4 超声波时序图 (12)四. 系统软件设计 (13)1. 程序设计思路 (13)2. 程序流程图 (13)3. 程序 (14)五. 总结 (15)六. 致 (16)七. 参考文献 (17)八.附录 (18)1.原理图 (18)2.PCB图 (19)3.主程序 (19)摘要基于传统的测距方法在很多特殊场合:如带腐蚀的液体,强电磁干扰,有毒等恶劣条件下,测量距离存在不可克服的缺陷,超声波测距能很好的解决此类的问题。

本系统主要以AT89C51单片机为核心,结合超声波测距模块HC-SR04、数码管、蜂鸣器等硬件平台,对超声波测距系统的原理、数码管显示、单片机的应用等进行了分析和验证。

关键词:超声波测距模块,AT89C51,数码管。

AbstractIn many special occasions, traditional measuring distance methods based on the existence of insurmountable distance measuring defects, such as the measurement of corrosion in the liquid with strong electromagnetic interference, toxic and other adverse conditions. The ultrasonic range can be a very good solution to the problem. This system mainly uses AT89C51 microcontroller as the core,hardware platform combined with the HC-SR04 ultrasonic ranging module,digital tube,buzzer etc. Analyzed and validated the principle of ultrasonic ran,d igital tube’s display,the application of single-chip microcomputer etc.Keywords: ultrasonic ranging module,AT89C51,Digital tube.一. 绪论随着科学技术的快速发展,超声波将在测距仪中的应用越来越广。

基于51单片机超声波测距仪设计

基于51单片机超声波测距仪设计

个性化实验基于51 单片机超声波测距器设计摘要传统地测距方法存在不可克服地缺陷.例如,液面测量就是一种距离测量,传统地电极法是采用差位分布电极,通过给电或脉冲来检测液面,电极由于长期浸泡于水中或其他液体中,利用超声波测量距离就可以解决这些问题,因此超声波测量距离技术在工业控制、勘探测量、机器人定位和安全防范等领域得到了广泛地应用.本设计以STC89C52单片机为核心控制定时器产生超声波脉冲并计时,计算超声波自发射至接收地往返时间,从而得到实测距离.并且在数据处理中采用了温度补偿对声速进行调整,用1602 液晶显示速度和测量距离.整个硬件电路有超声波电路、电源电路、显示电路等组成.个探头地信号经单片机综合分析处理,实现超声波测距器地功能.在此基础上设计了系统地总体方案,最后通过硬件和软件实现了测距功能.此系统具有易控制、工作可靠、测距准确度高、可读性强和流程清晰等优点,即过系统扩展和升级,可以有效地解决汽车倒车,建筑施工工地以及一些工业现场地位置监控关键词:STC89C52超声波;温度补偿;测距目录绪论 (3)设计目地和意义 (3)设计任务和要求 (3)系统方案设计 (4)设计原理 (4)设计框图 (5)主要元器件介绍 (5)STC89C52 (5)LCD1602液晶显示器 (6)HC-SR04超声波模块 (8)DS18B20温度传感器 (9)系统硬件结构设计 (10)单片机电路 (10)LCD显示电路 (11)温度补偿电路 (11)电源电路 (12)系统软件设计 (12)主程序流程 (12)测距流程图 (13)测试 (14)测试结果 (14)误差分析 (15)总结 (15)附录 (17)整体电路图 (17)PCB布线图 (18)实物图...................................................... 错误!未定义书签。

部分程序 (18)主程序 (18)测量距离 (19)读取温度数值 (20)绪论设计目地和意义在现实生活中,一些传统地距离测量方式在某些特殊场合存在不可克服地缺陷,例如,液面测量就是一个距离测量,传统地电极法是采用差位分布电极,通过给电或脉冲检测液面,电极长期浸泡在水中或其它液体中,极易被腐蚀、电解,从而失去灵敏性.而利用超声波测量距离可以很好地解决这一问题.目前市面上常见地超声波测距系统不仅价格昂贵,体积过大而且精度也不高等种种因素,使得在一些中小规模地应用领域中难以得到广泛地应用.为解决这一系列难题,本文设计了一款基于STC89C52 单片机地低成本、高精度、微型化地超声波测距器.设计任务和要求设计一个超声波测距器,可以应用于汽车倒车、建筑施工工地以及工业现场地位置监控,也可以用于液位、井深、管道长度地测量等场合•要求测量范围在0.1~3.00m,测量精度1cm,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果系统方案设计设计原理发射端发出地超声波以速度v在空气中传播,在到达被测物体时被反射返回,由接收端接收,往返时间为t,由s=vt/2即可算出被测物体地距离.由于超声波也是一种声波,其声速v与温度有关,下表列出了几种不同温度下地声速•在使用时,如果温度变化不大,则可认为声速是基本不变地,如果测距精度要求很高,则应通过温度补偿地方法加以校正•本设计中使用公式v=331.4+T*0.61对声速进行校正.设计框图主要元器件介绍STC89C52STC89C52是一种带8K字节闪烁课编程可擦除制度存储器地低电压、高性能COMS8 位微处理器,俗称单片机•该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准地MCS-51指令集和输出管脚相兼容•由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STC地STC89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且廉价地方案,STC89C52芯片引脚图如图所示•图二STC89C52芯片引脚图LCD1602液晶显示器LCD 液晶显示器具有体积小、功耗低、界面美观大方等优点.1602显示模块用点阵图形显示字符,显示模式分为 2行16个字符•它具有16个引脚,其正面左起为第一脚,如下 图所示:第一脚GND:接地.第二脚VCC: +5V 电源.第三脚VO:对比度调整端.使用时通过接一个10K 地电阻来调节 第四脚RS 寄存器选择信号线.第五脚RW:读写信号线.T2/P1.0T2EX/PL 1Pl. 2 P 】・3Pl. 1PL 5IM. 6忆1RST RXD/P ;kO TW/P3. 1T\T 5/P3.2 1XT1/P3,3TO/卩 3* 1 P/P3. 5FR/P3,6 RD/P3. 7XTAL2 XTAL1 vss=vccFO O/ADO PO.1/AP1 P0. 2/AD2Hh 3/AD3 PO. 4/MM PO, 5/AD5 PO.5/AD6 PO,7/AD7 ALE PROG psTV P2. 7/A15 P2.6/A1t P2, 5/AL3 P2.1/A12 P2,3/A1t P2. 2/A10 P2.I/A9]P2.0/A8图三LCD 引脚示意图第六脚E:使能端,当E由高电平跳变为低电平时执行命令第7~14脚:8位数据线D0~D7.第十五脚BLA:背光电源正极输入端.第十六脚BLK背光电源负极输入端.表二LCD1602操作指令1602液晶模块内部地字符发生存储器(C G R O M)已经存储了160个不同地点阵字符图形,这些字符有:阿拉伯数字、英文字母地大小写、常用地符号、和日文假名等,每一个字符都有一个固定地代码,比如大写地英文字母“A”代码是01000001B(41H),显示时模块把地址41H中地点阵字符图形显示出来,我们就能看到字母“A”.因为1602识别地是ASCII码,实验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A' .160通过D0~D7地8位数据端传输数据和指令•HC-SR04超声波模块HC-SR04超声波传感器模块性能稳定,测度距离精确,模块高精度,盲区小•可提供2cm至400cm地非接触式距离感测功能,测距精度可达3mm.模块自身包括超声波发射器、接收器与控制电路.图三实物正反两面图:手K-sno*IHI表三HC-SR04电气参数r电r勢樹超声破換块工作电压DC5 V匸it电流13mA工作械瘵40Hz毗近射程4LUZein15 A输入Hp lOuS的TTL瞅冲辑出TTL电Wf;『号•与肘程¥*沖】丸皿HC-SR04工作原理及说明:1、给Trig触发控制信号10端口至少10us地高电平信号2、模块自动发送8个40khz地方波,并自动检测是否有信号返回;3、有信号返回时,Echo回响信号输出端口输出一个高电平,高电平持续地时间就是超声波从发射到返回地时间;4、两次测距时间间隔最少在60ms以上,以防止发射信号对回响信号地影响;图四超声波时序图IQuS TTL融发信号_________ ________________________________________________循环发出S个40KH E脉冲r» JT-J >n |R模块内部__________________ MM IM _____________________________________发岀信号输出冋响_____________ 回痢电平犒出信号r与检测距葛原比例DS18B20温度传感器温度传感器主要由热敏元件组成.热敏元件品种教多,市场上销售地有双金属片、铜热电阻、铂热电阻、热电偶及半导体热敏电阻等.以半导体热敏电阻为探测元件地温度传感器应用广泛,这是因为在元件允许工作条件范围内,半导体热敏电阻器具有体积小、灵敏度高、精度高地特点,而且制造工艺简单、价格低廉•半导体热敏电阻按温度特性热敏电阻可分为正温度系数热敏电阻(电阻随温度上升而增加)和负温度系数热敏电阻(电阻随温度上升而下降).本设计采用地是美国Dallas半导体公司地不锈钢封装地DS18B20数字温度传感器.DS18B20是采用专门设计地不锈钢外壳,仅有0.2mm地壁厚,具有很小地蓄热量,采用导热性高地密封胶,保证了温度传感器地高灵敏性,极小地温度延迟.DS18B20支持一线总线”接口(1-Wire ),测量温度范围为-55 °〜+125°C,在-10〜+85°C范围内,精度为土0.5C. 现场温度直接以一线总线”地数字方式传输,大大提高了系统地抗干扰性.DS18B20数字化温度传感器地主要性能如下:1)适用电压为3V〜5V;2)9〜12位分辨率可调,对应地可编程温度分别为0.5 C、0.25C、0.125C、0.0625 C;3)TO-92、SOIC及CSP封装可选;4)测温范围:-55C〜125C;5)精度:-10C〜85 C范围内土0.C ;6)无需外部元件,独特地一线接口,电源和信号复合在一起;7)每个芯片唯一编码,支持联网寻址,零功耗等待.系统硬件结构设计单片机电路以STC89C52单片机为主控芯片,CPU电路十分简单,加上晶振和复位电路即可构成最小系统.图五单片机最小系统电路图LCD显示电路本设计采用LCD1602液晶显示屏进行显示,清晰稳定地显示当前温度下地声速以及测量结果•图六LCD显示电路温度补偿电路温度补偿使用温度传感器DS18B20对当前温度进行采集,电路结构简单图七温度补偿电路电源电路整个系统采用12伏直流供电,而系统工作电压为5伏,因此需要对12伏电压进行稳压滤图八电源电路系统软件设计主程序流程图九主程序流程图开始测距流程图4测试测试结果本次设计地超声波测距器测距范围为3cm~400cm,超出测量范围时LCD会有提示,同时蜂鸣器报警;按下测距按键后,测距显示等亮,测量结束时,显示灯灭,液晶显示测量结果F表是我们测试时地测量结果误差分析由表四地测量数据可以看出,误差在误差允许范围1cm以内,因此本设计是满足要求地.测距时,被测物体必须垂直于超声波测距仪,被测物体表面平坦,且测距仪周围必须没有其他可以反射超声波地物体•本次设计地超声波测距仪也存在一些问题,由于上电一段时间后,一些元器件会发热,使得电路板温度升高,导致测得地温度比实际温度偏高,从而产生误差;由于51单片机本身地一些原因,会使得系统有时会不稳定,蜂鸣器蜂鸣声很小总结总地来说,通过这次个性化实验,我们都收获颇多•接收这个工程之前,我么都不懂什么是单片机,什么是AD接了这个工程后,我们自学了单片机,学习使用了AD等各种软件,了解了温度补偿、LED显示屏、声光显示,以及学会怎样在一个团队中担任自己地角色•在整个过程中,我们大家一起学习,分工合作•在技术上,基础好地带动基础差地,基础好地也不断提升自己地能力,大家集思广益,让作品更加完美;在团队中,我们每个人都有自己地任务,大家都很好地完成自己地责任,最终地作品实现了预期地功能.当然,过程中也有不完美地地方,由于知识不到位,最开始我们地进度不快,但随着了解地越来越多,我们地进度也就慢慢地上来了.非常感谢这次地经历,让我们学习到了这么多,有了这次经历,相信我们会在这条路上走得越来越远.整体电路图边:7附录vecD ATAGKCD幻ax =GKEPL1POP1JPWP1Jpr-sPLTm史」P3 4F3 J貪 5=;~XTAL 二XTAL3SiV2CATfICJ]c.sj:・:4匕曲:A-・一[X■乙:专二*J;gmKK畧加KIKE.<L=iE_叱plKKKLplKF;戊ILK■sggsggss—IK*&GNDLET.kr.2inPCB布线图部分程序主程序void mai n(){TMOD=0x01。

HC-SR04超声波测距的51单片机程序

HC-SR04超声波测距的51单片机程序
{
lcdrs=1;
P2=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void chushihua1602()
{
lcden=0;
write_order(0x38);
write_order(0x0c);
write_order(0x06);
write_order(0x01);
void zd3() interrupt 3//T1中断用来扫描数L1=0x30;
timer++;
if(timer>=400)
{
timer=0;
trig=1;//800MS启动一次模块
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
{
write_date(a[n]);
delay(3);
}
}
}
a[11]=(s%10000%1000/100)+0x30;
a[12]=(s%10000%1000%100/10)+0x30;
a[13]=(s%10000%1000%100%10)+0x30;
}
else//超出测量范围显示
{
flag=0;
a[9]='w';
a[10]='r';
a[11]='o';
a[12]='n';
write_date(a[0]);
write_date(a[1]);
write_date(a[2]);
write_date(a[3]);

基于HC-SR04的超声波测距器的设计

基于HC-SR04的超声波测距器的设计
科技信 息
0机械 与 ̄- 0 7 -
S I N E&T C N L YIF R T O CE C E H O OG O MA I N N
21 0 2年
第 9期
基于 HC S 0 的超声波测距器的设计 —R 4
苏 琳 f 京航 空航 天大 学金城 学 院教学 实验 中心 南 江苏 南京 2 1 6 1 5 ) 1
【 要】 摘 利用超声波测距模块 H — R 4 C S 0 设计 一种非接 触式测距仪 , ST 9 以 S 8E系列单 片机芯 片为核 心处理器 , 片机 产生 4k z 单 0H 的方
波, 直接驱动发射器芯片 , 经超声波发射 器发射 出长约 6 m, 率为 4 k z m 频 0 H 的超 声波信号 , 此信号能够被物体反射回来 由接收端接收 , 接收端 实质上是一种压电效应的换 能器。测距器可提供 2 m一 0 c 的非接触式距 离感测 , c 4 0m 实测数据显 示, 测量精度较 高 , 能稳定 。 性
图 1 超 声 波 测 距 原 理
因此 . 要计算超声波发生器与被测物体 的距离d 只要计算 出从 发 . 出超声 波信号到接收到返回信号的时间 t声速为 v则 d v 2 可以得 . . =t . / 出超声 波发生器与被测物体的距离 。在测距精度要求很高 的情况 下 , 需要 考虑到在不同温度下 . 声波的声速不 同. 超 要通 过温度补偿 的方 式校正测距值 12 超声波测距器整体结构设计 . 本 设计 采用 S T 9 S 8 E系列单 片机 作 为主 控器 .S 8 E 5 R S T 9 5 4 C是 ST公司推出的 8 S 位微控制器 F sF x 1 l h l 5 家族 中的一员 . a e 具有在系统 可编程 (S ) 在应用可 编程 ( ) 术 , 85 兼 容 , 1 bt IP 和 I 技 AP 与 01 有 K ye内 部 R M.三个 1 的定 时器, A 6为 计数 器 。超 声波 测距 模块采 用 H — C S0, R 4 该模块包 括超声 波发射器 、 收器和控 制电路 , 动态扫描 法 接 用 实现 L D数字显示 。超声波测距器整体结构框 图如图 2 E 所示 。

基于51单片机的超声波测距系统的毕业设计

基于51单片机的超声波测距系统的毕业设计

基于51单片机的超声波测距系统的毕业设计超声波测距系统是一种常见的非接触式测距技术,通过发送超声波信号并测量信号的回波时间来计算距离。

本文将介绍基于51单片机的超声波测距系统的毕业设计。

首先,我们需要明确设计的目标。

本设计旨在通过51单片机实现一个精确、稳定的超声波测距系统。

具体而言,我们需要实现以下功能:1.发送超声波信号:通过51单片机的IO口控制超声波发射器,发送一定频率和波形的超声波信号。

2.接收回波信号:通过51单片机的IO口连接超声波接收器,接收并放大返回的超声波信号。

3.信号处理:根据回波信号的时间延迟计算出距离,并在显示器上显示出来。

4.稳定性和精确性:设计系统时需考虑测量过程中误差的影响,并通过合适的算法和校准方法提高系统的稳定性和精确性。

接下来,我们需要选择合适的硬件和软件配合51单片机实现上述功能。

硬件方面:1.51单片机:选择一款性能稳定、易于编程的51单片机,如STC89C522.超声波模块:选择一款合适的超声波传感器模块,常见的有HC-SR04、JSN-SR04T等。

模块一般包括发射器和接收器,具有较好的测距性能。

3.显示设备:选择合适的显示设备,如7段LED数码管或LCD显示屏,用于显示测距结果。

软件方面:1.C语言编程:使用C语言编写51单片机的程序,实现超声波测距系统的各项功能。

2.串口通信:通过串口与上位机进行通信,可以对系统进行监控和远程控制。

3.算法设计:选择合适的算法计算超声波回波时间延迟,并根据时间延迟计算距离值。

在设计过程中,我们需要进行以下步骤:1.硬件连接:按照超声波模块的说明书,将模块的发射器和接收器通过杜邦线与51单片机的IO口连接。

2.软件编程:使用C语言编写51单片机的程序,实现超声波模块的控制、信号接收和处理、距离计算等功能。

3.系统测试:进行系统的功能测试和性能测试,验证系统的可靠性和准确性,同时调试系统中出现的问题。

4.系统优化:根据测试结果,对系统进行优化,提高系统的稳定性和精确性。

(完整word版)用51单片机实现HC-SR04超声波测距程序(word文档良心出品)

(完整word版)用51单片机实现HC-SR04超声波测距程序(word文档良心出品)

#include <reg52.h> //包括一个52标准内核的头文件#define uchar unsigned char //定义一下方便使用#define uint unsigned int#define ulong unsigned longsbit Trig = P1^0; //产生脉冲引脚sbit Echo = P3^2; //回波引脚sbit test = P1^1; //测试用引脚uchar code SEG7[10]={~0xC0,~0xF9,~0xA4,~0xB0,~0x99,~0x92,~0x82,~0xF8,~0x80,~0x90};//数码管0-9uint distance[4]; //测距接收缓冲区uchar ge,shi,bai,temp,flag,outcomeH,outcomeL,i; //自定义寄存器bit succeed_flag; //测量成功标志//********函数声明void conversion(uint temp_data);void delay_20us();void main(void) // 主程序{uint distance_data,a,b;uchar CONT_1;i=0;flag=0;test =0;Trig=0; //首先拉低脉冲输入引脚TMOD=0x11; //定时器0,定时器1,16位工作方式TR0=1; //启动定时器0IT0=0; //由高电平变低电平,触发外部中断ET0=1; //打开定时器0中断EX0=0; //关闭外部中断EA=1; //打开总中断0while(1) //程序循环{EA=0;Trig=1;delay_20us();Trig=0; //产生一个20us的脉冲,在Trig引脚while(Echo==0); //等待Echo回波引脚变高电平succeed_flag=0; //清测量成功标志EX0=1; //打开外部中断TH1=0; //定时器1清零TL1=0; //定时器1清零TF1=0; //TR1=1; //启动定时器1EA=1;while(TH1 < 30);//等待测量的结果,周期65.535毫秒(可用中断实现)TR1=0; //关闭定时器1EX0=0; //关闭外部中断if(succeed_flag==1){distance_data=outcomeH*256+outcomeL;distance_data= (distance_data*1.87)/100;} //为什么除以58等于厘米,Y米=(X 秒*344)/2// X秒=(2*Y米)/344 ==》X 秒=0.0058*Y米==》厘米=微秒/58if(succeed_flag==0){distance_data=0; //没有回波则清零test = !test; //测试灯变化}/********************************************每循环3次就显示结果一次*********************************************/a=distance_data;if(b==a) CONT_1=0;if(b!=a) CONT_1++;if(CONT_1>=3){ CONT_1=0;b=a;conversion(b);}}}//***************************************************************//外部中断0,用做判断回波电平INTO_() interrupt 0 // 外部中断是0号{outcomeH =TH1; //取出定时器的值outcomeL =TL1; //取出定时器的值succeed_flag=1; //至成功测量的标志EX0=0; //关闭外部中断}//****************************************************************//定时器0中断,用做显示timer0() interrupt 1 // 定时器0中断是1号{TH0=0xfd; //写入定时器0初始值TL0=0x77;switch(flag){case 0x00:P0=ge; P2=0xfe;flag++;break;case 0x01:P0=shi;P2=0xfd;flag++;break;case 0x02:P0=bai;P2=0xfb;flag=0;break;}}//显示数据转换程序void conversion(uint temp_data){uchar ge_data,shi_data,bai_data ;bai_data=temp_data/100 ;temp_data=temp_data%100; //取余运算shi_data=temp_data/10 ;temp_data=temp_data%10; //取余运算ge_data=temp_data;bai_data=SEG7[bai_data];shi_data=SEG7[shi_data];ge_data =SEG7[ge_data];EA=0; //显示数据的时候不要测量bai = bai_data;shi = shi_data;ge = ge_data ;EA=1;}//****************************************************************** void delay_20us(){ uchar bt ;for(bt=0;bt<100;bt++);}。

基于51单片机超声波测距报警系统课程设计

基于51单片机超声波测距报警系统课程设计

基于51单片机超声波测距报警系统课程设计一、引言超声波测距技术是一种常见的非接触式测距技术,具有测距范围广、精度高等优点。

在日常生活中,超声波测距技术被广泛应用于车辆倒车雷达、智能家居中的人体感应等领域。

本文将介绍基于51单片机的超声波测距报警系统的课程设计。

二、设计思路本课程设计主要分为硬件设计和软件设计两部分。

硬件部分主要包括超声波模块、LCD显示屏、蜂鸣器等模块的连接和电路设计;软件部分主要包括51单片机程序设计及LCD显示程序编写。

三、硬件设计1. 超声波模块连接超声波模块是实现测距功能的核心部件。

在本课程设计中,我们采用HC-SR04型号的超声波模块。

该模块需要连接到51单片机上,具体连接方式如下:- 将VCC引脚连接到51单片机上的5V电源;- 将GND引脚连接到51单片机上的GND;- 将Trig引脚连接到P2.0口;- 将Echo引脚连接到P2.1口。

2. LCD显示屏连接LCD显示屏用于显示测距结果和报警信息。

在本课程设计中,我们采用1602型号的LCD显示屏。

该模块需要连接到51单片机上,具体连接方式如下:- 将VSS引脚连接到51单片机上的GND;- 将VDD引脚连接到51单片机上的5V电源;- 将VO引脚连接到一个10K电位器,再将电位器两端分别接到GND 和5V电源;- 将RS引脚连接到P1.0口;- 将RW引脚连接到P1.1口;- 将EN引脚连接到P1.2口;- 将D4-D7引脚分别连接到P0口的高四位。

3. 蜂鸣器连接蜂鸣器用于报警。

在本课程设计中,我们采用被动式蜂鸣器。

该模块需要连接到51单片机上,具体连接方式如下:- 将正极引脚(一般为长针)连接到51单片机上的P3.7口;- 将负极引脚(一般为短针)连接到51单片机上的GND。

四、软件设计1. 51单片机程序设计在本课程设计中,我们采用Keil C51作为编程工具,使用C语言编写程序。

主要程序流程如下:- 定义超声波模块的Trig和Echo引脚;- 定义LCD显示屏的RS、RW、EN和D4-D7引脚;- 定义蜂鸣器的引脚;- 定义变量存储测距结果和报警状态;- 初始化LCD显示屏、超声波模块等模块;- 循环执行以下操作:- 发送超声波信号并计算回波时间,从而得到距离值;- 根据距离值判断是否需要报警,并控制蜂鸣器发出报警声音;- 将测距结果和报警状态显示在LCD显示屏上。

基于51单片机的超声波测距模块

基于51单片机的超声波测距模块

基于51单片机的超声波测距模块By 黄阿阿阿厉第1章HC-SR04超声波测距模块说明1.1 产品特点HC-SR04超声波测距模块能提供2~400cm的非接触式距离感测功能,测量精度可以达到3mm;该模块包括超声波发射器、接收器与控制电路。

1.2 产品介绍HC-SR04模块实物如图1.1所示,引脚如图所示,从上到下分别为VCC,Trig,Echo和GND。

VCC,GND连接电源,Echo和Trig连接51单片机的引脚。

图1.1 HC-SR04模块实物图HC-SR04超声波电气参数如表1.1所示。

表1.1 HC-SRO4电气参数HC-SRO4超声波模块的时序图如图1.2所示。

图1.2 HC-SRO4的时序图HC-SR04的实物规格如图1.3所示。

图1.3 模块尺寸1.3 注意事项HC-SR04超声波模块不宜带电连接,若要带电连接,则先让模块的GND端先连接,否则会影响模块的正常工作。

使用该模块测距时,被测物体的面积不少于0.5平方米平面。

且平面要求尽量平整,否则会影响测量的结果。

1.4 模块分析根据时序图可以知道,只需通过单片机向模块的Trig端提供一个10us以上的脉冲出发信号,该模块内部将会发出8个40KHz的脉冲,并开始检测回波。

一旦检测到有回波信号则输出回响信号。

回响信号的脉冲宽度与所测的距离成正比。

通过检测开始发射信号到收到回响信号的时间间隔,就可以计算得到距离。

根据时序图,这样的方式可能会存在误差,即误差是声音在空气的传播速度并不固定,虽然有一个标准的声速值V=340m/s,但是实际的声速并不固定,所以计算出来的数值在不同的地区会存在差异。

因为资料不足,这里我有一个猜测。

Echo输出电平置零的时刻应该是模块不再接受到回波信号的那一刻,这样,官方提供的计算方法才能说得通。

第2章程序和说明2.1 硬件平台说明本次测试使用的硬件平台,是手创科技提供的51单片机开发板,使用的单片机型号是STC89C52RC。

基于单片机的超声波测距系统设计

基于单片机的超声波测距系统设计

基于单片机的超声波测距系统设计一、本文概述随着科技的飞速发展,超声波测距技术以其非接触、高精度、实时性强等优点,在众多领域如机器人导航、自动驾驶、工业控制、安防监控等中得到了广泛应用。

单片机作为一种集成度高、控制灵活、成本较低的微控制器,是实现超声波测距系统的理想选择。

本文旨在探讨基于单片机的超声波测距系统的设计原理、硬件构成、软件编程及实际应用,以期为相关领域的科研人员和技术人员提供参考。

本文将首先介绍超声波测距的基本原理和关键技术,包括超声波的传播特性、测量原理及误差分析。

接着,详细阐述基于单片机的超声波测距系统的硬件设计,包括单片机的选型、超声波收发模块的选择与连接、信号处理电路的设计等。

在此基础上,本文将介绍系统的软件设计,包括超声波发射与接收的时序控制、距离数据的处理与显示等。

还将讨论系统的低功耗设计、抗干扰措施以及在实际应用中的优化策略。

本文将通过具体实例,展示基于单片机的超声波测距系统在机器人定位、障碍物检测等场景中的应用,以验证系统的可行性和实用性。

本文期望能为相关领域的研究提供有益的参考,推动超声波测距技术的进一步发展和应用。

二、超声波测距原理超声波测距系统主要基于超声波在空气中的传播速度以及反射原理进行设计。

超声波是一种频率高于20kHz的声波,其传播速度在标准大气条件下约为343米/秒。

在超声波测距系统中,超声波发射器向目标物体发射超声波,当超声波遇到目标物体后,会发生反射,反射的超声波被超声波接收器接收。

测距的原理在于测量超声波从发射到接收的时间差。

设超声波发射器发射超声波的时间为t1,接收器接收到反射波的时间为t2,则超声波从发射到接收所经历的时间为Δt = t2 - t1。

由于超声波在空气中的传播速度是已知的,所以可以通过测量时间差Δt来计算目标物体与测距系统之间的距离D。

距离D的计算公式为:D = V * Δt / 2,其中V为超声波在空气中的传播速度。

在实际应用中,为了确保测量的准确性,通常会采用一些技术手段来减少误差。

超声测距模块HC—SR04的超声波测距仪设计

超声测距模块HC—SR04的超声波测距仪设计

置 相 应 的环 境 变 量 。
( )QtE e d d和 Qtpa开 发环 境 的 建 立 2 / mb d e oi 建 立 QtE e d d和 Qtpa开 发 环 境 的具 体 步 骤 如 / mb d e oi
G I 扩 展 资 源 , 现 对 超 声 波 测 距 模 块 HC—S 0 PO 实 R 4的 数
引 言
随着 国 民 经 济 的 迅 速 发 展 , 声 波 在 机 械 制 造 、 油 超 石 化 工 、 空 航 天 等 领 域 发 挥 着 越 来 越 重 要 的作 用 。 航
为 t超 声 波 在 空气 中 的传 播 速 度 为 c 则 从 传 感 器 到 目标 , ,
物 体 的距 离 D可 用 下 式 求 出 :
数 g l—nt 于 初 始 化 GPI po ii用 ’ O 没备 。 函数 g i eu — d v创 建 并 p0 t p c e s
传 播 过 程 中 会 产 生 衰 减 且 发 射 功 率 有 限 , 致 远 距 离 回 波 导
很 难 检 测 到 ,所 以会 有 一个 最 远 测 量 距 离 。另 外 , 过 温 通
波 从 发 射 到返 回 的 时 间 。
碍 障 匝

S20 显D 处 4 L屏 3器 示 C1 C 理
3 软 件 设 计
在 软 件 开 发 之前 , 先 要 完 成 软 件 开 发 环 境 的搭 建 , 首 接 下 来 最 重 要 的工 作 就 是设 备 驱 动 程 序 的 开 发 。 当 软 件 系统 底 层 的程 序 完 成 之 后 , 可 以 着 手上 层 的 与 设 备 无 关 就 的应 用 程 序 。最 后 就 是 系统 的 图形 界 面 的设 计 , 并将 应 用 程 序 烧 写 到 ¥ C 4 0开 发 板 上 。 321

基于51单片机超声波测距仪

基于51单片机超声波测距仪

基于51单片机超声波测距仪基于51单片机的超声波测距仪设计摘要利用超声波进行测距有许多优点比如不受光强度、色彩和电磁场等外界因素的影响,而且超声波传感器的价位较低、结构也较为简单,超声波以声速传播,方便收发与计算。

在汽车倒车雷达、移动机器人的避障、特别是测量距离等许多方面都已有了非常普遍的应用。

本次毕业设计的超声波测距仪是在STC89C51单片机的基础上设计的,在分析和了解了超声波的一些优点和特性后,又查看了利用超声波测距的基本原理。

最后决定使用51单片机系统和超声波传感器共同组成。

设计的超声波测距仪的硬件部分主要包括电源及复位模块、单片机与超声波模块组成的超声波发射模块、超声波接收模块、LED数码显示模块和扩展报警模块。

软件部分主要包括单片机主程序、根据超声波发射与接收计算距离程序、LED距离显示程序、按键控制程序和蜂鸣器报警程序,这样安排使得系统具有模块化的特点。

系统容易进行控制,具有可靠地的性能,具有较高的测量精度,最重要的是能对距离进行实时测量。

关键词:单片机,测距仪,超声波,实时测量Design of Ultrasonic Distance Meter Based on 51 MCMABSTRACTUsing ultrasonic ranging has many advantages for example, from the effects of light intensity, color and electromagnetic field and other external factors and price lower ultrasonic sensors, the structure is simple, ultrasonic sounds velocity, convenient transceiver and calculation. In the car reverse radar, mobile robot obstacle avoidance, especially measuring distance and many other aspects have been very common application.The graduation design of ultrasonic range finder based on STC89C51 MCU design, analysis and understanding of the some advantages and characteristics of ultrasonic and looked at the use of the basic principle of ultrasonic distance measurement. Finally, the composition of the 51 single-chip microcomputer system and ultrasonic sensor is decided.. The design of ultrasonic rangefinder hardware part consists of the power and reset module, SCM and ultrasonic module consists of ultrasonic emission module, ultrasonic receiving module, LED digital display expansion module and alarm module. Software part mainly includes MCU program, according to the ultrasonic transmitting and receiving computing program distance, the distance of LED display program, key control procedures and buzzer alarm procedures, this arrangement enables the system to have the characteristics of modular. The system is easy to control and has the reliable performance, and has the higher accuracy, and the most important is the real-time measurement of the distance.KEY WORDS: Single chip microcomputer,Range finder,Ultrasonic,Real-time measurement目录摘要 (I)目录 (III)第1章绪论 (1)1.1 研究背景 (1)1.2 研究的主要意义 (1)第2章系统电路设计 (3)2.1 系统结构设计 (3)2.2 电路总体设计方案 (3)发射与接收电路设计方案 (3)显示电路设计方案 (5)报警电路设计方案 (6)系统复位电路设计 (6)第3章系统硬件设计 (8)3.1 单片机概述 (8)STC89C51主要性能 (8)3.1.2 STC89C51外部结构及特性 (8)内部组成 (11)3.2 超声波测距模块 (12)3.2.1 超声波传感器介绍 (12)HC-SR04超声波测距芯片的性能特点 (12)超声波时序图 (15)3.3 驱动显示电路及报警电路 (15)LED数码管显示电路 (16)蜂鸣器报警电路 (17)3.4HC-RS04超声波测距原理 (17)3.5 按键设置电路 (18)第4章系统软件设计 (21)4.1 系统主程序 (21)4.2 显示距离子程序 (22)4.3 报警子程序 (22)4.4 按键子程序 (23)第5章系统仿真 (25)5.1 系统仿真环境——Proteus (25)5.2 仿真 (25)5.3 误差及特性分析 (26)结论 (28)谢辞 (29)参考文献 (30)第1章绪论1.1 研究背景超声波测距法是通过超声波测量从已知位置到被测物体表面的距离的利用超声波的方法。

51单片机开发板-超声波测距-数码管显示

51单片机开发板-超声波测距-数码管显示

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

是一种结构简单、性能稳定、使用方便、价格低廉的超声波距离测量器,具有一定的实用价值。

二、项目设计思路1、硬件资源单片机开发板(携带数码管);HC-SR04超声波模块;STC89C52芯片;2、软件设计思路软件设计采用C语言编程,运用模块化程序设计思想,对不同功能模块的程序进行分别编程,以便移植或调用,这样使软件层次结构清晰,有利于软件的调试修改。

软件设计思路是:系统初始化、发射脉冲串、计时、接收输入脉冲,接收串口输入速度值、计算距离、显示距离值、重复。

超声波测距算法设计如下:超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就会被超声波接收器R接收到。

这样,只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器于反射物体的距离。

该距离的计算公式如下:d=s/2(v×t)/2其中:d为被测物于测距器的距离;s为声波的来回路程;v为声速;t为声波来回所用的时间。

超声波测距原理图如下:3、项目涉及的知识点说明HC-SR04超声波模块简介:实物图:正面:背面:HC-SR04 超声波测距模块可提供 2cm-400cm 的非接触式距离感测功能,测距精度可达高到 1cm;模块包括超声波发射器、接收器与控制电路。

基于51单片机的超声波测距系统设计

基于51单片机的超声波测距系统设计

基于51单片机的超声波测距系统设计超声波测距系统在工业自动化、智能机器人等领域有着广泛的应用。

本文将介绍一种基于51单片机的超声波测距系统设计,包括硬件设计和软件设计两个方面。

1.硬件设计硬件设计是超声波测距系统设计的基础,下面是一些主要的硬件设计要点。

(1)传感器模块:选择适合的超声波传感器模块作为测距传感器。

传感器模块一般包括一个超声波发射器和一个超声波接收器。

通过发送超声波脉冲,并测量收到的回波时间来计算距离。

(2)51单片机:选择一款适合的51单片机作为主控芯片。

常用的型号有AT89S51、AT89C52等。

51单片机具有丰富的外设资源,且易于编程。

(3)显示模块:可以选择常见的数码管、液晶显示屏等显示模块来显示测距结果。

(4)电源模块:设计稳定、可靠的电源模块,为系统提供电源供电。

2.软件设计软件设计是实现超声波测距系统的关键,下面是一些主要的软件设计要点。

(1)超声波发射与接收:通过51单片机的IO口驱动超声波传感器模块进行发射与接收。

超声波发射一般只需要发送一个脉冲,而超声波接收则需要采集到回波信号,可以使用定时器或外部中断来实现信号的接收。

(2)测距算法:根据超声波发射和接收的时间间隔,可以通过测距算法来计算出距离。

最常用的测距算法是利用声速的速度和回波时间的一半来计算距离。

(3)数据处理与显示:将测得的距离数据进行处理,并使用显示模块将结果显示出来。

可以选择合适的数码管显示驱动方式或液晶显示屏驱动方式。

(4)系统控制:根据实际需求,可以对系统进行控制,如设置报警阈值,当距离超出阈值时发出报警信号。

3.系统功能与扩展超声波测距系统设计完成后,可以加入一些额外的功能与扩展,以提高系统的实用性和性能。

(1)多点测距:可以设计多个传感器模块,实现多点测距功能,适用于复杂的环境。

(2)数据存储与通信:可以将测得的距离数据存储到外部存储器,如EEPROM或SD卡,并通过串口通信或无线通信方式将数据传输到上位机进行进一步处理。

基于51单片机的超声波测距仪之倒车雷达作品设计毕业论文

基于51单片机的超声波测距仪之倒车雷达作品设计毕业论文

基于51单片机的超声波测距仪之倒车雷达作品设计毕业论文基于51单片机的超声波测距仪之倒车雷达作品设计毕业论文摘要: 超声波具有指向性强,能量消耗缓慢,传播距离较远等优点,所以,在利用传感器技术和自动控制技术相结合的测距方案中,超声波测距是目前应用最普遍的一种,他广泛应用于防盗、倒车雷达、水位测量、建筑施工工地以及一些工业现场。

本课题详细介绍了超声波传感器的原理和特性,以及STC公司的STC89C52的单片机的性能和特点,并在分析了超声波测距的原理的基础上,指出了设计测距系统的不足并加以改进,将温度引起的误差考虑在内并且加以修正,给出了以STC89C52单片机为核心的低成本、高精度、液晶显示超声波测距系统的硬件电路和软件设计方法。

该系统电路设计合理、工作稳定、性能良好、检测速度快、计算简单并且做到了可设计报警范围的功能,在测量精度方面能达到工业使用的要求。

关键词:单片机;液晶显示;报警;测距Ultrasonic distance measurement based on single chipAbstract: Ultrasound has a strong point, the energy consumption of the slow spread of the advantages of distance, so the use of sensor technology and automatic control technology, the program combines distance, ultrasonic distance measurement is the most common one, and he widely used in security, parking sensor, water level measurement, construction sites and some industrial sites.This subject introduces the principles and characteristics of ultrasonic sensors, and microcontroller STC89C52 STC's performance and characteristics, and the analysis of the ultrasonic distance measurement based on the principle that the lack of design ranging system and make improvements, will into account the error due to temperature and should be amended to STC89C52 given low-cost microcontroller as the core, high-accuracy, liquid crystal display ultrasonic ranging system of hardware and software design methods. The system circuit design is reasonable, stable, good performance, fast detection of simple calculation and can be designed to achieve the alarm range of functions to achieve precision in the measurement requirements for industrial use. Keywords: microcontroller; LCD display; alarm; ranging目录1 绪论 (6)1.1 研究的背景 (6)1.2研究的主要内容 (6)1.3应解决的关键问题 (6)2 电路方案论证 (7)2.1方案比较 (7)激光测距 (7)超声波测距 (7)2.2电路总体方案 (7)3单片机概述 (9)3.1 STC89C52主要性能 (9)3.2 STC89C52外部结构及特性 (9)3.3 STC89C52内部组成 (10)4 超声波测距模块 (12)4.1 超声波传感器介绍 (12)4.2 HC-SR04超声波测距模块的性能特点 (13)4.3 HC-SR04的管脚排列和电气参数 (14)管脚简介 (14)HC-SR04的电气参数 (14)4.4超声波时序图 (15)5系统硬件电路设计 (16)5.1单片机最小系统 (16)芯片 (16)复位电路 (16)晶振电路 (17)5.2 驱动显示电路及报警电路 (18)液晶显示屏 (18)蜂鸣器报警 (19)5.3 HC-RS04超声波测距原理 (20)5.4 5V稳压电路 (21)5.5温度检测电路 (22)温度检测方案的分析 (22)数字温度传感器DS18B20简介 (22)的结构及电路 (22)6系统程序的设计 (23)6.1主程序 (23)6.2显示数据子程序 (24)6.3报警子程序 (25)6.4按键子程序 (25)结论 (27)参考文献 (28)附录(A)....................................................................... 错误!未定义书签。

基于51单片机的HC_SR04超声波测距系统制作

基于51单片机的HC_SR04超声波测距系统制作

基于51单片机带温度补偿的HC-SR04超声波测距系统利用从网上购买的HC-SR04超声波模块制作了一个测距装置,HC-SRO 4自身不带温度补偿功能,所以加上一个使用DS18B20故的温度测量模块。

整个系统包括:51单片机最小系统,超声波测距模块、温度测量模块、液晶显示模块。

使用了如下主要元器件:元件说明数量STC90C516RC 51单片机 1HC-SR04 超声波测距模块 1DS18B20 温度测量模块 1lcd1602 液晶显示模块 1系统电路图LCD1602LCjl6?tVLLD EK Uf |_3 st [aJi L_i )■■ H ■■rrFLVrv克51单片机最小系统单片机型号:STC90C516晶振:12Mhz,自己动手焊接的最小系统板。

LCD1602A 液晶显示模块:Pl ;P123 P134 F145 Fl?6 Pi6JW prg R.ST 9 RXDto TXD11 P32;CSI 12 P3A-CS2 1J PM U P351516 F37 K XT? IS XTl 1? GND20PIC 1 P1 0 VCC P1.1 POO F1.2 F0.1 F13 FD.2 P1.4 P0.3 PI.5 PC +Fl.fiPQ5PL7P0J5RSTXTOP0.7P3.QRxD EAVpp P3.L TQ3LEP 畏0G P3.2INT0 PSEN P3 3INT1 P2.7 P3.1T0 Pl 6 F3 5TI FZ5 F3.6 WR P2.4 P3.7RD P 工3 XTAL? P22XTAL1F2.1GND F2.038 ET137P02 36PC3 35P(4 34P(5 -4虽P 忆 32P(? ai… vcc-3029 2S LCDE 27 RD 26 25 P :424氏3 232? SCL21SDA P(*JHC-SR04超声波测距模块HC-SR04超声波测距模块可提供 2cm 至400cm 的非接触式距离感测功能,测距精度可达 3mm 模块自 身包括超声波发射器、接收器与控制电路。

基于51单片机的HC_SR04超声波测距系统制作

基于51单片机的HC_SR04超声波测距系统制作

基于51单⽚机的HC_SR04超声波测距系统制作基于51单⽚机带温度补偿的HC-SR04超声波测距系统利⽤从⽹上购买的HC-SR04超声波模块制作了⼀个测距装置,HC-SRO 4⾃⾝不带温度补偿功能,所以加上⼀个使⽤DS18B20故的温度测量模块。

整个系统包括:51单⽚机最⼩系统,超声波测距模块、温度测量模块、液晶显⽰模块。

使⽤了如下主要元器件:元件说明数量STC90C516RC 51单⽚机 1HC-SR04 超声波测距模块 1DS18B20 温度测量模块 1lcd1602 液晶显⽰模块 1系统电路图LCD1602LCjl6?tVLLD EK Uf |_3 st [aJi L_i )■■ H ■■rrFLVrv克51单⽚机最⼩系统单⽚机型号:STC90C516晶振:12Mhz,⾃⼰动⼿焊接的最⼩系统板。

LCD1602A 液晶显⽰模块:4 F145 Fl?6 Pi6JW prg R.ST 9 RXDto TXD11 P32;CSI 12 P3A-CS2 1J PM U P351516 F37 K XT? IS XTl 1? GND20PIC 1 P1 0 VCC P1.1 POO F1.2 F0.1 F13 FD.2 P1.4 P0.3 PI.5 PC +Fl.fiPQ5PL7P0J5RSTXTOP0.7P3.QRxD EAVpp P3.L TQ3LEP 畏0G P3.2INT0 PSEN P3 3INT1 P2.7 P3.1T0 Pl 6 F3 5TI FZ5 F3.6 WR P2.4 P3.7RD P ⼯3 XTAL? P22 XTAL1F2.1GND F2.038 ET137P02 36PC3 35P(4 34P(5 -4虽P 忆 32P(? ai… vcc-3029 2S LCDE 27 RD 26 25 P :424⽒3 232? SCL21SDA P(*JHC-SR04超声波测距模块HC-SR04超声波测距模块可提供2cm⾄400cm的⾮接触式距离感测功能,测距精度可达3mm模块⾃⾝包括超声波发射器、接收器与控制电路。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于51单片机带温度补偿的HC-SR04超声波测距系统利用从网上购买的HC-SR04超声波模块制作了一个测距装置,HC-SR04自身不带温度补偿功能,所以加上一个使用DS18B20做的温度测量模块。

整个系统包括:51单片机最小系统,超声波测距模块、温度测量模块、液晶显示模块。

使用了如下主要元器件:元件说明数量STC90C516RC 51单片机 1HC-SR04 超声波测距模块 1DS18B20 温度测量模块 1lcd1602 液晶显示模块 1系统电路图51单片机最小系统单片机型号:STC90C516,晶振:12Mhz。

自己动手焊接的最小系统板。

LCD1602A液晶显示模块:HC-SR04超声波测距模块HC-SR04超声波测距模块可提供2cm至400cm的非接触式距离感测功能,测距精度可达3mm;模块自身包括超声波发射器、接收器与控制电路。

实物正反两面图HC-SR04电气参数:HC-SR04工作原理及说明:1、给Trig触发控制信号IO端口至少10us的高电平信号;2、模块自动发送8个40khz的方波,并自动检测是否有信号返回;3、有信号返回时,Echo回响信号输出端口输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间;4、两次测距时间间隔最少在60ms以上,以防止发射信号对回响信号的影响;超声波时序图单片机控制HC-SR04超声波测距说明:原理图中,单片机的P1.7口接HC-SR04的Trig端口,P1.6口接HC-SR04的Echo端口,超声波在传播时碰到障碍物即返回,HC-SR04模块收到回波信号后Echo口输出一个高电平,单片机检测到高电平后即启动计数器开始计数,直到单片机检测到Echo口变成低电平后结束计数,计数器的计数值乘以单片机计数周期就是超声波从发射到接收的往返时间,即距离S=v*t/2;由于在室温下,声速受温度的影响,其变化关系为:V=334.1+T*0.61(T为当前温度),利用DS18B20完全满足对测量的修正了,所以高于26度时取26度,低于14度时取14度。

距离计算公式为:S=(334.1+T*0.61)*N*T0/2T:当前环境温度值N:计数值T0:单片机计数周期=晶振频率/12(微秒)HC-SR04测量存在不稳定性,所在对同一距离进行多次测量,并对测量结果排序,去除最大和最小值,将余下的求平均值。

程序流程图:程序代码:/** 程序:基于HC-SR04的超声波测距系统* 单片机型号:STC90C516 12MHz* 说明:按下K1键后,指示灯点亮,开始连续进行7次超声波测距,每次测距间隔80ms,* 完成后对7次结果排序并将最大的2个数值和最小的2个数值去除,对剩余的* 3个数值取平均值。

完成后指示灯灭,输出结果到LCD1602上。

测量超出围则发出报警声。

* 使用两个IO端口控制HC-SR04触发信号输入和回响信号输出,* 以及一个T0定时器用于时间计数。

* 使用DS18B20测量环境温度,声速公式:V=334.1m/s+Temperature*0.61,* 单片机晶振为12Mhz(11.953M),计数时为T=1us* 计算公式:S=(334.1m/s+Temperature*0.61)*N*T/2,N为计数值=TH0*256+TL0*//*包含头文件*/#include <reg51.h>#include <intrins.h>#define Delay4us(){_nop_();_nop_();_nop_();_nop_();}/*宏定义*/#define uchar unsigned char //无符号8位#define uint unsigned int //无符号16位#define ulong unsigned long //无符号32位/*全局变量定义*/sbit K1=P1^0; //按下K1后,开始测距sbit LEDRed=P1^1; //测距指示灯,亮表示正在测距,灭表示测距完成sbit BEEP=P1^5; //报警测量超出围sbit Trig=P1^7; //HC-SR04触发信号输入sbit Echo=P1^6; //HC-SR04回响信号输出float xdata DistanceValue=0.0; //测量的距离值float xdata SPEEDSOUND; //声速float xdata XTALTIME; //单片机计数周期uchar xdata stringBuf[6]; //数值转字符串缓冲//LCD1602提示信息uchar code Prompts[][16]={{"Measure Distance"}, //测量距离{"- Out of Range -"}, //超出测量围{"MAX range 400cm "}, //测距最大值400cm{" "}, //清屏{" Press K1 Start "} //按键开始测量};uchar xdata DistanceText[]="Range: ";//测量结果字符串uchar xdata TemperatureText[]="Temperature: ";//测量温度值/*外部函数声明*/extern void LCD_Initialize();extern void LCD_Display_String(uchar *, uchar);extern void ReadTemperatureFromDS18B20();extern int xdata CurTempInteger;//毫秒延时函数void DelayMS(uint ms);//20微秒延时函数void Delay20us();//HCSR04初始化void HCSR04_Initialize();//测量距离float MeasuringDistance();//测距的数值排序求平均float DistanceStatistics();//输出距离值到LCD1602上void DisplayDistanceValue(float dat);//将无符号的整数转成字符串,返回字符串长度,不包括'\0'结束符uchar UnsigedIntToString(uint value);//蜂鸣器void Beep(uchar time);//显示温度值void DisplayTemperatureValue();//测量距离float MeasuringDistance(){//最大定时时间约65msTH0=0;TL0=0;//生成20us的脉冲宽度的触发信号Trig=1;Trig=0;//等待回响信号变高电平while(!Echo);TR0=1; //启动定时器0//等待回响信号变低电平while(Echo);TR0=0; //关闭定时器0//返回距离值(mm)return (SPEEDSOUND*XTALTIME*((float)TH0*256+(float)TL0))/2000; }//HCSR04初始化void HCSR04_Initialize(){//计算单片机计数周期晶振=11.953M 单位usXTALTIME=12/11.953;//温度25度时声速的值SPEEDSOUND=334.1+25*0.61;Trig=0;Echo=0;TMOD=0x01;}//输出距离值到LCD1602上void DisplayDistanceValue(float dat){uchar i=0,j=0,len;uint value;value=(uint)dat;//围检查大于4000mm和小于20mm都为超出测量围if(value>4000){LCD_Display_String(Prompts[1],0x00);LCD_Display_String(Prompts[2],0x40);Beep(2);}else if(value<20){LCD_Display_String(Prompts[1],0x00);LCD_Display_String(Prompts[3],0x40);Beep(2);}//将数值转换成字符串len=UnsigedIntToString(value);//保留1位小数while(stringBuf[i]!='\0'){if(len-j==1){DistanceText[6+j]='.';j++;}else{DistanceText[6+j]=stringBuf[i];i++;j++;}}DistanceText[6+j]='c';j++;DistanceText[6+j]='m';i=7+j;//剩余位置补空格while(i<16){DistanceText[i]=' ';i++;}//LCD_Display_String(Prompts[0],0x00);LCD_Display_String(DistanceText,0x40);}}//显示温度值void DisplayTemperatureValue(){TemperatureText[13]=CurTempInteger/10+'0';TemperatureText[14]=CurTempInteger%10+'0';TemperatureText[15]='C';LCD_Display_String(TemperatureText,0x00); }//将无符号的整数转成字符串,返回字符串长度uchar UnsigedIntToString(uint value){uchar i=0,t,length;{stringBuf[i]='0'+value%10;value=value/10;i++;}while(value!=0);length=i;//将字符串颠倒顺序for(i=0;i<(length/2);i++){t=stringBuf[i];stringBuf[i]=stringBuf[length-i-1];stringBuf[length-i-1]=t;}stringBuf[length]='\0';return length;}//蜂鸣器void Beep(uchar time){uchar i;for(i=0;i<100;i++){BEEP=!BEEP;DelayMS(time);}BEEP=0;DelayMS(100);}//延时函数毫秒 12.000MHzvoid DelayMS(uint ms){uchar i, j;while(ms--){_nop_();i = 2;j = 239;do{while (--j);}while (--i);}//延时函数 20微秒 12.000MHzvoid Delay20us(){uchar i;_nop_();i = 7;while (--i);}//定时器0中断void Timer0() interrupt 1{}//DS18B20代码:/*----------------------------------------------* 程序功能: DS18B20温度检测程序* 单片机型号:STC89C52 12MHz* 晶振: 12Mhz------------------------------------------------*//*包含头文件*/#include <reg51.h>#include <intrins.h>/*宏定义*/#define uchar unsigned char //无符号8位#define uint unsigned int //无符号16位//定义DS18B20端口DS18B20_DQsbit DS18B20_DQ = P3^7;//当前采集的温度值整数部分int xdata CurTempInteger;//当前采集的温度值小数部分int xdata CurTempDecimal;/*---------------------------------------------------------------- * 功能:延时函数 STC89C52 12MHz 12T模式* 参数:无* 返回:无----------------------------------------------------------------*/ void Delayus(uint count)while (--count);}/*---------------------------------------------------------------- * 功能:DS18B20复位及状态检测* 参数:无* 返回:0或1,1表示未准备好,0表示准备好----------------------------------------------------------------*/ uchar Reset_DS18B20(){uchar status;DS18B20_DQ=1;Delayus(1);//开始复位过程DS18B20_DQ=0; //数据线拉低Delayus(100); //延时480us-960usDS18B20_DQ=1; //数据线拉高Delayus(10); //延时15us-60usstatus=DS18B20_DQ; //读取数据线上的状态Delayus(120);return status;}/*---------------------------------------------------------------- * 功能:写一字节到DS18B20中* 参数:dat=数据* 返回:无----------------------------------------------------------------*/ void WriteByteToDS18B20(uchar dat){uchar i;for(i=0;i<8;i++){DS18B20_DQ=0;DS18B20_DQ=dat&0x01; //发送1位数据Delayus(15); //延时60us以上DS18B20_DQ=1; //释放总线,等待总线恢复dat>>=1; //准备下一位数据}}/*---------------------------------------------------------------- * 功能:从DS18B20中读一字节* 参数:无* 返回:读取的数据----------------------------------------------------------------*/uchar ReadByteFromDS18B20(){uchar i,dat=0;for(i=0;i<8;i++){DS18B20_DQ=0; //拉低总线,产生读信号dat>>=1;DS18B20_DQ=1; //释放总线,准备读1位数据Delayus(2); //延时4usif(DS18B20_DQ) dat|=0x80; //合并每位数据Delayus(15); //延时60usDS18B20_DQ=1; //拉高总线,准备读下1位数据}return dat;}/*---------------------------------------------------------------- * 功能:读取温度值并转换成有符号的数值形式* 参数:无* 返回:无----------------------------------------------------------------*/ void ReadTemperatureFromDS18B20(){uchar flag=0;//正负符号标志//存储当前采集的温度值uchar TempValue[]={0,0};if(Reset_DS18B20()){CurTempInteger=255;CurTempDecimal=0;}else{WriteByteToDS18B20(0xCC);//跳过ROM命令WriteByteToDS18B20(0x44);//温度转换命令Reset_DS18B20();//复位WriteByteToDS18B20(0xCC);//跳过ROM命令WriteByteToDS18B20(0xBE);//读取温度暂存器命令TempValue[0]=ReadByteFromDS18B20();//先读低字节温度值TempValue[1]=ReadByteFromDS18B20();//后读高字节温度值Reset_DS18B20();//复位//计算温度值//先进行正温度与负温度判断,高5位全为1(0xF8)则为负数if((TempValue[1]&0xF8)==0xF8){//负温度计算:取反加1,低字节为0时,高字节取反加1,否则不需要。

相关文档
最新文档