51单片机超声波测距_液位检测_温度检测原理图PCB仿真代码

目录

实物图:

PCB

​原理图​

仿真图

[​编辑 程序](#编辑 程序)

资料下载地址:51单片机超声波测距-液位检测-温度检测原理图PCB仿真代码

|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 主控为stc89c52,通过ds18b20进行温度采集,超声波测距,距离不可以超过1m,通过按键可以设置距离上下限阈值 ## 实物图: |

PCB

原理图

仿真图

程序

cpp 复制代码
#define uchar unsigned char
#define uint unsigned int
#define ULint unsigned long int
//温度零上与零下的标志位
char flag=0;
//超声波
char flags=0;
//超声波距离
char flag1s=0;
//计算定时间
uint time=0;
//计算距离
ULint L_=0;
//温度
uint t_=0;
//显示模式  0正常  1最大值调整  2最小值调整
uchar mode=0;

uint Max=490;
uint Min=30;
//按键标志
uchar k=0;
//数值有误
uchar FW=0;
//头函数
#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);  //20MS
                        tmpchange();  //温度转换
                        t_=tmp();     //度温度
                        Conut(t_/10); //计算距离
                        if(L_>Max||L_<Min)
                        {
                                Feng_Start();
                        }
                        else
                        {
                                if(FW!=1)
                                Feng_Stop();
                        }
                        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);
                }
        }
}


//T0中断用来计数器溢出,超过测距范围
void CJ_T0() interrupt 1
{
    flags=1;                                                         //中断溢出标志
}
相关推荐
资料,小偿1 天前
8086微机原理与汇编语言,8086程序设计,EMU8086,MASM,汇编程序设计,proteus
汇编·51单片机·proteus
hazy1k2 天前
51单片机基础-ADC模数转换
stm32·单片机·嵌入式硬件·51单片机·1024程序员节
小莞尔2 天前
【51单片机】【protues仿真】基于51单片机自动售货机系统
c语言·单片机·嵌入式硬件·物联网·51单片机
hazy1k3 天前
51单片机基础-I²C通信与EEPROM读写
c语言·stm32·单片机·嵌入式硬件·51单片机·1024程序员节
小莞尔3 天前
【51单片机】【protues仿真】基于51单片机热敏电阻数字温度计数码管系统
c语言·stm32·单片机·嵌入式硬件·物联网·51单片机
hazy1k3 天前
51单片机基础-DS1302时钟
stm32·单片机·嵌入式硬件·51单片机·1024程序员节
hazy1k4 天前
51单片机基础-红外遥控(NEC协议)
stm32·单片机·嵌入式硬件·51单片机·1024程序员节
STC_USB_CAN_80516 天前
STC32G144K246,高速PWM@240Mhz 运行测试
单片机·嵌入式硬件·51单片机
Despacito0o6 天前
Keil MDK-ARM 5.42a 完整安装指南(2025.4.19最新版)
arm开发·stm32·单片机·嵌入式硬件·物联网·51单片机·嵌入式实时数据库