基于单片机的恒温箱控制系统设计.docx

基于单片机的恒温箱控制系统设计.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

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

恒温箱是一个广泛应用于实验室、工厂和医疗机构的设备,可以为存储和测试样品提供稳定的温度环境。基于单片机的恒温箱控制系统可以自动控制箱内温度,准确地控制温度范围,节省能源,提高工作效率。本文将介绍如何设计一个基于单片机的恒温箱控制系统,包括硬件和软件实现。

一、硬件设计

1.项目概述

本项目拟设计一个基于AT89C52单片机的恒温箱控制系统,其中温度传感器DS18B20用于感应箱内温度,LCD1602液晶显示屏用于显示当前温度和设定温度,系统通过蜂鸣器发声提示温度变化,继电器模块控制加热器的开关状态。

所需器材:

-AT89C52单片机开发板

-DS18B20数字温度传感器

-LCD1602液晶显示屏

-继电器模块

-蜂鸣器

-面包板、杜邦线、电阻、电容等基本元器件

2.电路原理图

接线图如下:

![image-20210918181730154](/yaorange/typing-test/main/20210918181730.png)

3.电路分析

该控制系统利用DS18B20数字温度传感器检测恒温箱内的温度,并将其传输到AT89C52单片机中进行处理。AT89C52单片机将箱内温度与设定温度进行比较,通过继电器模块控制加热器的开关,从而达到恒温的目的。LCD1602液晶显示屏显示当前温度和设定温度,蜂鸣器则会在温度超过设定温度上限或下限时响起,作为报警提示。

二、软件设计

1.软件流程图

![image-20210918181817099](/yaorange/typing-test/main/20210918181816.png)

2.程序代码

(1)主函数

```c

#include<reg51.h>/*包括头文件reg52.h*/

#include<stdio.h>

#include<intrins.h>

#include"temp.h"/*包括头文件temp.h*/

#include"lcd.h"/*包括头文件lcd.h*/

#include"delay.h"/*包括头文件delay.h*/

#include"relay.h"/*包括头文件relay.h*/

sbitbeep=P1^5;//蜂鸣器控制引脚

unsignedcharerror;

voidmain()

{

floatt;

unsignedtmp;/*定义浮点数t和整型数据tmp*/

delay_init();/*延时函数初始化*/

beep=0;//初始化蜂鸣器

beep=1;

relay_init();/*设置继电器引脚*/

lcd_init();/*LCD屏幕初始化*/

while(1)/*主程序循环*/

{

t=read_temp();/*利用读取温度函数read_temp读取温度数据*/

printf("Temp:%6.2f'C",t);/*将温度数据打印到LCD屏幕上*/

tmp=(unsigned)(t*10+0.5);

if(tmpSetTmp)//设定温度的范围和步长

{

Relay(1);/*温度高于设定温度范围,打开继电器通电*/

beep=0;

LCD_ShowStr(0,1,"High");//显示高温提示

}

elseif(tmp<SetTmp-LIMIT)//温度低于设定温度范围

{

Relay(1);/*闭合继电器通电,使恒温箱加热工作*/

beep=0;

LCD_ShowStr(0,1,"Low");//显示低温提示

}

else{Td=1;Relay(0);beep=1;LCD_ShowStr(0,1,"OK");}//温度正常

}

}

}

```

(2)LCD1602驱动程序

```c

#include<reg51.h>

#include<intrins.h>

#include"delay.h"

#defineLCD1602_DataPP2 /*定义LCD1602数据口P2口线*/

sbitRS=P3^0; /*LCD1602命令端口*/

sb

文档评论(0)

138****2486 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档