【51单片机仿真】基于51单片机设计的温度检测与高低温报警系统仿真源码设计文档演示视频——文末资料下载

基于51单片机设计的温度检测与高低温报警系统仿真设计

演示视频

基于51单片机设计的温度检测与高低温报警系统仿真

系统功能简介

1、实时温度测量,可调整温度值
2、显示测量的温度值,按键切换可查看高温和低温报警值
3、可通过按键输入报警最高值以及最低值,通过两个LED指示灯指示当前设置状态指示
4、当温度大于报警最高值或温度低于报警最低值时进行LED和蜂鸣器声光报警。

目录

1. 引言

2. 硬件电路设计

2.1 AT89C51 单片机

2.2 DS18B20 温度传感器

2.3 显示模块

2.4 报警模块

2.5 电路原理图

3. 软件设计

3.1 温度传感器初始化函数

3.2 读取 DS18B20 温度值

3.3 显示温度值

3.4 温度报警功能

3.5 按键扫描与处理

3.6 延时函数

3.7 主程序

 仿真&源码等系统完整资料下载链接


1. 引言

温度监测在工业和日常生活中有广泛的应用,特别是在冷链运输、仓库管理等对温度要求严格的场合。本系统利用DS18B20温度传感器和AT89C51单片机,实现了实时温度监测及超限报警功能。本文将详细描述硬件电路设计和各个功能模块的程序设计。

2. 硬件电路设计

2.1 AT89C51 单片机

AT89C51 是一个功能强大的 8 位单片机,具有丰富的 I/O 端口和外围设备接口。在本系统中,AT89C51 用于读取温度传感器的数据、显示温度并控制报警装置。

2.2 DS18B20 温度传感器

DS18B20 是一种数字温度传感器,具有高精度和易于使用的特点。它通过单总线与单片机连接,能够提供精确的温度读数。

2.3 显示模块

本系统采用 LED 显示器显示温度值。通过多路复用技术,使用少量的 I/O 端口实现对多个数码管的控制。

2.4 报警模块

报警模块包括 LED 指示灯和蜂鸣器。当温度超过设定的高温或低温报警值时,LED 灯闪烁,蜂鸣器发出警报声。

2.5 电路原理图

电路原理图如下所示:

  • AT89C51 单片机连接 DS18B20 传感器
  • 数码管通过 P0 端口连接显示模块
  • LED 指示灯和蜂鸣器分别连接 P1.6 和 P1.7 端口
  • 按键通过 P1 端口连接,用于温度设置

3. 软件设计

3.1 温度传感器初始化函数

初始化 DS18B20 温度传感器,确保其进入工作状态。

void Init_DS18B20(void) {unsigned char x = 0;DQ = 1;Delay_DS18B20(8);DQ = 0;Delay_DS18B20(80);DQ = 1;Delay_DS18B20(14);x = DQ;Delay_DS18B20(20);
}

3.2 读取 DS18B20 温度值

读取 DS18B20 传感器的温度数据,并进行相应的转换。

unsigned int ReadTemperature(void) {unsigned char a, b;int t = 0;float tt = 0.0;Init_DS18B20();WriteOneChar(0xCC);WriteOneChar(0x44);Init_DS18B20();WriteOneChar(0xCC);WriteOneChar(0xBE);a = ReadOneChar();b = ReadOneChar();t = b;t <<= 8;t |= a;tt = t * 0.0625 * 10;tt += 0.05;return (unsigned int)tt;
}

3.3 显示温度值

将读取到的温度值显示在 LED 显示器上。

void Disp_Temperature(void) {P0 = ~0x98;P2 = 0x7F;Delay(100);P2 = 0xff;P0 = ~LEDData[n];P2 = 0xDF;Delay(100);P2 = 0xff;P0 = ~LEDData[m % 10];DIAN = 0;P2 = 0xF7;Delay(100);P2 = 0xff;P0 = ~LEDData[m / 10];P2 = 0xFD;Delay(100);P2 = 0xff;
}

3.4 温度报警功能

当温度超出设定的高温或低温阈值时,触发报警装置。

void check_wendu(void) {char tempStr[16];unsigned int c = ReadTemperature();if (c >= 0) {sprintf(tempStr, "%u.%u", c / 10, c % 10);} else {sprintf(tempStr, "-%u.%u", (unsigned int)(-c) / 10, (unsigned int)(-c) % 10);}LCD_DisplayString(tempStr);if(c >= gaowen || c <= diwen) {LED = 0;BEEP = 0;} else {LED = 1;BEEP = 1;}
}

3.5 按键扫描与处理

扫描按键状态并处理按键输入,用于温度设置和其他功能的实现。

void KeyScan() {static uchar keybuf[4] = {0xFF, 0xFF, 0xFF, 0xFF};uchar i;keybuf[0] = (keybuf[0] << 1) | KEY1;keybuf[1] = (keybuf[1] << 1) | KEY2;keybuf[2] = (keybuf[2] << 1) | KEY3;keybuf[3] = (keybuf[3] << 1) | KEY4;for(i = 0; i < 4; i++) {if(keybuf[i] == 0x00)keystr[i] = 0;else if(keybuf[i] == 0xFF)keystr[i] = 1;}
}void KeyAction(uchar key) {switch(key) {case 0:if(display_mode == 0) {display_mode = 1;LED_SET_HIGHT = 0;LED_SET_LOW = 1;} else if(display_mode == 1) {display_mode = 2;LED_SET_HIGHT = 1;LED_SET_LOW = 0;} else {display_mode = 0;LED_SET_HIGHT = 1;LED_SET_LOW = 1;}break;case 1:gaowen++;break;case 2:diwen++;break;case 3:gaowen--;break;case 4:diwen--;break;}
}

3.6 延时函数

提供各种延时功能,用于在数据传输和显示刷新时控制时间。

void Delay(uint num) {while(--num);
}void Delay_DS18B20(int num) {while(num--);
}

3.7 主程序

主程序中,初始化单片机、温度传感器和显示模块,进入主循环,实时读取温度值并根据设置的高温和低温报警值进行判断,控制显示和报警。

void main(void) {P1 = 0xFF;P2 = 0xFF;LED = 1;BEEP = 1;Disp_init();while(1) {KeyScan();check_wendu();switch(display_mode) {case 0:Disp_Temperature();break;case 1:Disp_Temperature_Set_Hight();break;case 2:Disp_Temperature_Set_Low();break;}}
}

 仿真&源码等系统完整资料下载链接

基于51单片机设计的温度检测与高低温报警系统仿真&源码&设计文档&演示视频.zip(毕设/课设/竞赛/实训/大作业/项目开发)资源-CSDN文库icon-default.png?t=N7T8https://download.csdn.net/download/m0_61712829/89623235

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/395234.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决客户访问超时1s问题

访问公网地址返回状态码499-CSDN博客 需求描述 客户访问公司公网服务&#xff0c;期望在1s内完成。他们在客户端设置了超时1s的配置&#xff0c;如果超过1s公司服务就会报错499&#xff0c;这是正常的请求返回。 分析问题 目前这个服务通过公网的alb负载均衡到ecs&#xff0…

Android 自定义View(一):View是什么?如何创建自定义view,自定义属性等

目录 1&#xff09;View是什么&#xff1f; 2&#xff09;View分类 3&#xff09;View的知识点 4&#xff09;View的工作流程是怎么样的&#xff1f; 5&#xff09;案例&#xff1a;如何自定义View&#xff1f;比如我们要实现一个输入框带有清除按钮的view 6&#xff09;疑问&…

【GaussDB(DWS)】数仓部署架构与物理结构分析

数仓架构与物理结构分析 一、部署架构二、物理结构三、测试验证 一、部署架构 华为数据仓库服务DWS&#xff0c;集群版本8.1.3.x 集群拓扑结构&#xff1a; 上述拓扑结构为DWS单AZ高可靠部署架构&#xff0c;为减少硬件故障对系统可用性的影响&#xff0c;建议集群部署方案遵…

计算机网络408考研 2018

1 计算机网络408考研2018年真题解析_哔哩哔哩_bilibili

RabbitMq如何确保消息不丢失

问题&#xff1a;在生产环境中由于一些不明原因&#xff0c;导致 rabbitmq 重启&#xff0c;在 RabbitMQ 重启期间生产者消息投递失败&#xff0c;导致消息丢失&#xff0c;需要手动处理和恢复。于是&#xff0c;我们开始思考&#xff0c;如何才能进行 RabbitMQ 的消息可靠投递…

【SQL】产品销售分析 I

目录 题目 分析 代码 题目 销售表 Sales&#xff1a; -------------------- | Column Name | Type | -------------------- | sale_id | int | | product_id | int | | year | int | | quantity | int | | price | int | ---------------…

基于Hadoop的超市进货推荐系统设计与实现【springboot案例项目】

文章目录 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主项目介绍系统分析系统设计数据表设计表4-1&#xff1a;关于我们表4-2&#xff1a;用户表4-3&#xff1a;管理员表表4-4&#xff1a;token表表4-5&#xff1a;系统简介表4-6&#xff1a;收藏…

Typro + PicGo 图床 + Docsify + GitHub Pages,玩转个人知识库搭建,写给小白的建站入门课

自动开了这个号以后&#xff0c;陆陆续续写了很多干货文章&#xff0c;一方面是可以帮助自己梳理思路&#xff0c;另一方面也方便日后查找相关内容。 但是&#xff0c;我想检索某个关键词是在之前哪篇文章写过的&#xff0c;就有点捉急了。CSDN 还好&#xff0c;可以检索到相关…

【实现100个unity特效之19】使用ShaderGraph实现Unity 2D水

最终效果 文章目录 最终效果前言开始新增无光照影响的shaderGraph半透明效果&#xff0c;并且有一些颜色的变化其他办法参考完结 前言 先粗略记录一下&#xff0c;后面再补充 开始 我们新建一个render texture 设置尺寸 然后我要创建另外一个摄像机&#xff0c;将他的画面…

el-tree自定义节点内容

<el-tree :data"data" :props"defaultProps" ref"treeRef" show-checkbox check-change"handleCheckChange"><!-- 自定义节点内容 --><template #default"{ node, data, store }"><span class"tr…

想实现ubuntu搭建sqli-labs靶场

目录 首先前期的nginx和php部署完成​编辑​编辑 Xftp导入sqli-labs 遇到了的问题 它提示我们请检查db-creds.inc 去尝试解决这个问题 尝试修改MySQL root密码 修改db-creds.inc配置 再次尝试依旧失败 思考&#xff1a;会不会是MySQL版本过高的原因 重新下载MySQL5.7.…

突破 ES 引擎局限性在用户体验场景中的优化实践

回顾&#xff1a;ES 慢上游响应问题优化在用户体验场景中的实践-CSDN博客 上文介绍了用户体验管理平台&#xff08;简称 VoC&#xff09;在针对 ES 慢上游响应场景下的优化实践&#xff0c;本文继续介绍针对第二个痛点问题——ES 引擎局限性的性能优化实践进行介绍。 下文以搜…

SSM美美电影院选座订票微信小程序-计算机毕业设计源码15838

美美电影院选座订票微信小程序 摘 要 美美电影院选座订票微信小程序是一个集在线选座和购票于一体的平台&#xff0c;旨在为用户提供便捷的观影体验。该小程序以其实时更新的座位图和多样化的支付方式而受到用户的喜爱。 首先&#xff0c;美美电影院选座订票微信小程序提供了直…

使用CLIP模型进行零样本图像分类的分步指南

零样本学习允许AI系统对未明确训练过的类别进行图像分类,标志着计算机视觉和机器学习的重大进步。本文将介绍使用CLIP实现零样本图像分类的详细分步指南,从环境设置到最终的图像处理和分类。我们首先介绍零样本学习的概念及其在现代AI应用中的重要性。然后深入探讨CLIP模型的概…

PostgreSQL的学习心得和知识总结(一百五十)|[performance]更好地处理冗余 IS [NOT] NULL 限定符

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…

低代码之殇

低代码的浪潮已经持续几年了&#xff0c;很多声音冒出来&#xff0c;其中最刺耳就是&#xff1a;低代码就是个伪命题&#xff0c;根本不可能用低代码开发业务系统&#xff0c;尤其是复杂的业务系统&#xff1b; 更有甚者&#xff0c;直接给给低代码贴了标签&#xff1a;骗子 …

linux常见性能监控工具

常用命令top、free 、vmsata、iostat 、sar命令 具体更详细命令可以查看手册&#xff0c;这里只是简述方便找工具 整体性能top,内存看free&#xff0c;磁盘cpu内存历史数据可以vmsata、iostat 、sar、iotop top命令 交互&#xff1a;按P按照CPU排序&#xff0c;按M按照内存…

trie算法

1、定义 高效的存储和查找字符串集合的数据结构 它的优点是&#xff1a;利用字符串的公共前缀来减少查询时间&#xff0c;最大限度地减少无谓的字符串比较&#xff0c;查询效率比哈希树高 2、构建 我们可以使用数组来模拟实现Trie树。 我们设计一个二维数组 son[N] [26] 来…

鸿蒙HarmonyOS开发:@Observed装饰器和@ObjectLink装饰器:监听嵌套类对象属性变化

文章目录 一、装饰器二、概述三、限制条件四、装饰器说明五、Toggle组件1、子组件2、接口3、ToggleType枚举4、事件 六、示例演示1、代码2、效果 一、装饰器 State装饰器&#xff1a;组件内状态Prop装饰器&#xff1a;父子单向同步Link装饰器&#xff1a;父子双向同步Provide装…

SpringBoot MybatisPlus selectOne的坑

目录 一、问题 二、问题解决 三、其他方法 一、问题 selectOne在查询多条数据时会报错&#xff0c;查询语句并不会加 limit 1。 One record is expected, but the query result is multiple records。 二、问题解决 在QueryWrapper上添加如下&#xff1a; QueryWrapper&…