1342基于单片机的温度测量报警系统设计-毕设课设资料

本文设计了一种基于STC89C52单片机的温度测量报警系统,采用DS18B20传感器进行温度检测,并具有高低温报警、数码管显示、按键设置、掉电保存等功能。系统在温度超出预设范围时,通过蜂鸣器和报警灯提醒用户,确保温度监控的准确性和及时性,适用于多种环境的温度监测需求。
摘要由CSDN通过智能技术生成

摘要

本文设计了一种基于单片机的温度测量报警系统,通过实时检测温度传感器DS18B20的状态,将采集到的温度数据进行处理并显示。系统具备高低温报警功能,当温度超过设定的报警值时,蜂鸣器会发出报警声,同时报警灯闪烁。此外,系统还具有掉电保存功能,能够将数据保存在单片机内部的EEPROM中。本设计旨在提高温度测量的准确性和报警的及时性,适用于各种需要温度监控的场合。

关键词:单片机;DS18B20;温度测量;报警系统;EEPROM

一、引言

随着科技的不断发展,温度测量在许多领域都扮演着重要的角色。传统的温度测量方法往往存在精度低、响应速度慢等问题,难以满足现代工业生产和日常生活的需求。因此,设计一种基于单片机的温度测量报警系统具有重要意义。该系统能够实时检测温度,并在温度超过设定值时发出报警,提高温度监控的准确性和及时性。

二、系统设计

2.1 系统总体结构

本系统主要由单片机、温度传感器DS18B20、数码管显示模块、按键设置模块、蜂鸣器报警模块和报警灯闪烁模块组成。单片机作为核心控制器,负责实时检测DS18B20的状态,处理温度数据,并控制其他模块的工作。

2.2 硬件设计

2.2.1 单片机选型

本系统选用常见的STC89C52单片机作为核心控制器,其性能稳定、功耗低、价格适中,适合用于温度测量报警系统。

2.2.2 温度传感器DS18B20

DS18B20是一款数字式温度传感器,具有测量精度高、抗干扰能力强等优点。它能够将温度数据直接转换为数字信号输出给单片机,简化了温度测量的过程。

2.2.3 显示与按键模块

数码管用于实时显示当前的环境温度,方便用户观察。按键模块用于设置高低温报警值,用户可以根据实际需求进行调整。

2.2.4 报警模块

蜂鸣器和报警灯共同构成报警模块。当温度超过设定的报警值时,蜂鸣器会发出报警声,同时报警灯闪烁,提醒用户注意。

2.2.5 EEPROM存储模块

为了实现掉电保存功能,系统采用了单片机内部的EEPROM来存储数据。当系统断电后,已设置的报警值等数据会保存在EEPROM中,下次上电时自动恢复。

2.3 软件设计

2.3.1 温度检测与处理

单片机通过读取DS18B20的温度数据,并进行必要的处理,如滤波、单位转换等,以确保测量结果的准确性和稳定性。

2.3.2 显示程序设计

设计数码管的驱动程序,将处理后的温度数据实时显示在数码管上。同时,通过按键设置程序,用户可以方便地设置高低温报警值。

2.3.3 报警程序设计

当检测到的温度超过设定的报警值时,单片机将控制蜂鸣器和报警灯工作,发出报警信号。此外,系统还设置了15秒的自动退出设置界面功能,以提高用户体验。

2.3.4 EEPROM存储程序设计

利用单片机的EEPROM存储功能,设计数据存储程序。当用户设置报警值后,程序将自动将数据保存到EEPROM中,并在系统断电后恢复。

三、系统测试与实现

3.1 系统测试

对系统进行全面的测试,包括温度测量的准确性、报警功能的可靠性、掉电保存功能的稳定性等。测试结果表明,系统工作正常,各项功能均符合预期要求。

3.2 系统实现

根据测试结果对系统进行优化和改进,最终实现了基于单片机的温度测量报警系统。该系统在实际应用中表现出良好的稳定性和可靠性,能够实时检测温度并在必要时发出报警信号。

四、结论与展望

本文设计了一种基于单片机的温度测量报警系统,通过实时检测温度传感器DS18B20的状态并处理数据,实现了温度的精确测量和报警功能。系统具有掉电保存功能,数据保存在单片机内部的EEPROM中,方便用户随时查看和修改。此外,系统还具有自动退出设置界面功能,提高了用户体验。未来可以进一步优化系统的性能,提高温度测量的精度和响应速度,以满足更多实际应用的需求。

【资源下载】下载地址:点击下载 1342 百度网盘icon-default.png?t=N7T8https://docs.qq.com/doc/DWEpnR2pOWU91b3p4?pub=1&dver=2.1.26967325

#include <AT89X52.h> 
#define uint unsigned int
#define uchar unsigned char   	//宏定义
#define SET  P3_1    			//定义调整键 
#define DEC  P3_2    			//定义减少键
#define ADD  P3_3    			//定义增加键 
#define BEEP P3_6    			//定义蜂鸣器
#define ALAM P1_2				//定义灯光报警
#define DQ   P3_7     			//定义DS18B20总线I/O	
bit shanshuo_st;    			//闪烁间隔标志
bit beep_st;     				//蜂鸣器间隔标志
sbit DIAN = P0^5;        		//小数点
uchar x=0;      				//计数器
signed char m;     				//温度值全局变量
uchar n;      					//温度值全局变量
uchar set_st=0;     			//状态标志
signed char shangxian=38;  		//上限报警温度,默认值为38
signed char xiaxian=5;   		//下限报警温度,默认值为38
//uchar code  LEDData[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};
uchar code  LEDData[]={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7,0xCF,0xDA,0x9B,0xDC,0x9B,0x8B};

//============================================================================================
//====================================DS18B20=================================================
//============================================================================================
/*****延时子程序*****/
void Delay_DS18B20(int num)
{
  while(num--) ;
}

  

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值