基于51单片机的智能恒温箱设计--数码管显示

一.硬件方案

根据恒温箱控制器的功能要求,并结合对51系列单片机软件编程自由度大,可用编程实现各种控制算法和逻辑控制。所以采用AT89C52作为电路系统的控制核心。按键将设置好的温度值传给单片机,通过温度显示模块显示出来。初始温度设置好后,单片机开启输出控制模块,使电热器开始加热,同时将从数字温度传感器DS18B20测量到的温度值实时的显示出来,当加热到设定温度值时,单片机控制声光报警模块,发出声光报警,同时关闭加热器。当自然冷却到设定温度50摄氏度以下时,单片机再次启动加热器,如此循环反复,以达到恒温控制的目的。
主要由51单片机+最小系统+数码管显示模块+数码管驱动模块+温度采集模块+蜂鸣器模块+LED指示灯模块+继电器驱动模块+按键模块;

二.设计功能

(1)采用DS18B20温度传感器测温,测量范围0到99.9摄氏度,精度为0.1摄氏度。
(2)按键可以设置报警值,当温度超过设定的上或下限时,相应的指示灯亮,同时相应的继电器吸合,继电器可以驱动负载(风扇、制冷片、加热管等)。
(3)按键为设置按键、加键和减键。可设置上下限温度控制范围。

三.设计原理图

(1)原理图主要采用AD软件进行设计,如图:
在这里插入图片描述

(2)Protues仿真图如下:
在这里插入图片描述

四.软件设计

主程序源码

/*****主函数*****/
void main(void)
{uint z;InitTimer();    //初始化定时器EA=1;      //全局中断开关TR0=1;ET0=1;      //开启定时器0IT0=1;        IT1=1;check_wendu();
// check_wendu();for(z=0;z<300;z++){Disp_init();        }while(1){// P3=0xff;if(SET==0){Delay(2000);do{}while(SET==0);set_st++;x=0;shanshuo_st=1;if(set_st>2)set_st=0;}if(set_st==0){EX0=0;    //关闭外部中断0EX1=0;    //关闭外部中断1check_wendu();Disp_Temperature();Alarm();   //报警检测}else if(set_st==1){BEEP=1;    //关闭蜂鸣器ALAM=1;ALAM1=1;EX0=1;    //开启外部中断0EX1=1;    //开启外部中断1if(x>=10){shanshuo_st=~shanshuo_st;x=0;}if(shanshuo_st) {Disp_alarm(shangxian);}}else if(set_st==2){BEEP=1;    //关闭蜂鸣器ALAM=1;ALAM1=1;EX0=1;    //开启外部中断0EX1=1;    //开启外部中断1if(x>=10){shanshuo_st=~shanshuo_st;x=0;}if(shanshuo_st) {Disp_alarm(xiaxian);}}}
}/*****定时器0中断服务程序*****/
void timer0(void) interrupt 1
{TH0=0x3c;TL0=0xb0;x++;
}
/*****外部中断0服务程序*****/
void int0(void) interrupt 0
{EX0=0;      //关外部中断0if(DEC==0&&set_st==1){do{Disp_alarm(shangxian);}while(DEC==0);shangxian--;if(shangxian<xiaxian)shangxian=xiaxian;}else if(DEC==0&&set_st==2){do{Disp_alarm(xiaxian);}while(DEC==0);xiaxian--;if(xiaxian<0)xiaxian=0;}
}

资料链接:https://pan.baidu.com/s/1QOlFVxuYY0Bg1AeAyDpR7w?pwd=ki22

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

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

相关文章

php redis分布式锁

一&#xff0c;概念 在PHP中实现分布式锁通常可以使用数据库、缓存系统&#xff08;如Redis&#xff09;或者其他中央存储系统来保证在分布式系统中的数据一致性与同步。秒杀下单、抢红包等等业务场景&#xff0c;都需要用到分布式锁。 常规方案大概有七中 方案一&#xff1a;…

C# WinForm —— 34 ToolStrip 工具栏 介绍

1. 简介 工具栏 ToolStrip&#xff0c;一般紧贴在菜单栏下面 2. 属性 属性解释(Name)控件ID&#xff0c;在代码里引用的时候会用到Enabled控件是否启用Dock定义要绑定到容器的控件边框&#xff0c;默认是topAnchor定义某个控件绑定到的容器的边缘。当控件锚定到某个边缘时&a…

基于JSP技术的大学生校园兼职系统

开头语 你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;可以通过文末的联系方式找到我。 开发语言 JSP 数据库 MySQL 技术 JSP JavaBeans 工具 MyEclipse、Tomcat、Navicat 系统展示 首页 学生登录界面 招聘信息界面 论坛中心界面 摘…

Page的基本使用及其原理

Paging的基本使用 1. 添加依赖 首先&#xff0c;在项目的build.gradle中添加Paging库的依赖。 dependencies { implementation androidx.paging:paging-runtime:X.X.0 // 请替换为当前最新版本 } 2. 定义数据源 创建一个数据源类&#xff0c;该类需要继承自PageKeyedDataS…

人工智能发展历程和工具搭建学习

目录 人工智能的三次浪潮 开发环境介绍 Anaconda Anaconda的下载和安装 下载说明 安装指导 模块介绍 使用Anaconda Navigator Home界面介绍 Environment界面介绍 使用Jupter Notebook 打开Jupter Notebook 配置默认目录 新建文件 两种输入模式 Conda 虚拟环境 添…

代码随想录算法训练营day44

题目&#xff1a;322. 零钱兑换、279.完全平方数、139.单词拆分、多重背包 参考链接&#xff1a;代码随想录 322. 零钱兑换 思路&#xff1a;本题同样可以用完全背包问题&#xff0c;背包容量即为amount&#xff0c;物品weight和value都为硬币coins&#xff0c;需要求的是装…

Python使用ElementTree解析xml的方法

解析XML xml.etree.ElementTree是Python标准库中用于处理XML的模块 可以通过以下语句引入 import xml.etree.ElementTree as ET解析xml时&#xff0c;可以从文件中导入&#xff0c;也可以从string获取 例如&#xff1a; # 从字符串中导入 xml_string <root><eleme…

vue国际化(中英文切换)

思路&#xff1a; 构建了一个 VueI18n 的实例&#xff0c;明确了默认与备用语言及对应的语言包。在组件中获取组件实例以方便后续操作&#xff0c;设置一个点击事件实现语言切换并触发重新获取消息的动作&#xff0c;ref 创建的 msg 用于存储消息内容&#xff0c;设置一个函数…

C++学习(19)

#学习自用# 宏 当我们编译C文件时&#xff0c;首先预处理器会过一遍所有带# 的语句&#xff08;预编译指令符号&#xff09;&#xff0c;然后进行文本替换。 #include<iostream> using namespace std; #define SQUARE(X) X*Xint main() {int a SQUARE(5);cout <&…

linux-awk分析指令

目录 基本用法: 条件语句: 内置变量: 自定义分隔符: 数学运算: 使用多个文件: 生成“完整使用报告”的示例: 8. 模式匹配 9. BEGIN和END模式 10. 数组和关联数组 11. 脚本方式使用 12. 逐行处理 13. 控制语句 awk 是一个强大的文本处理工具&#xff0c;用于在文本…

路虽远,行则将至 - 附暑期实习、秋招历程经验分享

前言 大家好 许久没有时间静下心来打开编辑器写文章了 忙碌暂过&#xff0c;难得一闲时 求学三年&#xff0c;终到离别时 回忆过往&#xff0c;枯燥且多彩 有一点经验&#xff0c;以文字形式分享&#xff0c;希望帮助到大家 可能是这段时间事多且杂&#xff0c;加上很长一…

电脑桌面上用来记事的便签软件

便签软件已成为我们日常生活中不可或缺的记录工具。想象一下&#xff0c;在繁忙的工作中&#xff0c;你突然需要记下一个重要事项或临时想法&#xff0c;这时&#xff0c;一个便捷、高效的便签软件就显得尤为重要。它能帮助我们迅速捕捉信息&#xff0c;轻松管理琐碎事务&#…

LINUX 安装JAVA

安装上传下载 yum -y install lrzsz 建存放目录 mkdir /source mkdir /source/java 进入目录&#xff0c;拖拉上传JDK 解压 tar -zxvf jdk-8u261-linux-x64.tar.gz 配置 vi /etc/profile 在末尾添加以下配置 export JAVA_HOME/source/java/jdk1.8.0_261 export JRE…

通信设备的网卡

一、网卡的作用 将计算机或者路由器连接到传输介质上的接口&#xff0c;传输介质可以是有线也可以是无线的。 &#xff08;1&#xff09;计算机的网卡 现在的计算机大多有两个网卡&#xff0c;一个是有线网卡一个无线网卡&#xff0c;比如以我们的台式电脑为例 台式电脑千兆网…

【氵】Archlinux+KDE Plasma 6+Wayland 安装nvidia驱动 / 开启HDR

参考: NVIDIA - Arch Linux 中文维基 &#xff08;其实就是把 wiki 简化了一下 注&#xff1a;本教程适用 GeForce 930 起、10 系至 20 系、 Quadro / Tesla / Tegra K-系列以及更新的显卡&#xff08;NV110 以及更新的显卡家族&#xff09;&#xff0c;此处以 RTX3060 为例 …

Scikit-learn 基础教程:机器学习的初步指南

Scikit-learn 是一个用于数据挖掘和数据分析的机器学习库&#xff0c;建立在 NumPy、SciPy 和 matplotlib 之上。它提供了简单而高效的工具来进行数据分析和建模。本文将为您介绍 Scikit-learn 的安装方法、核心组件&#xff0c;以及如何应用这些组件进行一个简单的机器学习项目…

Pytorch--Convolution Layers

文章目录 1.nn.Conv1d2.torch.nn.Conv2d()3.torch.nn.ConvTranspose1d()3.torch.nn.ConvTranspose2d() 1.nn.Conv1d torch.nn.Conv1d() 是 PyTorch 中用于定义一维卷积层的类。一维卷积层常用于处理时间序列数据或具有一维结构的数据。 构造函数 torch.nn.Conv1d() 的语法如…

边缘计算(Edge Computing)_关键概念/优势/应用场景

边缘计算&#xff08;Edge Computing&#xff09;是一种计算范式&#xff0c;它将数据处理和分析从传统的集中式数据中心和云计算平台移至更接近数据生成源头的位置&#xff08;即“边缘”&#xff09;&#xff0c;例如物联网设备、传感器、路由器或其他边缘设备。边缘计算旨在…

vector迭代器失效

1.迭代器失效的根本原因 迭代器就是指针&#xff0c;迭代器失效就是指针失效。 指针失效的有两种情况&#xff1a; 1&#xff09;野指针 2&#xff09;访问越界 2.举例阐述 这段代码已经报错了&#xff0c;我给大家调试一下。可以发现&#xff1a;vector的容量变大了&…

C语言之main函数的返回值(在linux中执行shell脚本并且获取返回值)

一&#xff1a;函数为什么要返回值 &#xff08;1&#xff09;函数 在设计的时候是设计了参数和返回值&#xff0c;参数是函数的输入&#xff0c;返回值是函数的输出 &#xff08;2&#xff09;因为函数需要对外输出数据&#xff08;实际上是函数运行的一些结果值&#xff09;…