基于单片机的DS18B20的数字温度监控报警系统设计【LCD1602显示+Proteus仿真+C程序+论文+按键设置等】

注:获取全套资源,请见后文说明…

设计要求
1.测量温度值精度为±1℃;
2.系统允许的误差范围为1℃以内;
3.系统可由用户预设温度值,测温范围为-55℃~+125℃;
4.通过DS18B20传感器和系统连接,能实时准确检测到现场温度;
5.把现场实时检测到的温度值通过LCD1602液晶显示出来;
6.报警温度设定和报警:根据需要可以设置报警温度,并且当达到报警温度时会发出报警提示;

系统概述
本系统采用一种改进型温度传感器DS18B20作为检测元件,温度范围为-55~125ºC,最高分辨率可达0.0625ºC。DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。

本设计是一种基于AT89C52单片机的温度监控系统仿真设计,系统采用DS18B20作为温度监测元件,测量范围-55℃-~+125℃,使用LCD1602液晶模块显示测取的温度值以及设定的温度上下限值,按键模块用来设置温度报警上下限。若当前获取的温度不在设定温度上下限范围内时,蜂鸣器报警,LED指示灯点亮,指示当前报警信息。

系统由4个部分组成,它们是AT89C52单片机最小系统(包括复位电路和晶振电路)、DS18B20采温模块、LCD显示模块、按键设置模块和报警模块,其设计框架如下。
在这里插入图片描述
仿真电路图
在这里插入图片描述
在这里插入图片描述
仿真结果运行
当从DS18B20采集到的温度低于温度下限时,仿真结果如下图所示,可知蓝色LED指示灯点亮,蜂鸣器报警。
在这里插入图片描述
部分C程序

主程序
void main()

{

init();//LCD初始化

Init_time();

Init_DS18B20();//DS18B20初始化

while(1)

{

if(s1==0||s1num>=1)

{keyscan(); TR0 = 0; D1 = 1; D2 = 1;}//按键扫描

else

{

ReadTemp();//读取温度值

write_temp_value(0,temp_value);//LCD显示温度值

comp();

}

}

}

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x–)

for(y=110;y>0;y–);

}

/LCD初始化程序***/

void init()

{

lcden=0;

lcdrw=0;

write_com(0x38); //设置16x2 显示5x7 点阵,8 位数据接口

write_com(0x0c); //设置开始显示不显示光标

write_com(0x06); //写一个字符后地址指针加1

write_com(0x01); //显示清零数据指针清零

write_com(0x80); //将数据指针第一行第一个字处,

write_com(0x80+9); //定义当前指针位置

write_data(‘H’);

write_data(:);

write_data(+);

write_data(2);

write_data(0);

write_data(0xdf);

write_data(‘C’);

write_com(0x80+9+0x40); //定义当前指针位置

write_data(‘L’);

write_data(:);

write_data(+);

write_data(1);

write_data(0);

write_data(0xdf);

write_data(‘C’);

h=0x14;

l=0+0x0a;

D1=1;

D2=1;

figh=0;

figl=1;
}

资源分享内容有
(1)基于DS18B20的数字温度监控系统Proteus仿真毕设论文【完整版】;
(2)Proteus仿真文件;
(3)Keil C语言程序文件;
(4)参考文献资料(DS18B20、LCD1602手册等);
(5)Visio流程图文件;

分享如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
资源获取方法
资源获取方法
资源获取方法
重要的事情说三遍!!!!!!!!!!!
由于本设计为作者原创设计,获取完整的论文报告、Keil C程序、Proteus仿真、Visio流程图文件和参考文献资料。

请微信搜索关注公众号:交大小智

猜你喜欢

转载自blog.csdn.net/JiaoDaBoy/article/details/103198165