基于单片机的智能加湿器设计
图2.17 按键电路
2.7 系统电路工作原理
本次电路的设计是分模块进行的,整个系统被分为:温湿度检测模块、液晶显示模块、报警模块、加湿模块和按键输入模块。整体设计的电路图如图2.18所示:
图2.18 系统电路原理图
工作原理:该设计结合了硬件和软件的功能,在设计中使用软件的方式来控制硬件完成自动智能化的工作。
21
基于单片机的智能加湿器设计
单片机通过LCD把温湿度传感器检测到的温度和湿度信号显示出来,并输出控制信号或加湿报警信号,从而实现智能加湿、防干烧的效果。
22
基于单片机的智能加湿器设计
3 系统软件设计
3.1 主程序设计
该系统的程序设计分为几个模块:温湿度检测模块、控制模块、按键输入模块、显示模块和水位检测模块。主程序流程图如图3.1所示:
开始 初始化 键盘扫描 延时 温湿度检测 温湿度显示 数据初始化 低 轰鸣器报警 判断水位高低 停止/暂停加湿 高 是 判断是否超过最佳湿度 否 启动加湿 结束 图3.1 主程序设计流程图
23
基于单片机的智能加湿器设计
单片机系统开始运行后,会检测水位的电平变化,并且能够根据这些电平信号自动判断是否需要启动蜂鸣器报警;转变手动/自动模式后,传感器读取温湿度将数据送至单片机,单片机对湿度数据进行比对,判断是否需要加湿。在本次设计中我只是用湿度的大小来决定加湿器是否需要工作,不再把温度考虑进去,所以在本次设计中,只显示当前环境下的温度而不对温度数据进行比对。加湿过程中,如果系统检测到低水位电平信号,蜂鸣就会发出报警信号,并且立即停止加湿。
3.2 温湿度检测控制模块设计
依据温湿度传感器的通讯协议,单片机系统经过输入/输出口积极地发出激励信号,继而使温湿度传感器掌管数据线,最后单片机系统使用while循环语句对输入/输出口的电平进行实时的检测,从而得到准确地传输数据。图3.2所示为温湿度检测模块的软件设计流程图。
开始 80us低电平是否结束 延时20ms 是 P1.2输出高电平 延时40ms 80us高电平是否结束 否 否 P1.2输出低电平 否 P1.2是否为低电平 数据保存到数组 是 结束 图3.2 温湿度检测模块的软件流程图
接收数据 24
基于单片机的智能加湿器设计
使用温湿度传感器采集空气中的温湿度信号:系统开始运行后,单片机系统拉低P1.2脚的电平,经过20ms之后把P1.2脚的电平拉高40ms,等待结束后,系统检测管脚P1.2的电平是否为‘0’,如果不是‘0’就循环检测该信号;如果信号为‘0’,就执行判断重复80us低电平是否结束;如果80us低电平判断结束,就再次运行判别持续80us高电平是否结束,若是判断没有结束就循环执行该指令;如果指令执行完毕,单片机系统就开始接收数据,并将接收到的数据信息按照十进制的方式存放到特定的数组中,信号采集完毕后,系统对采集到的数据进行保存且保持信号采集指令持续执行。
3.3 液晶显示模块设计
软件流程图如图3.3所示:
开始 液晶1602初始化 延时 写LCD指令 写显示行列地址 取显示首地址 写数据 读数据并显示 返回 图3.3 液晶显示程序流程图
1602液晶显示屏输出数据的流程为:首先运行显示器的初始化操作,初始化之后执行延时程序,等待信号的采集,采集完成后先写入一些指令和显示字
25