基于STC89C52RC单片机的大棚温控系统(含文档、源码与proteus仿真,以及系统详细介绍)

本篇文章论述的是基于STC89C52RC单片机的大棚温控系统的详情介绍,如果对您有帮助的话,还请关注一下哦,如果有资源方面的需要可以联系我。

目录

摘要

原理图

仿真图

系统总体设计图

代码

系统论文

参考文献

资源下载


摘要

本文介绍的是一个由单片机构成的温度控制系统,主要用来提供测温的解决方案,同时还能实时监控温度变化趋势,以及报警功能。它利用STC89C52RC单片机,DS18B20,蜂鸣器报警电路和LCD1602来实现温度检测控制功能。温度检测是使用的DS18B20温度传感器,将检测得到的温度通过单片机单总线的协议读取并将其显示在LCD1602液晶屏上。除此之外,它还能通过按键设置温度的上限值,如果温度超过上限,则蜂鸣器报警,大大提高了系统的安全性。本文在后续章节详细介绍了系统的总体方案设计,硬件设计,软件设计等。

关键词:温度检测控制;单片机;DS18B20;报警

原理图


仿真图


系统总体设计图


代码(部分)


void write_com(uchar com)	 //液晶写命令
{RS=0;RW=0;E=0;P0=com;delay3(50);E=1;delay3(50);E=0;
}
void write_dat(uchar dat)	 //液晶写数据
{RS=1;RW=0;E=0;P0=dat;delay3(50);E=1;delay3(50);E=0;
}
void write_string(uchar x,uchar y,uchar *s)	//显示字符串
{if(y==0)write_com(0x80+x);elsewrite_com(0xc0+x);while(*s){write_dat(*s);s++;}
}								 
void LCD_Init()			 //初始化液晶时间显示
{write_com(0x38);write_com(0x0c);write_com(0x06);
//	write_string(0,0,"hello world");
}
void Key_borad()		//按键设置函数
{if(KEY0==0)	   //如果按下加按键{while(KEY0==0); //释放tmpup++;		  //预设温度加一}if(KEY1==0)	   //如果按下减按键{while(KEY1==0); //释放tmpup--;		  //预设温度减一if(tmpup<0)tmpup=0;}if(KEY2==0)	   //如果按下加按键{while(KEY2==0); //释放tmpdowm++;		  //预设温度加一}if(KEY3==0)	   //如果按下减按键{while(KEY3==0); //释放tmpdowm--;		  //预设温度减一if(tmpdowm<0)tmpdowm=0;}write_com(0xc0+3);write_dat(tmpup%100/10+0x30);write_dat(tmpup%10+0x30);write_dat(0xDF);	//write_dat('C');//	℃write_com(0xc0+12);write_dat(tmpdowm%100/10+0x30);write_dat(tmpdowm%10+0x30);write_dat(0xDF);	//write_dat('C');//	℃
} 

系统论文(部分)


Abstract

Is introduced in this paper a composed of single chip microcomputer temperature control system, mainly used to provide the solution temperature, at the same time also can real-time monitor the temperature change trend, and alarm function.It USES STC89C52RC microcontroller, DS18B20, buzzer alarm detection circuit and LCD1602 to realize temperature control function.Temperature detection is used DS18B20 temperature sensor, the detection by the temperature of the single chip microcomputer single bus protocol reads and displays it on the LCD1602 LCD display.In addition, it also can set the upper limit of temperature by buttons, if the temperature is over limit, the buzzer alarm, greatly improved the security of the system.In the subsequent chapters in this paper in detail introduces the overall design of system, hardware design, software design, etc.

 
Keywords: temperature detection control;Single chip microcomputer;DS18B20.The police

1、绪论

1.1课题背景

在人类的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。自18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的工业部门都不得不考虑着温度的因素。

    温度对于工业如此重要,由此推进了温度传感器的发展。

传感器主要大体经过了三个发展阶段:模拟集成温度传感器。该传感器是采用硅半导体集成工艺制成,因此亦称硅传感器或单片集成温度传感器。此种传感器具有功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温、控温,不需要进行非线性校准,外围电路简单。它是目前在国内外应用最为普遍的一种集成传感器,典型产品有AD590、AD592、TMP17、LM135等;模拟集成温度控制器。模拟集成温度控制器主要包括温控开关、可编程温度控制器,典型产品有LM56、AD22105和MAX6509。某些增强型集成温度控制器(例如TC652/653)中还包含了A/D转换器以及固化好的程序,这与智能温度传感器有某些相似之处。但它自成系统,工作时并不受微处理器的控制,这是二者的主要区别;智能温度传感器。智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的。它是微电子技术、计算机技术和自动测试技术(ATE)的结晶。智能温度传感器内部都包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。智能温度传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU);并且它是在硬件的基础上通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。

温度传感器的发展趋势:

进入21世纪后,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。
传感器在温度测控系统中的应用:

目前市场主要存在单点和多点两种温度测量仪表。对于单点温测仪表,主要采用传统的模拟集成温度传感器,其中又以热电阻、热电偶等传感器的测量精度高,测量范围大,而得到了普遍的应用。此种产品测温范围大都在-200℃~800℃之间,分辨率12位,最小分辨温度在0.001~0.01之间。自带LED显示模块,显示4位到16位不等。有的仪表还具有存储功能,可存储几百到几千组数据。该类仪表可很好的满足单个用户单点测量的需要。多点温度测量仪表,相对与单点的测量精度有一定的差距,虽然实现了多路温度的测控,但价格昂贵。

1.2 本课题研究意义

随着科学技术的不断进步与发展,温度控制在工业控制、农业环境检测、电子测温计、医疗仪器、家用电器等各种温度控制系统中广泛应用,本课题用于农业大棚温湿度控制显然是用在农业环境检测的一部分。目前温度传感器有模拟和数字两类传感器,为了克服模拟传感器与微处理器接口时需要信号调理电路和A/D转换器的弊端,大多数测温控制系统采用数字传感器,并大大方便了系统的设计。比较有代表性的数字温度传感器有DS18B20、MAX6575、DS1722、MAX6635、SMT160-30等。

在传统的温度测量系统设计中,往往采用模拟技术进行设计,这样就不可避免地遇到诸如引线误差补偿、多点测量中的切换误差和信号调理电路的误差等问题;而其中某一环节处理不当,就可能造成整个系统性能的下降。随着现代科学技术的飞速发展,特别是大规模集成电路设计技术的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向。美国Dallas半导体公司推出的数字温度传感器DS18B20,具有独特的单总线接口,仅需要占用一个通用I/0端口即可完成与微处理器的通信;在-10~+85℃温度范围内具有0.5℃ 精度;用户可编程设定9~12位的分辨率。以上特性使得DS18B20非常适用于构建高精度温度测量系统。

  1. 3系统总体方案设计

温度检测系统有着共同的特点:测量点多、环境复杂、布线分散、现场离监控室远等。若采用一般温度传感器采集温度信号,则需要设计信号调理电路、A/D 转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降。所以温度检测系统的设计的关键在于两部分:温度传感器的选择和主控单元的设计。温度传感器应用范围广泛、使用数量庞大,也高居各类传感器之首。 

2.1、传感器部分 

方案一:采用热敏电阻,利用其感温效应,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的。而且在温度测量系统中,采用单片温度传感器,比如AD590,LM35等。但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使得测温装置的结构较复杂,一定程度上也增加了软件实现的难度。

方案二:在温度控制系统中,传统的测温方法是将模拟信号远距离采样进行A/D转换,而为了获得较高的测温精度,就必须采用措施解决由长线传输、放大电路零点漂移等造成的误差补偿问题。采用数字温度芯片DS18B20测量温度,输出信号全数字化,便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0—100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS1820和微控制器STC89C52RC构成的温度测第一章总体设计方案4量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大,且由于STC89C52RC可以带多个DSB1820,可实现多点测量,轻松的组建传感器网络,本次设计用于大棚温度检测比较适合方便。

2.2、主控制部分

方案一:此方案采用PC机实现,它可在线编程,可在线仿真的功能,这让调试变得方便,且人机交互友好。但是PC机输出信号不能直接与DS18B20通信,需要通过RS232电平转换兼容,硬件的合成在线调试,较为繁琐,很不简便。而且在一些环境比较恶劣的场合,PC机的体积大,携带安装不方便,性能不稳定,给工程带来很多麻烦。

方案二:此方案采用STC89C52RC八位单片机实现。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信,运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)实现温度数据采集,组成两级分布式温度测量的巡回检测系统,实现远程控制。另外STC89S51在农业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。

总体设计综上所述,温度传感器以及主控部分都采用第二方案。首先由温度传感器DS18B20采集温度数据,经单片机I/O模拟单总线读取后送入STC89C52RC单片机中进行运算处理,并LCD1602液晶显示当前温度,同时与键盘输入的设定温度值(上限)进行比较,由单片机控制是否发出报警信号。在整个过程中,温度始终都能得以显示。设定温度过程中显示设定温度值,以便于操作。

本系统的总体设计方框图如图2-1所示,它主要由五部分组成:

①主控制部分主芯片采用单片机STC89C52RC(包括时钟和复位电路);

②显示部分采用3位LED数码管以动态扫描方式实现温度显示;

③温度采集部分采用DS18B20温度传感器;

④按键输入部分主要功能是实现设定温度值的输入;

⑤人体红外传感器用来检测人体信息

DS18B20检测温度,将温度信息传送到单片机内,单片机检测到温度信号,对其进行处理,将处理得到的数据在LCD1602液晶上显示出来。可以通过按键来设置温度的上下限值,当温度超过范围时,单片机控制蜂鸣器报警,同时当人体红外传感器检测到人体时,也会触发蜂鸣器报警。

图2-1 系统总体设计框图

5总结与展望

这篇文章介绍了一个大棚温度控制系统的设计。文章对这个系统做了全面的介绍。同时该论文也对整个系统的每个细小部分也进行了深入的探讨,包括下面的内容:

1、研究设计的要求,得出了系统的设计方案。

2、在网络上查找了大量与论文相关的资料进行研究,通过了解每个部分元件的工作原理设计出整个硬件电路图,然后完成了开题报告。

3、和指导老师讨论了系统的工作原理,同时对其可能存在的问题做了全面的分析,并完善。

4、用Altium Designer完成了系统各个模块的原理图设计。

5、焊接整个电路板,排除各种问题,并调试成功。

6、通过软硬件相结合对整个系统进行测试。看其功能是否达到。

7、对系统的设计过程进行整理,整理完成后写出提纲,然后撰写论文初稿。初稿完成后进行修改后完成定稿。

对整个设计的过程,拟出大纲,并完成的论文报告。修改论文,完成最终定稿。

整个设计基本完成了课题要求的功能,但是依然存在一些不足之处:

  1. 该温度检测系统仅考虑到了单点检测,然而在许多其他情况下还有多点检测,这时系统就不能达到要求,多点检测要求系统能过更全面完整的去检测多处的温度,对于系统的可扩展性提出了更高的要求。
  2. 当需要远距离传送数据时,有线传输不仅成本高,且需要适应性比较低,这时可以采用无线数据传输的方式来进行,这样数据传送起来更方便同时也可以受环境的干扰较小。

参考文献

[1]党峰、王敬农、高国旺.基于DS18B20的数字式温度计的实现[J].山西电子技术,2007(3)

[2]赵海兰、赵祥伟.智能温度传感器DS18B20的原理与应用[J].现代电子技术,2003,26(14)

[3]王福泉、万频、冯孔淼、张昱DS18B20在空调检测系统温度采集模块中的应用[J].电子技术应用,2011,37(8)

[4]程院莲.基于单总线器件DS18B20的智能温度测量[J].现代教育装备,2010(23)

[5]宋起超 赵洪涛.基于DSl8B20的多点温度巡回检测系统研制[J].交通科技与经济,2007


资源下载


如果有需要这个系统的源码、仿真、论文等资源的可以私信我。感谢你的阅读~

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

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

相关文章

CSA笔记3-文件管理命令(补充)+vim+打包解包压缩解压缩命令

grep(-i -n -v -w) [rootxxx ~]# grep root anaconda-ks.cfg #匹配关键字所在的行 [rootxxx ~]# grep -i root anaconda-ks.cfg #-i 忽略大小写 [rootxxx ~]# grep -n root anaconda-ks.cfg #显示匹配到的行号 [rootxxx ~]# grep -v root anaconda-ks.cfg #-v 不匹配有…

甄选范文“论软件维护方法及其应用”软考高级论文,系统架构设计师论文

论文真题 软件维护是指在软件交付使用后,直至软件被淘汰的整个时间范围内,为了改正错误或满足 新的需求而修改软件的活动。在软件系统运行过程中,软件需要维护的原因是多种多样的, 根据维护的原因不同,可以将软件维护分为改正性维护、适应性维护、完善性维护和预防性 维护…

Linux 上 TTY 的起源

注&#xff1a;机翻&#xff0c;未校对。 What is a TTY on Linux? (and How to Use the tty Command) What does the tty command do? It prints the name of the terminal you’re using. TTY stands for “teletypewriter.” What’s the story behind the name of the co…

debian 实现离线批量安装软件包

前言 实现在线缓冲需要的软件和对应依赖的包&#xff0c;离线进行安装 &#xff0c;用于软件封装。 测试下载一个gcc和依赖环境&#xff0c;关闭默认在线源&#xff0c;测试离线安装gcc和依赖环境 兼容 debian ubuntu/test 测试下载安装包到目录 vim /repo_download.sh #!…

【数据结构】算法复杂度

算法复杂度 数据结构算法复杂度 大o渐进表示法空间复杂度 数据结构 数据结构&#xff1a;是计算机存储和组织数据的方式。 比如打开一个网页&#xff0c;我们看到的文字就是数据&#xff0c;这些数据需要用一个结构来把他管理起来&#xff0c;我们称之为&#xff1a;数据结构 …

基于springboot3实现单点登录(一): 单点登录及其相关概念介绍

引言 应网友要求&#xff0c;从本文开始我们将实现一套基于springboot3springsecurity的单点登录认证系统。 单点登录的实现方式有多种&#xff0c;接下来我们会以oauth2为例来介绍和实现。 单点登录介绍 单点登录&#xff08;Single Sign-On&#xff0c;简称SSO&#xff0…

nftables(7)集合(SETS)

简介 在nftables中&#xff0c;集合&#xff08;sets&#xff09;是一个非常有用的特性&#xff0c;它允许你以集合的形式管理IP地址、端口号等网络元素&#xff0c;从而简化规则的配置和管理。 nftables提供了两种类型的集合&#xff1a;匿名集合和命名集合。 匿名集合&…

使用base64通用文件上传

编写一个上传文件的组件 tuku,点击图片上传后使用FileReader异步读取文件的内容&#xff0c;读取完成后获得文件名和base64码&#xff0c;调用后端uploadApi,传入姓名和base64文件信息&#xff0c;后端存入nginx中&#xff0c;用于访问 tuku.ts组件代码&#xff1a; <templa…

系统测试-白盒测试学习

目录 1、语句覆盖法&#xff1a; 2、判定覆盖法&#xff1a; 3、条件覆盖法&#xff1a; 4、判定条件覆盖&#xff1a; 5、条件组合的覆盖&#xff1a; 6、路径覆盖&#xff1a; 黑盒&#xff1a;需求 白盒&#xff1a;主要用于单元测试 1、语句覆盖法&#xff1a; 程序…

OSU!题解(概率dp)

题目&#xff1a;OSU! - 洛谷 思路&#xff1a; 设E()表示截止到i所获得的分数&#xff1b; 对于到i点的每一个l&#xff0c;如果第i1点为1&#xff0c;那么会新增分数3*l^23*l1; 就有递推公式方程&#xff1a; E()E()p[i1]p*(3*l^23*l1);(p代表截止到i获得长度l的概率)&a…

怎样在 PostgreSQL 中优化对多表关联的连接条件选择?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 怎样在 PostgreSQL 中优化对多表关联的连接条件选择一、理解多表关联的基本概念二、选择合适的连接条件…

【C++】拷贝构造函数及析构函数

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

dbeaver连接mysql8异常

部署了mysql8&#xff0c;尝试用dbeaver 24.1.2连接它。结果配置完成后测试连接时报错&#xff1a;Public Key Retrieval is not allowed. 按照提示修改驱动属性&#xff1a; allowPublicKeyRetrievaltrue

【BUG】已解决:ValueError: Expected 2D array, got 1D array instead

已解决&#xff1a;ValueError: Expected 2D array, got 1D array instead 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武汉…

Python | Leetcode Python题解之第238题除自身以外数组的乘积

题目&#xff1a; 题解&#xff1a; class Solution:def productExceptSelf(self, nums: List[int]) -> List[int]:length len(nums)# L 和 R 分别表示左右两侧的乘积列表L, R, answer [0]*length, [0]*length, [0]*length# L[i] 为索引 i 左侧所有元素的乘积# 对于索引为…

人工智能 (AI) 应用:一个异常肺呼吸声辅助诊断系统

关键词&#xff1a;深度学习、肺癌、多标签、轻量级模型设计、异常肺音、音频分类 近年来&#xff0c;流感对人类的危害不断增加&#xff0c;COVID-19疾病的迅速传播加剧了这一问题&#xff0c;导致大多数患者因呼吸系统异常而死亡。在这次流行病爆发之前&#xff0c;呼吸系统…

SCI一区级 | Matlab实现GJO-CNN-LSTM-Multihead-Attention多变量时间序列预测

SCI一区级 | Matlab实现GJO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测 目录 SCI一区级 | Matlab实现GJO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现GJO-CNN-LSTM-Mutilhead-Attention金豺优化算…

MongoDB自学笔记(三)

一、前文回顾 上一篇文章中我们学习了更新操作&#xff0c;以及讲解了部分的更新操作符&#xff0c;今天我们继续学习剩余的更新操作符。 二、更新操作符 1、$rename 语法&#xff1a;{ $rename: { < field1 >: < newName1 >, < field2 >: < newName2…

力扣刷题之978.最长湍流子数组

题干要求&#xff1a; 给定一个整数数组 arr &#xff0c;返回 arr 的 最大湍流子数组的长度 。 如果比较符号在子数组中的每个相邻元素对之间翻转&#xff0c;则该子数组是 湍流子数组 。 更正式地来说&#xff0c;当 arr 的子数组 A[i], A[i1], ..., A[j] 满足仅满足下列条…

FPGA笔试

半加器和全加器的区别&#xff1a; 1、半加器不考虑输入的进位&#xff0c;称之为半加。 2、全加器反之&#xff0c;考虑进位。 SRAM/DRAM优缺点对比_sram和dram的主要区别及优缺点-CSDN博客 消除竞争冒险的方法 ①滤波电容&#xff1a;因为尖峰脉冲很窄&#xff0c;用很小的…