基于51单片机的温湿度控制系统

最新更新时间:2021-10-14来源: eefocus关键字:51单片机  温湿度控制系统  EEPROM 手机看文章 扫描二维码
随时随地手机看文章

一.硬件方案

本设计采用51单片机每2秒钟从DHT11温湿度传感器中读入温度和湿度,在液晶屏上即时显示。液晶屏上同时显示温湿度上限值,该上限值保存外外部EEPROM存储器中,掉电不失,并且可以通过四只按键上调或下调。当温度或湿度值超过上限值时,报警信号点亮相应报警灯。该报警信号可以通过三极管驱动继电器,以控制外部风机或加热器。


主要由51单片机+最小系统+LCD1602液晶显示模块+温湿度采集模块+继电器驱动模块+风扇模块+LED指示灯模块+按键模块+AT24C02存储模块+蜂鸣器报警模块;如图:

二.设计功能

(1)AT24c02芯片掉电存储设置的上下限。

(2)四个按键为设置、加、减、确定,实现了阀值的调节。

(3)LCD1602液晶显示,上面行显示当前的温度和湿度,下面行显示相应的冷、热、干、湿。

(4)配用全数字型温湿度传感器DHT11,温度测量范围0℃–50℃,湿度测量范围20%RH—90%RH,可以满足一般需要。

(5)当超过阀值的时候,有蜂鸣器闪烁报警提示。并有开关可以关闭或打开报警。

(6)当温度或湿度超限后,报警信号灯点亮同时相应的继电器吸合。继电器可以驱动打开或切断通风机、抽湿机、加热器、制冷器、加湿器、报警器等外部设备;


三.设计原理图

(1)原理图主要采用AD软件进行设计,如图:

(2)Protues仿真图如下:

(3)PCB图如下:

四.软件设计

(1)程序流程图

(2)主程序源码


//数据初始化

void Data_Init()

{

   Led_qushi = 1;

   Led_jiashi=1;

   Led_jiangwen = 1;

   Led_shengwen = 1;

}


/********************************************************************

* 名称 : Main()

* 功能 : 主函数

***********************************************************************/

void main()

{

    uint i, j, testnum;


    EA = 0;


Timer0_Init();  //定时器0初始化


    Data_Init();

EA = 1;


L1602_init();

//延时

for (i=0;i<1000;i++)

   for (j=0;j<1000;j++)

   {;}

    //清屏

L1602_string(1,1,"                ");

L1602_string(2,1,"                ");

    L1602_string(1,1,"Tem:   C Hum:  %");

L1602_string(2,1,"Smalldi@2017");

    

    /***载入温度上限和湿度上限设定值***/

TH=rdeeprom(0);  

Delay1(20); //加延时可以存取稳定

TL=rdeeprom(1);

Delay1(20);

HH=rdeeprom(2);

Delay1(20);

HL=rdeeprom(3);


while(1)

{

       

if (FlagStartRH == 1) //温湿度转换标志检查

{

     TR0 = 0;

             testnum = RH();

  FlagStartRH = 0;

TR0 = 1;

humidity = U8RH_data_H; //读出温湿度,只取整数部分

temperature = U8T_data_H;


 

if(Mode==0) //温湿度控制

{

if (temperature > TH)

{

Led_jiangwen = 0;

hot=1;

Led_shengwen = 1;

cold=0;

// BJ=1;

}

else if(temperature {

Led_shengwen = 0;

cold=1;

Led_jiangwen = 1;

hot=0;

buzz=0;

// BJ=1;

}       

else

{

Led_jiangwen=1;

Led_shengwen=1;

hot=0;

cold=0;

buzz=1;

}

if (humidity > HH)

{

Led_qushi = 0;

humid=1;

Led_jiashi = 1;

dry=0;

// BJ=1;

}

else if(humidity {

Led_jiashi = 0;

dry=1;

Led_qushi = 1;

humid=0;

// BJ=1;

}

else

{

Led_qushi=1;

Led_jiashi=1;

humid=0;

dry=0;

}

}

else

{

Led_shengwen=1;

Led_jiangwen=1;

Led_jiashi=1;

Led_qushi=1;

hot=0;

cold=0;

humid=0;

dry=0;

BJ=0;

}

}

display();

KEY();

}

}

关键字:51单片机  温湿度控制系统  EEPROM 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic550439.html

上一篇:基于51单片机的温度+烟雾报警系统设计
下一篇:基于51单片机的电子密码锁设计-- 1602显示

推荐阅读

【自学51单片机】1 -- 初步认识单片机和单片机基础知识介绍
、MSP430、STM32、PIC、AVR、Freescale、TMS、STC单片机。其中51单片机应用最广泛的8位单片机,也是初学者们容易上手学习的单片机,最早由Intel推出,由于其典zhi型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,堪称为一代“经典”,为以后的其它单片机的发展奠定了基础。自己手里的KST51开发板2、自己学习单片机方法2.1 所学学习单片机的种类为宏晶科技的 STC89C52RC 的 51单片机。(实物见图一)2.2 学习途径学院推荐的单片机学习方法,宋雪松老师的《手把手教你51学单片》图书及其配套的教学视频和KST51–开发板。 学习资料链接: 金沙滩工作室.2.3 相关
发表于 2021-10-21
【自学<font color='red'>51单片机</font>】1 -- 初步认识单片机和单片机基础知识介绍
【自学51单片机】2 --​keil软件编写程序、烧录程序和点亮LED
1、 外设 LED 介绍LED小灯 即发光二极管,发光二极管为二极管中的一种,二极管中有阳极和阴极,电流从正极流向负极导通,反向阻断。其中贴片发光二极管,正向导通电压在1.8V — 2.2V之间,靠电流驱动,工作电流在1mA – 20mA之间,1mA – 5 mA之间LED小灯亮度变化明显,5 mA – 20mA之间LED小灯亮度变化不大,20mA以上LED小灯易烧坏。贴片发光二极管2、计算限流电阻LED小灯电路1. 限流电阻: 电阻的阻值大小变化可以直接改变整条电路的电流大小,称为限流电阻。2. 该开发板VCC电压为5V,GND接地为0V,贴片LED电压大概在2V左右,限流电阻电压为3V左右,要使LED灯亮电流控制在1mA – 2
发表于 2021-10-21
【自学<font color='red'>51单片机</font>】2 --​keil软件编写程序、烧录程序和点亮LED
【自学51单片机】3 -- ​硬件基础知识介绍和闪烁LED小灯
1、电磁干扰电磁干扰简称EMI,包括 ESD(静电放电现象)、EFT(快速瞬间群脉冲效果)、Surge(浪涌效果)等等,ESD、EFT、Surge都是高频信号,对半导体元器件损害较大,在电路设计中要去除电磁干扰影响。2、电容介绍1. 电容分类: 铝电解电容、钽电容、陶瓷电容等。三种电容比较:相同容值下铝电解电容便宜,铝电解电容个头大,钽电容和陶瓷电容个头小,性能好,但贵 。2. 电容单位:在国际单位制里,电容的单位是法拉,简称法,符号是F,由于法拉这个单位太大,所以常用的电容单位有毫法(mF)、微法(μF)、纳法(nF)和皮法(pF)等,换算关系是:1法拉(F)= 103毫法(mF)=106微法(μF)=109纳法(nF)=1012
发表于 2021-10-21
【自学<font color='red'>51单片机</font>】3 -- ​硬件基础知识介绍和闪烁LED小灯
【自学51单片机】4---进制转换、C语言变量种类和运算符
/16=4余下0所以1024=400(7)2000=2000/16=125余下0再将125化为16进制,125=125/16=7余下13,找到13对应的数是D所以2000=7D0对于10进制化为16进制,当数字大于16的时候就一直除以16,从低位往高位写。2、C语言基础2.1 C语言变量类型及在C51的范围变量类型:C 语言的数据基本类型分为字符型、整型、长整型以及浮点型,每个基本类型又包含了两个类型。字符型、整型、长整型,除了可表达的数值大小范围不同之外,都只能表达整数,表达小数的话,必须用浮点型。变量在C51的范围:见下表(注:C51指51单片机里的C语言标准)编程宗旨:能用小的变量类型不用大的。 1 个字节 char 解决问题
发表于 2021-10-21
【自学<font color='red'>51单片机</font>】4---进制转换、C语言变量种类和运算符
【自学51单片机】5 --- 定时器、数码管、逻辑运算、
为:11.0592M)机器周期:单片机完成一个操作的最短时间。标准架构下的51单片机的一个机器周期等于12个时钟周期(12 / 时钟周期 S),有的增强型51单片机一个机器周期等于4个时钟周期或等于1个时钟周期,以下讲解标准框架下的51单片机。2.2 定时器的介绍单片机中定时器和计数器是内部的同一模块,计数器功能读者自己去了解,我们来介绍定时器功能。定时器:用于定时,标准51单片机有T0和T1两个定时器。定时器内部有一个寄存器,该寄存器的值每通过一个机器周期自动加1,可以把机器周期理解为定时器的计数周期,如同钟表,每经过一秒,数字自动加1,而寄存器每通过12/11059200秒,数值自动加1。当钟表加到60秒后,秒自动跳为0,这种情况在单片机
发表于 2021-10-21
【自学<font color='red'>51单片机</font>】5 --- 定时器、数码管、逻辑运算、
【自学51单片机】6 ---数码管动态显示、中断系统介绍
执行时间,而下一个数码管的点亮时间就变为1ms - 该程序运行时间。这就是数码管显示抖动的成因。解决办法:运用中断机制即可解决该问题,下面来介绍单片机中断系统。2、单片机的中断系统2.1 中断系统的引入当单片机专心的做一件事(比如打游戏)的时候,突然有一件或多件紧急的事(比如水开了)要去处理,应该先停下这件事(打游戏),先去处理紧急的事(水开了)。这就应用了单片机中断系统,利用中断处理突发情况,让单片机能够同时“完成”多项任务。2.2定器中断模块应用2.2.1中断系统的IE-中断使能寄存器标准51单片机控制中断模块有两个寄存器,一个是中断使能寄存器,另一个是中断优先级寄存器。下面来介绍IE-中断使能寄存器。上表为IE-中断使能寄存器的位
发表于 2021-10-21
【自学<font color='red'>51单片机</font>】6 ---数码管动态显示、中断系统介绍
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved