超声波测距的基本原理和系统框图,给出了超声波发射和接收电路,通过盲区的消除以及环境温度的采样,提高了测距的精确度。利用超声波传输中距离与时间的关系,采用8051单片机进行控制及数据处理,设计出了能精确测量两点间距离的超声波液位检测系统。系统主要由超声波发射器电路、超声波接收器电路、单片机控制电路、环境温度检测电路及显示电路构成。利用所设计出的超声波液位检测系统,对液面进行了测试,采集当时的环境温度获得精确的速度,计算出液面距离。此系统具有易控制、工作可靠、测量精度高的优点,可实时检测液位。
include <reg52.h>
#include <intrins.h>
#include "BJ_Key.h" //±¨¾¯°´¼ü
#include "display.h" //ÏÔʾͷº¯Êý
#include "ultrasonic_wave.h"//³¬Éù²¨Í·º¯Êý
#include "DS18B20.h" //ζȴ«¸ÐÆ÷Í·º¯Êý//º¯ÊýÉùÃ÷
void delayms(uint ms);
//Ö÷º¯Êý
void main()
{Init_ultrasonic_wave();//ÆÁÄ»³õʼ»¯Init1602();//ζȳõʼ»¯tmpchange(); t_=tmp();tmpchange();t_=tmp();tmpchange();t_=tmp();//Ñ»·ÏÔʾwhile(1){Key();//Õý³£ÏÔʾif(mode==0){StartModule();//Æô¶¯³¬Éù²¨while(!RX); //µ±RXΪÁãʱµÈ´ýTR0=1; //¿ªÆô¼ÆÊýwhile(RX); //µ±RXΪ1¼ÆÊý²¢µÈ´ýTR0=0; //¹Ø±Õ¼ÆÊýdelayms(20); //20MStmpchange(); //ζÈת»»t_=tmp(); //¶ÈζÈConut(t_/10); //¼ÆËã¾àÀëif(L_>Max||L_<Min){TR1=1;}else{Feng=1;TR1=0;}Display_1602(t_/10,L_);}//µ÷ÕûÏÔʾelse if(mode!=0){//×î´ó×îСֵInit_MaxMin();while(mode!=0){Key();if(k==1&&mode==1){Init_MaxMin(); write_com(0x8d);//ÉèÖÃλÖà }else if(k==1&&mode==2){Init_MaxMin(); write_com(0x8d+0x40);//ÉèÖÃλÖà }k=0;}//½çÃæ³õʼ»¯Init1602();}}
}void delayms(uint ms)
{uchar i=100,j;for(;ms;ms--){while(--i){j=10;while(--j);}}
}
本文发布于:2024-02-02 11:54:12,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170684605143626.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |