51单片机温度控制系统报警器,不会做课程设计的就拿走

▌功能说明

(1)单片机读取温度传感器当前的温度值并在LCD液晶显示屏上的第一行显示当前的温度值,如Temp:27.5℃

(2)单片机读取按键状态并通过人为手动按键部分来设置最低温度到最高温度的温度范围后,由单片机内部进行转换并在LCD上显示出人为设定的正常时的温度范围。

(3)单片机把温度传感器当前值与人为设定的正常温度范围进行比较。若当前温度值低于人为设定的温度范围时,报警器部分的蜂鸣器会响以及报警指示灯会亮红色,同时升温电路的继电器闭合使得加热管开启工作达到加温功能,最终使得低温状态慢慢达到人为设定的正常温度范围内。若当前温度值高于人为设定的温度范围时,报警器部分的蜂鸣器会响以及报警指示灯会亮红色,同时降温电路的继电器闭合使得降温风扇开启工作达到降温功能,最终使得高温状态慢慢达到人为设定的正常温度范围内。若当前温度值等于人为设定的温度范围时,报警器部分的蜂鸣器不会响以及报警指示灯不会亮红色,同时升温电路和降温电路的继电器都不闭合,加热管和降温风扇都不工作,此时,已经达到人为设定的正常温度范围内的恒温状态。

(4)按下一次KEY1是在更改人为设置温度范围内的最低温度值,在LCD液晶显示屏的第二行的最低温度值前面显示一个“S”设置符号时,并通过多次按下KEY2或者KEY3来达到最低温度值增减的功能。按下两次KEY1是在更改人为设置温度范围内的最高温度值,在LCD液晶显示屏的第二行的最高温度值前面显示一个“S”设置符号时,并通过多次按下KEY2或者KEY3来达到最高温度值增减的功能。

(5)按下S1复位开关后,系统取消了原先人为设定的正常温度范围值,变成了代码最初设定的默认正常温度范围值并显示在LCD上。

▌电路组成

单片机最小系统,电源部分,温度传感器部分,报警器部分,降温电路部分,升温电路部分,按键部分和LCD温度显示部分组成。

图1:基于51单片机的恒温控制器proteus原理图

▌程序流程图

图2:程序流程图

▌仿真现象记录

(1)等于25-30℃正常恒温范围时:只显示此时温度27.5℃。

图3:正常温度恒温

(2)24.5℃温度低于25-30℃正常温度范围时:加热管工作且指示灯亮黄色,报警器灯亮红色,蜂鸣器发声。

图4:低于正常温度非恒温

(3)32℃温度高于25-30℃正常温度范围时:降温风扇工作且指示灯亮黄色,报警器灯亮红色,蜂鸣器发声。

图5:高于正常温度非恒温

(4)人为通过按键设置正常恒温范围内的最低温度值:最低温度值前面显示一个“S”设置符号。

图6:显示低温“S”设置符号。

最后设置最低温度为21℃。

图7:显示设置的最低温值

(5)人为通过按键设置正常恒温范围内的最高温度值:最高温度值前面显示一个“S”设置符号。

图8:显示高温“S”设置符号

最后设置最高温度为37℃。

图9:显示设置的最高温值

(6)按下S1复位开关后,系统取消了原先人为设定的正常温度范围值21-37℃,变成了代码最初设定的默认正常温度范围值25-30℃并显示在LCD上。

图10:显示设置的默认温度范围值

▌选择部分硬件时注意事项

(1)晶振和单片机内部时钟的属性频率:11.0592MHz。

(2)蜂鸣器BUZZER:应选择为直流有源的,更改属性电压值2V左右,不宜过大,因为报警器电路部分只有5V的VCC供电。

(3)继电器:RL1和RL2的电压也不应该过大更改属性驱动电压值由12V变为5V或者5V以下,因为在升/降温电路部分能使继电器工作的电源为5V的VCC。如果继电器的工作电压过大,即使与继电器相连接的三极管导通,继电器也达不到正常的工作电压值,使得继电器的吸引力不强,丧失了强电控制弱电的功能。

▌部分硬件及管脚的功能

(1)PNP三极管作用:基级,低电平导通,高电平截止,相当于开关功能。

(2)继电器作用:当有电流时开关吸合使电路闭合工作,当没有电流时开关弹开,使电路断路不工作。

(3)上拉电阻(排阻)作用:P0口作为I/O口输出的时候时,当输出的低电平为0,输出高电平为高组态(并非5V,相当于悬空状态,也就是说P0口不能真正的输出高电平)。P0口没有办法给所接的负载提供电流,因此必须连接上拉电阻(上拉电阻一端连接到VCC),由电源通过这个上拉电阻给负载提供电流。由于P0口内部没有上拉电阻,当为开漏的,不管它的驱动能力多大,相当于它是没有电源的,因此需要外部的电路提供电源,绝大多数情况下P0口是必需加上拉电阻的。

(4)LCD1602部分管脚作用:

VEE管脚作用:是液晶显示的偏压信号,VEE通过滑动变阻器接地,用来调整对比度,接正电源时对比度最弱,接地电源时对比度最高。RS是寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器;RW为读写信号线,高电平1时进行读操作,低电平0时进行写操作;E(EN)端是使能(enable)端,高电平1时读取信息,负跳变时执行指令。

(5)与温度传感器串联的10KΩ的电阻作用:由于单片机直接读出的是AD值,用10KΩ的电阻与温度传感器串联分压,单片机读取中间的分压AD。DS18B20是数字式单总线式温度传感器。(问题:这个10kΩ的分压电阻的阻值假如更改其大小,会影响温度传感器的转换精度吗?还有当环境温度为25℃时,能说明温度传感器的硬件阻值大小为10kΩ吗?)

(6)与LED灯串联的电阻作用:分压(限流)作用,其阻值不宜过大过小,一般200到300多欧姆,阻值过大使得电路的电流太小达不到LED灯的开启电压值然后不亮或者亮不明显,阻值过小使得电路的电流太LED灯分到的电压太大导致烧坏。

(7)电源部分:提供给整个电路图的所有5V电源。

▌代码和其他文件

在公众号回复「51单片机温度控制系统」获取。


推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

关注公众号,后台回复「1024」获取学习资料网盘链接。

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

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

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

相关文章

不要怕辛苦

先说点事情一直以来我都非常喜欢跟大家交流各种问题,自我觉得回答比较用心,可能最近因为很多人毕业,遇到抉择的问题比较多,所以这类的提问也偏多一些。从开始做公众号到现在,支持我的人很多。有些读者从开始关注到现在…

Win7系统中用anaconda配置tensorflow运行环境

前言:anaconda是一个python Data Science Platform。安装它的契机是因为要用tensorflow。安装完后感觉用它来管理python运行环境还是挺方便的,常用的conda命令:升级conda: conda update conda安装conda环境: conda create -n env_…

拆解前苏联产荧光数码管计算器,内部电路结构彪悍!

荧光数码管是用来显示数字和符号的器件。它的数码字形由若千段分立的笔划构成。荧光数码管是一种电真空器件,其工作原理与普通的电子管相似,它的灯丝就是阴极(为直热式阴极),当灯丝通电后灯丝就会发热(即阴…

silverlight之datagrid的一个问题

this.myDataGrid.itemSourcesitems; 使用泛型数组给datagrid添加itemsource,我想添加一个textblock对象,上面text"sdfd",可运行显示是System.Windows.Controls.TextBlock,如图,请大侠们指点 转载于:https://www.cnblogs.com/wuli00/archive/2009/04/20/1439677.html

什么是套接字(Socket)

什么是套接字(Socket) 应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要 通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用…

三极管构成的电流负反馈放大器

▌1.题目设计一个有三极管构成的电流负反馈放大器,放大倍数不小于100倍,集电极最大电流不超过20mA,当负载由1000欧姆变10欧姆时,要求输出电流的波动幅度小于5%。▌2.项目总体功能图▌3.测试条件频率为500HZ、幅度为5mv的正弦波。▌…

lzg_ad:FBWF配置详解

在安装好Windows XP Embedded FP2007及以后版本的开发工具后,我们就可以在我们的XPE操作系统镜像中添加FBWF功能了。我们可以在目标设计器中配置FBWF,也就是在构建XPE镜像文件前配置好FBWF,也可以在运行时镜像中配置FBWF。本文将详细介绍这两…

耦合,到底是什么!?

在电路中,将前级电路(信号源)的能量递至后级电路(负载)称为耦合,常见的耦合介质有导线、电容器,变压器、光电耦合器,电子电路,根据不同耦合介质常见有以下耦合方式,这几种耦合方式,各有特点,在不同哪种比较…

三极管的“非教科书式”解析,什么正偏、反偏都统统滚蛋!

什么正偏,反偏都统统滚蛋!!!❤三极管有三个工作状态;截止、放大、饱和;放大状态很有学问也很复杂,多用于集成芯片,比如运放,现在不讨论;其实对信号的放大我们…

一行代码还能这么秀

老早就想写这篇文章了,因为我经常用用这个方法来装逼,今天终于要把这个装逼方法分享给大家了。我从来不会告诉别人我自己的微信公众号关注早就已经超过40万了。看下面的截图这张截图建议大家保存下,如果遇到不公的事情,你就跟他说…

Linux Select

Linux Select 在Linux中,我们可以使用select函数实现I/O端口的复用,传递给 select函数的参数会告诉内核: •我们所关心的文件描述符 •对每个描述符,我们所关心的状态。(我们是要想从一个文件描述符中读或者写,还…

搞懂图像二值化算法

传统的机器视觉通常包括两个步骤:预处理和物体检测。而沟通二者的桥梁则是图像分割(Image Segmentation)[1]。图像分割通过简化或改变图像的表示形式,使得图像更易于分析。举个例子,食品加工厂新进了一批肉鸡&#xff…

JavaWeb无限级分销结构分析

在现实生活中我们经常遇到由推荐人注册,比如一个购物平台,用户A推荐用户B注册,那当B购买商品成功时,用户A就会拿到相应的提成。只要是用户A推荐的用户购买商品成功后,A用户都会拿到提成。 当用户B推荐了用户C,那当用户…

一个风骚的C语言操作

有个小伙伴在我们的嵌入式交流群里发了类似下面的一张图&#xff0c;顿时引起一阵骚动&#xff0c;我把源代码再附上&#xff0c;main.c 如下&#xff1a;#include <stdio.h> #include <string.h>static char city_name[][20] { #include "city.h" };in…

SQL Server表分区-水平分区

SQL Server表分区&#xff0c;sql server水平分区 转自&#xff1a;http://www.cnblogs.com/knowledgesea/p/3696912.html 根据时间的&#xff0c;直接上T-SQL代码的水平分区&#xff1a;https://www.xuebuyuan.com/1817312.html?tdsourcetags_pcqq_aiomsg什么是表分区 一般情…

基于STC89C52的韦根数据接收

韦根是一种开放的通讯协议&#xff0c;具体官方介绍如下&#xff1a;Wiegand协议是国际上统一的标准&#xff0c;有很多格式&#xff0c;标准的26-bit 应该是最常用的格式。此外&#xff0c;还有34-bit 、37-bit 等格式。格式的含义如下&#xff1a;当给出这一串数字&#xff0…

超乎想象,数据揭示自学成才的码农为何备受青睐

你是否想成为一个 Web 开发者&#xff0c;但却不知道从哪里开始&#xff1f; 你是否对学习编程语言的大量建议和繁琐细节感到审美疲劳&#xff1f; 你是否不确定需要遵循哪条路才能成为一个自信而又足智多谋的开发者&#xff1f; 如果你的回答是肯定的&#xff0c;那么不要担心…

Linux下的图形库curses写贪吃蛇,酷

最近看到大神在Linux下写的贪吃蛇代码&#xff0c;用到了curses图形库&#xff0c;可能很多人都没有用过&#xff0c;分享出来给大家。在ubuntu下安装curses图形库命令sudo apt-get install libncurses5-dev双buff是一个非常优秀的机制&#xff0c;之前写贪吃蛇的时候&#xff…

初中变成了菜园子了!

我家在四川省射洪县天仙镇凤鸣场&#xff0c;属于四川盆地山区&#xff0c;在四川中部&#xff0c;发源于川北羌塘群山的涪&#xff08;fu&#xff09;江流经射洪县城。天仙镇原名天仙寺&#xff0c;附近很多乡镇都是奇怪的名字&#xff1a;大庙、双庙、佛照、玉贞观。我怀疑这…

单片机数字滤波算法如何实现?(附代码)

ID&#xff1a;技术让梦想更伟大整理&#xff1a;李肖遥单片机主要作用是控制外围的器件&#xff0c;并实现一定的通信和数据处理。但在某些特定场合&#xff0c;不可避免地要用到数学运算&#xff0c;尽管单片机并不擅长实现算法和进行复杂的运算。下面主要是介绍如何用单片机…