电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

基于51单片机的HC-SR04超声波测距系统制作VIP免费

基于51单片机的HC-SR04超声波测距系统制作_第1页
1/18
基于51单片机的HC-SR04超声波测距系统制作_第2页
2/18
基于51单片机的HC-SR04超声波测距系统制作_第3页
3/18
基于51单片机带温度补偿的HC-SR04超声波测距系统利用从网上购买的HC-SR04超声波模块制作了一个测距装置,HC-SR04自身不带温度补偿功能,所以加上一个使用DS18B20做的温度测量模块。整个系统包括:51单片机最小系统,超声波测距模块、温度测量模块、液晶显示模块。使用了如下主要元器件:元件说明数量STC90C516RC51单片机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度或低于14度时,上述公式不能完全满足对测量的修正了,所以高于26度时取26度,低于14度时取14度。距离计算公式为:S=(334.1+T*0.61)*N*T0/2T:当前环境温度值N:计数值T0:单片机计数周期=晶振频率/12(微秒)HC-SR04测量存在不稳定性,所在对同一距离进行多次测量,并对测量结果排序,去除最大和最小值,将余下的求平均值。程序流程图:程序代码:/**程序:基于HC-SR04的超声波测距系统*单片机型号:STC90C51612MHz*说明:按下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#include#defineDelay4us(){_nop_();_nop_();_nop_();_nop_();}/*宏定义*/#defineucharunsignedchar//无符号8位#defineuintunsignedint//无符号16位#defineulongunsignedlong//无符号32位/*全局变量定义*/sbitK1=P1^0;//按下K1后,开始测距sbitLEDRed=P1^1;//测距指示灯,亮表示正在测距,灭表示测距完成sbitBEEP=P1^5;//报警测量超出范围sbitTrig=P1^7;//HC-SR04触发信号输入sbitEcho=P1^6;//HC-SR04回响信号输出floatxdataDistanceValue=0.0;//测量的距离值floatxdataSPEEDSOUND;//声速floatxdataXTALTIME;//单片机计数周期ucharxdatastringBuf[6];//数值转字符串缓冲//LCD1602提示信息ucharcodePrompts[][16]={{"MeasureDistance"},//测量距离{"-OutofRange-"},//超出测量范围{"MAXrange400cm"},//测距最大值400cm{"MINrange2cm"},//测距最小值2cm{""},//清屏{"PressK1Start"}//按键开始测量};ucharxdataDistanceText[]="Range:";//测量结果字符串ucharxdataTemperatureText[]="Temperature:";//测量温度值/*外部函数声明*/externvoidLCD_Initialize();externvoidLCD_Display_String(uchar*,uchar);externvoidReadTemperatureFromDS18B20...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

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

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部