基于51单片机的多路温度检测报警系统设计(二)

1、简介
一种基于51单片机的多路温度检测报警系统。该设计采用数字温度传感器DS18B20,此传感器读取被测量温度值并进行转换。将转换后的多路数据送到单片机处理,再通过LCD1602显示出来。同时,可手动设置每路温度的上下限值,当实时温度超出时,对应的工作指示灯亮,蜂鸣器报警。

2、主要功能
a.通过LCD1602显示当前温度值,温度测量范围:0-99摄氏度。

b.通过独立按键设置多路温度上下限值,第一次按下设置键设置温度上限值,第二次按下设置键设置温度下限值,再按加减键就可以修改温度值。

c.当温度低于下限或高于上限温度时,蜂鸣器和LED灯同时报警。

d.可通过按键设置LCD1602温度显示模式:循环或手动。

3、环境搭建
资料清单:C程序+仿真+设计报告+使用说明+元件清单+操作视频
仿真版本:Proteus8.6及以上版本
编译平台:Keil C51
编程语言:C语言

4、源程序
使用keil C51软件(内附安装包)实现程序编写与编译。

//宏定义
#define uchar unsigned char
#define uint  unsigned int

bit ZF1,ZF2,ZF3,ZF4;	//温度的符号位,=0为正数,=1为负数
bit flag,shanshuo;
//头函数
#include<reg52.h>
#include<Lcd.h>
#include<DS18B20.h>
//函数声明


//IO说明
sbit LED1=P1^0;
sbit LED2=P1^1;
sbit LED3=P1^2;
sbit LED4=P1^3;
sbit LED5=P1^4;
sbit LED6=P1^5;
sbit LED7=P1^6;
sbit LED8=P1^7;

sbit BUZZER=P2^0;

sbit K1  =P3^3;
sbit K2  =P3^4;
sbit K3  =P3^5;
sbit K4  =P3^6;
sbit K5  =P3^7;

//变量声明
uchar Mode=0;//
uchar S=0;
uint  SI=0;
uint  TT0=0,TT1=0,TT2=0,TT3=0;//温度变量

bit flag_BJ1,flag_BJ2,flag_BJ3,flag_BJ4,flag_BJ5,flag_BJ6,flag_BJ7,flag_BJ8;
bit ZFH1=0,ZFL1=0,ZFH2=0,ZFL2=0,ZFH3=0,ZFL3=0,ZFH4=0,ZFL4=0;
char TEMH1=30,TEML1=20,TEMH2=31,TEML2=21,TEMH3=32,TEML3=22,TEMH4=33,TEML4=23;
uchar set;

void delay(uint ms)
{
	uint i,j;
	for(i=0;i<ms;i++)
	for(j=0;j<110;j++);
}

void key()
{
	if(K1==0)
	{
		delay(10);
		if(K1==0)
		{
			set++;
			if(set>=3)
			{
				set=0;
				flag=0;
			}
		}
		while(!K1);
	}
	if(set!=0)
	{
		flag=1;
		BUZZER=1;
		flag_BJ1=0;flag_BJ2=0;flag_BJ3=0;flag_BJ4=0;
		LED1=1;LED2=1;LED3=1;LED4=1;
	}
	if(K2==0)
	{
		delay(10);
		if(K2==0)
		{
			if(set==1)
			{
				if(Mode==0)
				{
					if(ZFH1==0)
					{
						 TEMH1++;
						 if(TEMH1>=99)
						 TEMH1=99;
					}
					else
					{
						TEMH1--;
						if(TEMH1==0)
						ZFH1=0;
					}
					
				}
				if(Mode==1)
				{
					if(ZFH2==0)
					{
						 						 TEMH2++;
						 if(TEMH2>=99)
						 TEMH2=99;
					}
					else
					{
						TEMH2--;
						if(TEMH2==0)
						ZFH2=0;
					}
					
				}
				if(Mode==2)
				{
					if(ZFH3==0)
					{
						 TEMH3++;
						 if(TEMH3>=99)
						 TEMH3=99;
					}
					else
					{
						TEMH3--;
						if(TEMH3==0)
						ZFH3=0;
					}
					
				}
				if(Mode==3)
				{
					if(ZFH4==0)
					{
						 TEMH4++;
						 if(TEMH4>=99)
						 TEMH4=99;
					}
					else
					{
						TEMH4--;
						if(TEMH4==0)
						ZFH4=0;
					}
					
				}
			}
			if(set==2)
			{
				if(Mode==0)
				{
					if(ZFL1==0)
					{
						 TEML1++;
						 if(TEML1==TEMH1)
						 TEML1=TEMH1-1;
						 if(TEML1>=99)
						 TEML1=99;
					}
					else
					{
						TEML1--;
						if(ZFH1==1&&TEML1==TEMH1)
						TEML1=TEMH1+1;
						else if(ZFH1==0&&TEMH1==0&&TEML1==0)
						TEML1=1;
						if(TEML1==0)
						ZFL1=0;
					}
					
				}
				if(Mode==1)
				{
					if(ZFL2==0)
					{
						 TEML2++;
						 if(TEML2==TEMH2)
						 TEML2=TEMH2-1;
						 if(TEML2>=99)
						 TEML2=99;
					}
					else
					{
						TEML2--;
						if(ZFH2==1&&TEML2==TEMH2)
						TEML2=TEMH2+1;
						else if(ZFH2==0&&TEMH2==0&&TEML2==0)
						TEML2=1;
						if(TEML2==0)
						ZFL2=0;
					}
					
				}
				if(Mode==2)
				{
					if(ZFL3==0)
					{
						 TEML3++;
						 if(TEML3==TEMH3)
						 TEML3=TEMH3-1;
						 if(TEML3>=99)
						 TEML3=99;
					}
					else
					{
						TEML3--;
						if(ZFH3==1&&TEML3==TEMH3)
						TEML3=TEMH3+1;
						else if(ZFH3==0&&TEMH3==0&&TEML3==0)
						TEML3=1;
						if(TEML3==0)
						ZFL3=0;
					}
					
				}
				if(Mode==3)
				{
					if(ZFL4==0)
					{
						 TEML4++;
						 if(TEML4==TEMH4)
						 TEML4=TEMH4-1;
						 if(TEML4>=99)
						 TEML4=99;
					}
					else
					{
						TEML4--;
						if(ZFH4==1&&TEML4==TEMH4)
						TEML4=TEMH4+1;
						else if(ZFH4==0&&TEMH4==0&&TEML4==0)
						TEML4=1;
						if(TEML4==0)
						ZFL4=0;
					}
					
				}
			}
		}

5、proteus8.6仿真
采用proteus8.6软件(内附安装包)实现仿真设计,如下图所示。proteus软件一般存在高低版本兼容问题,该仿真是通过proteus8.6导出的,所以请尽量使用proteus8.6打开文件,低于proteus8.6的版本不能够正常使用,高于proteus8.6的版本除了proteus8.8/8.9理论上可以正常使用。
T1当前温度:
在这里插入图片描述
T2当前温度:
在这里插入图片描述
T3当前温度:
在这里插入图片描述
T4当前温度:
在这里插入图片描述
当温度高于上限时,蜂鸣器和LED灯报警:
在这里插入图片描述
当温度低于下限时,蜂鸣器和LED灯报警:
在这里插入图片描述

6、设计资料清单
设计资料主要包括C程序+仿真+设计报告+使用说明+元件清单+操作视频等,设计报告主要包括硬件电路、软件设计、仿真调试等等,仅供参考。由于不定期更新,最新的资料包不一定与下面图片完全一致,但主要资料都有。
在这里插入图片描述
在这里插入图片描述

7、资料获取方式
EE05下载链接1:百度网盘(推荐)
EE05下载链接2:优快云免积分)
有偿获取,非诚勿扰🙏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值