单片机+DS18B20温度控制程序仿真与原理图PCB文件 可设上下限

embedded/2024/10/22 14:41:51/

资料下载地址:单片机+DS18B20温度控制程序仿真与原理图PCB文件 可设上下限

目录

1、项目介绍

2、实物图

​3、电路原理图

​4、仿真原理图

​5、部分代码

1、项目介绍

基于51单片机温度控制,使用18b20来做温度传感器,四位共阳数码管显示。功能说明书:系统启动后默认温度下限28℃、上限30℃。当温度低于设定下限温度时继电器开启、加热指示灯亮起,当温度达到设定上限温度时蜂鸣器响起、保温指示灯亮起,当温度高于设定下限温度低于上限温度时蜂鸣器关闭保温指示灯继续亮起,温度低于下限温度时切换继电器开启加热指示灯亮起。(假设设置烧水,温度下限设置在90℃、上限设置100℃就行)


2、实物图
 


3、电路原理图



4、仿真原理图



5、部分代码

 

void scan()
{int j;for(j=0;j<4;j++){switch(j){case 0:dm=table_dm[display[0]];;w0=0;  //打开数码管显示小数数字的数码管位选端delay(50);w0=1;        //关闭数码管显示小数数字的数码管位选端case 1:dm=table_dm1[display[1]];w1=0;  //打开数码管显示个位数字的数码管位选端delay(50);w1=1;        //关闭数码管显示个位数字的数码管位选端case 2:dm=table_dm[display[2]];w2=0;        //打开数码管显示十位数字的数码管位选端delay(50);w2=1;        //关闭数码管显示十位数字的数码管位选端case 3:dm=table_dm[display[3]];w3=0;        //打开数码管显示百位数字的数码管位选端delay(50);w3=1;        //关闭数码管显示百位数字的数码管位选端}}
}
/****温度传感器采用的是DS18b20,此传感器采用的
是“单总线”来传输数据。****/
/**************DS18B20初始化**************/
ow_reset(void)         //初始化
{char presence=1;while(presence){while(presence){DQ=1;_nop_();_nop_();   //将数据线拉高并延时DQ=0;           //将DQ(P1.0)引脚拉低。请注意,这里的DQ不是变量,而是单片机的引脚!!!                 delay(50);   //延时DQ=1;     //将DS拉高delay(6);presence=DQ;}delay(45);presence=~DQ;}DQ=1;        return presence;
}
/****************写命令函数*****************/
void write_byte(uchar val)
{uchar i;for(i=8;i>0;i--){DQ=1;_nop_();_nop_();    //将数据线拉高并延时DQ=0;_nop_();_nop_();_nop_();_nop_();          //将数据线拉低并延时DQ=val&0x01;delay(6);val=val>>1;               }DQ=1;delay(1);
}        
/****************读一个字节函数*******************/
uchar read_byte(void)
{uchar i;uchar value=0;for(i=8;i>0;i--)  //采用for 循环,读取原始温度数据{DQ=1;_nop_();_nop_();value>>=1;DQ=0;_nop_();_nop_();_nop_();_nop_();DQ=1;_nop_();_nop_();_nop_();_nop_();if(DQ)value|=0x80;delay(6);}DQ=1;        return value;
}
/***************读取温度函数***************/
read_temp()           //读取18b20传感器函数
{ow_reset();delay(200);write_byte(0xcc);write_byte(0x44);ow_reset();delay(1);write_byte(0xcc);write_byte(0xbe);temp_data[0]=read_byte();temp_data[1]=read_byte();temp=temp_data[1];temp<<=8;temp=temp|temp_data[0];return temp;
}


http://www.ppmy.cn/embedded/53939.html

相关文章

DevOps搭建-JDK安装

当在进行DevOps搭建时&#xff0c;JDK&#xff08;Java Development Kit&#xff09;的安装是非常重要的一步&#xff0c;因为许多开发和部署工具都依赖于Java。以下是安装JDK的详细步骤&#xff1a; 下载JDK安装包&#xff1a; 访问Oracle官方网站或OpenJDK项目网站&#xf…

使用Docker Compose运行Elasticsearch

使用Docker Compose运行Elasticsearch可以帮助你快速搭建和管理Elasticsearch服务。以下是具体步骤&#xff1a; 1. 安装Docker和Docker Compose 确保你已经安装了Docker和Docker Compose。如果没有安装&#xff0c;可以参考官方文档进行安装&#xff1a; Docker安装指南Doc…

GPTs与Assistant API:哪一个更适合您?

梗概 主要讲解了OpenAI推出的两种不同的人工智能工具——GPTs和Assistant API&#xff0c;并比较了它们各自的特点和适用场景&#xff0c;帮助用户选择最适合自己需求的工具。 GPTs&#xff08;生成预训练变换模型&#xff09; 核心特点&#xff1a; 生成能力&#xff1a;GPTs…

webui automatic1111上可以跑stable diffusion 3的方法

stable diffusion 3 可以简单句子生成高质量图形&#xff0c;可以生成准确的文字&#xff0c;甚至可以支持中文。 stable diffusion 3 最初只支持API调用&#xff0c;最后把模型也完全开放了。Comfyui因为天生架构优势&#xff0c;第一时间跑起来了。既支持远程API模型调用&am…

文华财经盘立方博易大师主图指标公式大全源码均线

文华财经盘立方博易大师主图指标公式大全源码均线&#xff1a; N:3; EMA25:EMA(C,25),COLORRED,LINETHICK2; EMA70:EMA(C,70),COLORGREEN,LINETHICK2; EMA450:EMA(C,450),COLORYELLOW,LINETHICK2; CONDA1:EMA25>EMA70&&C>HV(H,6)&&C>EMA450&…

怎么优化亚马逊Listing?看这一篇就够了!

运营亚马逊最重要的工作之一就是优化listing&#xff0c;精心优化好亚马逊标题、五点描述、图片和关键词才能提高产品的可见性和吸引力&#xff0c;很多小伙伴对于怎么写出专业的亚马逊listing还是不知道如何下手&#xff0c;今天为大家分享一套实用的亚马逊listing优化指南&am…

视觉灵感的探索和分享平台

做设计没灵感&#xff1f;大脑一片空白&#xff1f;灵感是创作的源泉&#xff0c;也是作品的灵魂所在。工作中缺少灵感&#xff0c;这是每个设计师都会经历的苦恼&#xff0c;那当我们灵感匮乏的时候&#xff0c;该怎么办呢&#xff1f;别急&#xff0c;即时设计、SurfCG、Lapa…

【Proteus仿真】基于stm32的数码管时钟

【Proteus仿真】基于stm32的数码管时钟 Proteus仿真&#xff01;基于stm32的数码管时钟~_哔哩哔哩_bilibili ‍ 01原理图 ​​ 02功能描述 1.通过按键修改时间 2.数码管显示实时时间&#xff0c;时-分-秒-毫秒格式 03获取方式 https://docs.qq.com/sheet/DTExIc2dPUUJ…