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

发布时间:2023-01-31  

具体功能实现

利用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

{


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单片机的温度报警器设计;摘 要:单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字温度器,本温度计属于多功能温度计,可以设置上下报警温度......
    电路 2 报警器的软件设计 2.1 目前电子产品的相互抄袭问题严重,不仅局限在硬件抄板领域,还有很多公司开展单片机解密及二进制逆向 C 语言的业务,这相当于窃取了原厂的硬件原理图与 PCB,以及配 套的......
    构成温度采集电路,8 片DS18B20采用单总线与并行输入相结合的方式接至单片机的P1口。单片机巡回采集各路DS18B20送来的温度信息后,通过软件设计算法,将处理后的温度信息及相应的温度......
    短信并拨打电话; ③当驾驶室的紧急报警按钮按下时,拨打报警电话,并发送定位短信。 基于需要,选用GSM模块的型号为SIM900A。设计中通过单片机的串行口与模块相连接,通过相应的AT指令......
    基于51单片机温湿度控制器仿真设计;原理图:Altium Designer 仿真原版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0013 基本......
    基于单片机DS18B20温度报警系统 无线蓝牙显示;一、系统方案随着科学技术的不断发展带动着电子行业的地位越来越重,现在电子产品几乎在社会的各个领域都可以见到。这些......
    基于51单片机的温度报警系统;功能: 设计一个温度报警系统,可以设定温度上、下限的值,到达设定值时,蜂鸣器响;按键设定有设置、确定、取消、减少与增加功能,LCD1602实时显示相关温度信息 设定......
    基于AT89S52单片机的温度和湿度检测系统设计;引言 温度、湿度是工农业生产的主要环境参数.对其进行适时准确的测量具有重要意义。利用单片机对温、湿度控制。具有控温、湿精度高、功能强、体积小、价格......
    基于STM32单片机的瓦斯监测与控制;本文设计出这一款基于STM32单片机煤矿瓦斯监测控制管理系统,包括甲烷气体传感器电路、温湿度传感器电路、Wi-Fi模块电路、报警电路、继电......
    基于STC89C52单片机的自动窗帘控制系统设计;1.简介 自动窗帘控制系统核心采用的是单片机STC89C52,其次利用了光照传感器、按键、显示屏以及信号调理电路等外围电路,使整......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>