基于51单片机的恒温控制系统设计

一.硬件方案

本设计采用51单片机作为电路系统的控制核心。恒温控制器通过按键将设置好的温度值传给单片机,通过温度显示模块显示出来。初始温度设置好后,单片机开启输出控制模块,使电热器开始加热,同时将从数字温度传感器DS18B20测量到的温度值实时的显示出来,当加热到设定温度值时,单片机控制声光报警模块,发出声光报警,同时关闭加热器。
主要由51单片机+最小系统+LCD1602显示屏+加热及制冷控制继电器+温度采集模块+蜂鸣器模块+LED指示灯模块+按键模块;如图:

二.设计功能

(1)采用LCD1602显示屏显示当前数据,第一行显示当前的实时温度,第二行显示上限值和下限值。
(2)采用DS18B20温度传感器测温;
(3)按键可以设置报警值,当温度超过设定的上或下限时,相应的指示灯亮,同时相应的继电器吸合,继电器可以驱动负载(风扇、制冷片、加热管等)。温度在上下限值之内,加热和制冷不工作。
(4)按键为设置按键、加键和减键。可设置上下限温度控制范围。
(5)温度测量范围0到99.0摄氏度,精度为0.1摄氏度;

三.设计原理图

(1)Protues仿真图如下:
在这里插入图片描述
(2)PCB图
在这里插入图片描述

四.软件设计

主程序源码

void main(void)
{
	unsigned char i=0;
	//P3=0xef;
	P2=0xef;P1=0xff;BEEP=1;//端口初始化,
 	LCD_Initial();	 //LCD 初始化
	
	Read_Temperature(); //读取温度值
	writestring(1,0,"DS18B20 Alarmer");	  //显示“DS18B20 Alarmer”
	delayms(1000);		//延时1S
	writestring(0,0,"Current T=      ");	  //显示“Current T= ”
	writestring(0,1," Low=10  Top=40 ");	  //显示“ Low=10  Top=40 ”
	
	//NG=0;
	while(1)
	{
	 	Read_Temperature();	//	//读取温度值
		Display_Temperature();		//显示温度值
		SetFun();//参数设置,按键功能
		Alarm();//报警子函数
		if((CurrentT<(AlarmTempTop*10))&&(CurrentT>(AlarmTempLow*10)))//当前温度在设置范围内
		{
			Cool=1;Heat=1;//不加热,不降温
		}
		else if((CurrentT>=(AlarmTempTop*10)))//当前温度高过设定值上限
		{
			Cool=0;Heat=1;//不加热,降温
		}
		else if((CurrentT<=(AlarmTempLow*10))||(tflag==1))//当前温度低于下限
		{
			Cool=1;Heat=0;//加热,不降温
		}
	}	
}

如需资料请关注公众号“单片机实例设计”,首页回复“恒温控制器”获取资料;
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值