基于51单片机实现温度监测报警系统

发布者:和谐的24号最新更新时间:2023-01-31 来源: zhihu关键字:51单片机 手机看文章 扫描二维码
随时随地手机看文章

具体功能实现

利用DS18B20实时检测温度并显示在LCD1602显示屏上,同时可以通过K1,K2,K3,K4设置最高温度和最低温度利用AT24C02可以实现掉电不丢失,最后当检测温度大于或小于最高温时,会在LCD1602显示屏上显示OV:H或OV:L。


使用器件:

AT89C52、LCD1602显示屏、4只按键、AT24C02、DS18B20


实际图和运行图 :


由测试图中的LCD1602显示屏可以得出:当前室温是24.18℃,最高温限制为21℃,最低温限制为-2℃。


知识介绍:

AT24C02芯片介绍

AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,AT24C02是一种可以实现掉电不丢失的存储器,可用于保存单片机运行时想要永久保存的数据信息。
存储介质:EEPROM
通讯接口:I2C总线


DS18B20芯片介绍

DS18B20是常用的数字温度传感器,其输出的是数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。[1] DS18B20数字温度传感器接线方便,封装成后可应用于多种场合。


通过单总线协议进行通信(One-Wire)

管脚定义图:


温度寄存器格式:


DS18B20功能命令:


编辑

初始化时序:


初始化代码:

unsigned char onewire_init(void)

{

unsigned char i;

unsigned char ackbit;

onewire_dq=1;

onewire_dq=0;

i = 247;while (--i); //delay 500us

onewire_dq=1;

i = 32;while (--i); //delay 70us

ackbit = onewire_dq;

i = 247;while (--i); //delay 500us

return ackbit;

}

读/写时序:


读时序代码:

unsigned char onewire_receivebit(void)

{

unsigned char i;

unsigned char Bit;

onewire_dq=0;

i = 2;while (--i); //delay 9us

onewire_dq=1;

i = 2;while (--i); //delay 9us

Bit = onewire_dq;

i = 22;while (--i); //delay 50us

return Bit;

}


写时序代码:

unsigned char onewire_sendbit(unsigned char Bit)

{

unsigned char i;

onewire_dq=0;

i = 4;while (--i); //delay 14us

onewire_dq =Bit;

i = 22;while (--i); //delay 50us

onewire_dq=1;

}

全双工,半双工,单工的区别

单工:只支持信号在一个方向上传输(正向或反向),任何时候不能改变信号的传输方向。

半双工:半双工通信允许信号在两个方向上传输,但某一时刻只允许信号在一个信道上单向传输。半双工通信实际上是一种可切换方向的单工通信

全双工:全双工通信允许数据同时在两个方向上传输,即有两个信道,因此允许同时进行双向传输。

主函数代码(C语言)KEIL5实现:

#include


#include "LCD1602.h"


#include "onewire.h"


#include "DS18B20.h"


#include "key.h"


#include "AT24C02.h"


float t,tshow;


char tlow,thigh;


unsigned char keynum;


void Delay5ms() //@11.0592MHz


{


unsigned char i, j;


i = 54;


j = 199;


do


{


while (--j);


} while (--i);


}


void main()


{


LCD_Init();


LCD_ShowString(1,1,"T:");


LCD_ShowString(2,1,"TH:");


LCD_ShowString(2,9,"TL:");


thigh = AT24C02_ReadByte(0);


tlow = AT24C02_ReadByte(1);


while(1)


{


LCD_ShowSignedNum(2,4,thigh,3);


LCD_ShowSignedNum(2,12,tlow,3);


keynum = key();


ds18b20_convert();


t = ds18b20_readt();


if(t<0)


{


LCD_ShowChar(1,3,'-');


tshow= -t;


}else{


LCD_ShowChar(1,3,'+');


tshow = t;


}


LCD_ShowNum(1,4,tshow,3);


LCD_ShowChar(1,7,'.');


LCD_ShowNum(1,8,(unsigned long)(tshow*100)%100,2);


if(keynum)


{


if(keynum==1)


{


thigh++;


if(thigh>125)


{


thigh=125;


}


}


if(keynum==2)


{


thigh--;


if(thigh<=tlow)


{


thigh++;


}


}


if(keynum==3)


{


tlow++;


if(tlow>=thigh)


{


tlow--;


}


}


if(keynum==4)


{


tlow-- ;


if(tlow<-55)


{


tlow = -55;


}


}


if(tshow>thigh)


{


LCD_ShowString(1,13,"OV:H");


}


else if(tshow

LCD_ShowString(1,13,"OV:L");


}


else{


LCD_ShowString(1,13,"    ");


}


AT24C02_WriteByte(0,thigh);


Delay5ms();


AT24C02_WriteByte(1,tlow);


Delay5ms();


}


}


}


问题解答 :

Q:代码超出版本限制如何解决?如图:


A:用注册机对KEIL5软件进行重新破解,破解步骤链接:

Q:延时函数如何快速自动生成?

A:在STC-ISP中根据红色方框进行设计


Q:为什么使用AT24C02代码后还是会出现掉电丢失?

A:因为写字节AT24C02_WriteByte();还需要延时时间,最低时间要达到10ms,而单片机执行一条指令的时间为1us。


关键字:51单片机 引用地址:基于51单片机实现温度监测报警系统

上一篇:基于51单片机实现红外控制系统控制电机调速
下一篇:基于51单片机用DS1302和LCD1602设计可调式电子日历与时钟

推荐阅读最新更新时间:2024-10-19 07:00

基于51单片机实现温度监测报警系统
具体功能实现 利用DS18B20实时检测温度并显示在LCD1602显示屏上,同时可以通过K1,K2,K3,K4设置最高温度和最低温度利用AT24C02可以实现掉电不丢失,最后当检测温度大于或小于最高温时,会在LCD1602显示屏上显示OV:H或OV:L。 使用器件: AT89C52、LCD1602显示屏、4只按键、AT24C02、DS18B20 实际图和运行图 : 由测试图中的LCD1602显示屏可以得出:当前室温是24.18℃,最高温限制为21℃,最低温限制为-2℃。 知识介绍: AT24C02芯片介绍 AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,AT24C02是一
[单片机]
基于51单片机温度报警系统
功能: 设计一个温度报警系统,可以设定温度上、下限的值,到达设定值时,蜂鸣器响;按键设定有设置、确定、取消、减少与增加功能,LCD1602实时显示相关温度信息 设定界面: 温度超过设定值,蜂鸣器响: 温度超过设定值,蜂鸣器响:温度超过设定值 温度低于设定值,蜂鸣器响: 部分程序: #include reg52.h #include SETTEM.h //设置报警的上下限值头文件 #include Lcd1602.h //LCD显示模块功能头文件 #include DS18B20.h //DS18B02模块功能头文件 #include IntToChar.h //存放整型数转换为字符串头文件 #include Alar
[单片机]
51单片机控制的DS18B20温度测量报警系统
需要的功能及作用 单片机DS18B20温度测量系统的测量范围为0-99.9摄氏度,可设置上限报 警温度、下限报 警温度(即高于上限值或者低于下限值时蜂鸣器报 警),默认上限报 警温度为38℃、默认下限报 警温度为5℃。报警值可设置范围:最低上限报警值等于当前下限报警值,最高下限报 警值等于当前上限报 警值。将下限报 警值调为0时为关闭下限报 警功能。电源电压VCC为5V,可以焊一只USB座到板上,然后用相应的USB线连接至电脑,通过电脑USB口供电;DS18B20也可以根据需要用屏蔽电缆引出来。K1为进入/退出设置键;K2为增加键;K3为减少键。 废话不多说,先上实物图 因为项目比较简单就不放一些具体的工艺图片了
[单片机]
<font color='red'>51单片机</font>控制的DS18B20<font color='red'>温度</font>测量<font color='red'>报警系统</font>
基于51单片机温度+烟雾报警系统设计
一.硬件方案 本设计采用51单片机为核心控制器,利用气体传感器MQ-2、ADC0832模数转换器、DS18B20温度传感器等实现基本功能。通过这些传感器和芯片,当环境中可燃气体浓度或温度等发生变化时系统会发出相应的灯光报警信号和声音报警信号,以此来实现火灾报警,智能化提示。 主要由51单片机+最小系统+LCD1602液晶显示模块+MQ-2烟雾模块+ADC0832模块+DS18B20温度模块+蜂鸣器模块+LED指示灯模块+继电器驱动模块+风扇模块+按键模块;如图: 二.设计功能 (1)LCD1602液晶显示屏实时显示当前的烟雾值和温度值。 (2)温度和烟雾的报警值可以通过按键设定。 (3)当前温度值超过上限时,红灯亮,蜂鸣器
[单片机]
基于<font color='red'>51单片机</font>的<font color='red'>温度</font>+烟雾<font color='red'>报警系统</font>设计
55-基于51单片机温度检测报警系统
具体实现功能 系统由STC89C51单片机+液晶1602显示+DS18B20温度传感器+按键模块+报警模块构成。 具体功能: (1)采用DS18B20温度传感器测温并用LCD1602显示; (2)按键为设置按键、加键和减键。可设置上下限温度报警值; (3)当温度超过设定的上或下限时,相应的指示灯亮,蜂鸣器报警; (4)温度测量范围0到99.9摄氏度,精度为0.1摄氏度。 设计背景 随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与了解环境温度。特别地,高温情况下极易造成火灾,例如,在机房中,电脑等设备发热快,若在短时间内机房温度升高,超出了设备正常温度,就会导致系统瘫痪或产生火灾。在这
[单片机]
55-基于<font color='red'>51单片机</font>的<font color='red'>温度</font>检测<font color='red'>报警系统</font>
基于51单片机的天气温度报警系统
基于AT89C51的天气温度报警系统,采用Protues仿真。 元件: DS1302时钟芯片 DS18B20温度传感器 LM016L(1602)液晶 AT89C51 单片机 LED灯若干 蜂鸣器一只 用于 报警 本人不写这个报警程序了 其实挺简单的 我只贴出部分主要的代码 完整源代码请到: http://blog.sina.com.cn/u/2311964960 (内附图片) 或直接下载: LSD.c (7.4 KB, 下载次数: 72) /*初始化DS18B20*/ void Init_DS18B20() { //初始化DS18B20必须先给DS18B20一个复位脉冲,接收到复位脉冲后
[单片机]
基于<font color='red'>51单片机</font>的天气<font color='red'>温度</font><font color='red'>报警系统</font>
基于51单片机的自动温度测量报警系统设计
目前,无论是在工业生产中还是在科研实验中通过对温度测量来进行自动控制的设备越来越普及,应用场合也越来越多。随之而来的问题是,如何能够测得精确的温度以保证自动控制设备能够正确地发出控制指令来控制生产过程。另一方面,如果温度过高可能会对一些设备中的一些半导体元器件造成损坏。因此,对于自动高温报警的需求也在逐渐增加。本文基于以上方面的考虑,研究并设计了一种基于单片机的自动温度测量与报警系统。 1 系统硬件设计 尽管目前市场上单片机的品种多样,功能也越来越多,但是受成本约束,性能优良的8位单片机仍然是工业检测与控制应用领域的首选。 本系统就是以ATMEL公司的AT89C51单片机为中心,通过模数转换器AD7812对温度传感器的输
[单片机]
基于<font color='red'>51单片机</font>的自动<font color='red'>温度</font>测量<font color='red'>报警系统</font>设计
基于AT89C51单片机和DS18B20农业环境温度监测系统的设计
现代设施农业是集生物技术、工程技术、环境技术为一体的一种高技术、高效益的现代化农业生产方式。是农业产业调整,适应市场经济发展、提高土地资源利用率的有效途径。目前,一些发达国家在设施农业设备和配套技术方面均已形成了完整的体系,其现代化温室能根据作物对环境的不同需要,由微型计算机对设施内的温度、光照、湿度、空气成分等环境因子进行自动监测和调控,可实现温室作物全天候、周期性的高效生产,并逐步向温室管理的数字化、智能化发展。 我国特别是西北地区虽然地广物丰,但由于土地的沙漠化比较严重,导致可利用的土地资源越来越少,因此土地资源的高效利用问题也越来越突出,加快发展设施农业是解决问题的最有效途径。对设施农业环境中的各项环境因素进行检测和控
[单片机]
基于AT89C<font color='red'>51单片机</font>和DS18B20农业环境<font color='red'>温度</font><font color='red'>监测</font>系统的设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved