第一范文网 - 专业文章范例文档资料分享平台

(完整版)基于单片机控制超声波测距仪毕业设计论文

来源:用户分享 时间:2025/6/5 2:11:40 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

超声波发生子程序的作用是通过P1.0端口发送左右超声波脉冲信号(频率约40kHz的方波),脉冲宽度为12μs左右,同时把计数器T1打开进行计时,定时器T1工作在方式0。

超声波测距仪主程序利用外中断1检测返回超声波信号,一旦接收到返回超声波信号(即引脚出现低电平),立即进入中断程序。进入中断后就立即关闭计时器T1停止计时,并将测距成功标志字赋值1。如果当计时器溢出时还未检测到超声波返回信号,则定时器T1溢出中断将外中断1关闭,并将测距成功标志字赋值0表示此次测距不成功。

图5.5为超声波发送及超声波接收程序流程图

图5.2超声波发送及超声波接收程序流程图

超声波发生子程序的作用是通过P1.0端口发送左右超声波脉冲信号(频率约40kHz的方波),脉冲宽度为12μs左右,同时把计数器T1打开进行计时,定时器T1工作在方式0。

超声波测距仪主程序利用外中断1检测返回超声波信号,一旦接收到返回超声波信号(即引脚出现低电平),立即进入中断程序。进入中断后就立即关闭计时器T1停止计时,并将测距成功标志字赋值1。如果当计时器溢出时还未检测到超声波返回信号,则定时器T1溢出中断将外中断1关闭,并将测距成功标志字赋值0表示此次测距不成功。 T0中断服务程序如下: sbit send=P1^0;

void timer0(void)interrupt 1 { send=!send; TH0=0x1f; TL0=0xf4; }

超声波接收(外部中断1)程序: void int1(void)interrupt 2 { if(TH1!=0x00&&TH0!=0x00)

{ b=1; TR1=0; TR0=0;

t=TH1*256+TL1;

t=t; TH0=0x1f; TL0=0xf4; TH1=0x00; TL1=0x00;

} else { b=0; TR1=0; TR0=0;

TH0=0x1f; TL0=0xf4; TH1=0x00; TL1=0x00; } }

4.2.2测温子程序

测温的主要器件是DS18B20,现场温度直接以“一线总线”的数字方式传输,DS18B20中有两个存测得的温度值的两个8位存贮器RAM,用

11位存贮温度值,最高位(5位)为符号位。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码,再计算十进制值。图6.2为DS18B20的温度存储方式:

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

2 32 22 12 02 -12 -22 -32 -4 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 S S S S S 2 62 52 4图6.2 DS18B20的温度存储方式

负温度时S=1,正温度时S=0。因此我们只需要逐位读出它的温度就可以了。读出一个字节C代码如下:

uchar readbyte(void) 直接读一字节程序 { uchar i,k;

i=8; k=0; while(i--) {

tem_in=1; delay_us(1); tem_in=0; k=k>>1; tem_in=1; NOP;

if(tem_in)k |= 0x80; tem_in为1时,则该位也为1

} }

delay_us(4);

return(k);

4.2.3距离计算子程序

当前温度和超声波往返时间均测量出来后,用C语言根据公式计算距离来编程是比较简单的算法。

根据测量距离,而其中,故可简化为:

D?1TT,其实现程序算法如下: c0t1??165.7t1?2273K273K#include

5 总结

超声波测距的原理是利用超声波的发射和接收,根据超声波传播的时间来计算出传播距离。实用的测距方法有两种,一种是在被测距离的两端,一端发射,另一端接收的直接波方式,适用于身高计;另一种是发射波被物体反射回来后接收的反射波方式,适用于测距仪;此次设计采用反射波方式。

超声波测距仪硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分。单片机采用AT89C51。采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用P1.0端口输出超声波换能器所需的40kHz的方波信号,利用外中断0口监测超声波接收电路输出的返回信号。显示电路采用简单实用的4位共阳LED数码管,段码用74LS244驱动,位码用PNP三极管8550驱动。

超声波测距仪的软件设计主要由主程序、超声波发生子程序、超声波

(完整版)基于单片机控制超声波测距仪毕业设计论文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9q2ge20uks8iiwn479cv9uewu2s0h401e0p_10.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top