智能热水器控制系统设计:基于51单片机

一.硬件方案

        智能热水器主要实现的功能是可以对水位进行设置并加水,先设置好需要加水的水位段数,单片机会根据这个数判断是否需要加水,同时还可以测量并显示水温、设置水温范围,若水温超过或低于所设置的水温范围,则会报警。

        其主要设计功能如下:

  • 采用LCD1602液晶显示、DS18B20防水型温度传感器测温,液晶显示当前的温度、温度上下限值和预约时间(单片机内部定时器)。
  • 带有红外遥控和手动按键双输入设置参数,更加方便快捷实用。可以显示和设置预约时间(min),可以随意设置预约多少分钟后开启热水器系统控制,这样更加智能和节能。按键可以设置水温的控制范围,五个按键功能:设置、加、减、确定、单独的是复位按键
  • 当温度低于下限的时候继电器吸合,待温度高于上限的时候继电器断开,继电器可以接负载;(默认没有负载,可以接加热管。)
  • 采用两个水位传感器和LM393电压比较器检测上、下水位功能,水少不加热并启动水位控制继电器(上)吸合模拟加水,当水加至水位上限时,继电器断开停止加水 。
  • 热水器工作加热和加水时有相应的指示灯(红灯代表缺水,黄灯代表加水,绿灯代表加热),整个系统有蜂鸣器提示音,实现声光提示;
  • 二.设计电路

            整体电路主要由51单片机最小系统,LCD1602显示屏电路,按键电路,加热继电器电路,DS18B20温度传感器,蜂鸣器报警电路,状态指示灯,遥控电路等组成;

            原理图如图:

            Protues仿真图如下:

     

    三.软件设计

    主程序源码

    void main()
    {
        Init1602();
        EA=1;//打开中断总开关
        IT1=1;//下降沿有效
        EX1=1;//外部中断1开
        ET1=1;//打开允许开关
        TMOD=0x01;//设置工作方式
        TL1=0x3c;
        TH1=0xb0;//赋初值
        TH0=0;//T0赋初值
        TL0=0;
        TR0=0;//t0开始计时
        check_wendu();
        delay(1000);
        bjd=99;
        bjx=0;                 //这两个变量的作用就是,防止温度大范围跳动造成加热设备误动作
        while(1)
        {    
            check_wendu();
            if(Mode==0)
            {    
                Display_1602(c,ds,sx,xx);
                if((xia==1)&&(shang==1)) //低于下限
                {
                     que=1;
                    shui=0;
                    jdq=1;
                }
                else
                {
                    que=0;
                }
                if((shang==0)&&(xia==0)) //高于上限
                {
                    shui=1;
                    if(flag_BJ==0)
                    flag_BJ=1;
                }
                if((shang==0)&&(xia==1)) //错误
                {
                    shui=1;
                    jdq=1;
                    Feng=0;
                    que=1;
                }
                if(flag==0)
                {
                    if((w<bjd)&&(w>bjx))
                    {
                        if(w>=sx)
                        {
                            jdq=1;
                            if(flag_BJ==0)
                            flag_BJ=1;
                        }
                        else if((w<xx)&&(que==0))      
                        {
                            jdq=0;
                            if(flag_BJ==0)
                            flag_BJ=1;
                        }
                        else
                        {
                            flag_BJ=0;
                            flag_off=1;
                        }
                        bjd=w+5;
                        bjx=w-5;
                    }
                }
            }
            Key();
            Alam();
        }
    }

    资料链接:https://pan.baidu.com/s/1eNvA3yXGEE65jYjc5VElGQ?pwd=rend 
    提取码:rend

    物联沃分享整理
    物联沃-IOTWORD物联网 » 智能热水器控制系统设计:基于51单片机

    发表评论