0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于51单片机的超声波智能热水器设计

精通单片机与嵌入式 来源:精通单片机与嵌入式 2023-09-06 11:19 次阅读

功能

本设计采用51单片机+DS18B20温度传感器+数码管显示+继电器+功能按键组成。DS18B20温度传感器检测水温并将水温信息转换成电信号传送给单片机,单片机将得到的数据进行处理、显示与控制。上电后数码管显示当前的水温温度,通过按键可设置水温值,当检测到的水温低于设置的水温值时,继电器吸合接通外部加热装置,使水温达到设定水温值。当水温值超过设定水温值时,继电器断开,停止加热。温度检测精确到0.1度。并具有掉电保存功能,数据保存在单片机内部EEPOM中,按键还具有连加、减功能。

原理图

18f1e448-4c41-11ee-a25d-92fbcf53809c.png

PCB

193d435c-4c41-11ee-a25d-92fbcf53809c.png

程序源码

#include            //调用单片机头文件
#define uchar unsigned char  //无符号字符型 宏定义  变量范围0~255
#define uint  unsigned int   //无符号整型 宏定义  变量范围0~65535
#include 


sbit dq   = P1^5;  //18b20 IO口的定义
sbit beep = P1^4;   //蜂鸣器IO口定义


uint temperature ;  //
bit flag_300ms ;


bit flag_lj_en;     //按键连加使能
bit flag_lj_3_en;   //按键连3次连加后使能  加的数就越大了 
uchar key_time,key_value;      //用做连加的中间变量
bit key_500ms  ;


sbit relay1 = P1^6;  //加热继电器IO口定义
sbit relay2 = P1^3;  //加水继电器IO口定义


uchar code table_num[]="0123456789abcdefg";


sbit rs=P1^0;   //寄存器选择信号 H:数据寄存器    L:指令寄存器
sbit rw=P1^1;   //寄存器选择信号 H:数据寄存器    L:指令寄存器
sbit e =P1^2;   //片选信号   下降沿触发






/****************主函数***************/
void main()
{  
  beep = 0;                    //开机叫一声   
  delay_1ms(150);
  P0 = P1 = P2 = P3 = 0xff;
  init_1602();                    //1602初始化
  time_init();                    //初始化定时器 
  while(1)
  {
    if(flag_300ms == 1)          //300ms 处理一次温度程序
    {  
      flag_300ms = 0;  
      temperature = read_temp();  //先读出温度的值
      shuiwei_dis() ;   //水位显示
      send_wave();  //测距离函数
      clock_h_l();            //报警函数
      write_sfm3_18B20(1,8,temperature);
      dingshi_dis();  //定时控制
      if(distance > 10 + sw_jz)  //说明水位出错
      {
        beep = 1;
        write_string(2,8,"--.-m");      
      }else 
      {
        if(sw_jz >= distance)
        {
          shuiwei = sw_jz - distance;    //计算出液位
        }else 
          shuiwei = 0;  
        write_sfm3(2,8,shuiwei);          
      }  
    }
    key();          //按键程序
     key_with();          //设置报警温度  
   }
}


/*************定时器0中断服务程序***************/
void time0_int() interrupt 1
{  
  static uchar value;
  TH0 = 0x3c;
  TL0 = 0xb0;     // 50ms
  value ++;   
  if(value % 6 == 0)
  {
    flag_300ms = 1;     //300ms
    value = 0;
  }
  if(flag_lj_en == 1)     //按下按键使能
  {
    key_time ++;
    if(key_time >= 10) //500ms
    {
      key_time = 0;
      key_500ms = 1; //500ms
      key_value ++;
      if(key_value > 3)
      {
        key_value = 10;
        flag_lj_3_en = 1; //3次后1.5秒连加大些
      }            
    }
  }
}

元器件清单

19898f1e-4c41-11ee-a25d-92fbcf53809c.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 继电器
    +关注

    关注

    132

    文章

    5319

    浏览量

    148521
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632695
  • 超声波
    +关注

    关注

    63

    文章

    2985

    浏览量

    138203
  • 热水器
    +关注

    关注

    5

    文章

    214

    浏览量

    27056

原文标题:【毕业设计008】基于51单片机的超声波智能热水器(源代码、原理图、参考论文、调试步骤、答辩解答等)

文章出处:【微信号:精通单片机与嵌入式,微信公众号:精通单片机与嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于51单片机超声波测距系统

    250CM之间。误差:1%。距离显示:用三位LED数码管进行显示(单位是CM)。该接收电路结构简单,性能较好。 硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波接收电路三部分。
    发表于 03-25 10:21

    基于AT89S51单片机智能超声波避障小车

    基于AT89S51单片机智能超声波避障小车
    发表于 08-20 22:21

    超声波单片机超声波单片机超声波单片机超声波单片机超声波单片机超声波

    单片机超声波单片机超声波单片机超声波单片机
    发表于 04-14 23:51

    51单片机超声波程序

    各位大佬,求51单片机超声波程序
    发表于 07-08 16:50

    基于51单片机超声波测距设计与实现

    51单片机超声波测距设计与实现
    发表于 04-24 19:34

    怎样去设计一种基于51单片机超声波避障小车

    模块(hc-sr04)、L293D电机驱动和直流减速电机。这样配合51单片机的控制,小车可以完成自主避障功能。超声波模块此图为Proteus 8 提供的
    发表于 07-20 07:17

    51单片机超声波测距串口显示

    51单片机串口显示超声波测距程序,里面有定义的接口。
    发表于 03-28 16:47 12次下载

    基于51单片机超声波测距设计

    基于51单片机超声波测距设计,(附源程序).doc。
    发表于 05-11 13:49 72次下载

    51单片机超声波测距仿真与分析

    51单片机超声波测距仿真与分析
    发表于 09-04 08:49 29次下载

    基于51单片机超声波测距模块设计

    超声波测距的模块,51单片机接上12864液晶,HC-SR04超声波模块,就可以了,具体程序没怎么看,超声波模块的硬件也不晓得。
    发表于 12-10 16:33 6938次阅读

    51单片机驱动超声波测距模块

    51单片机驱动超声波测距模块(单片机最小系统)-使用51单片机驱动
    发表于 07-22 10:01 61次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>驱动<b class='flag-5'>超声波</b>测距模块

    基于51单片机超声波测距的制作

    基于51单片机超声波测距的制作(郭天祥十天学会单片机)-该文档为基于51
    发表于 07-22 11:09 25次下载
    基于<b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>超声波</b>测距<b class='flag-5'>器</b>的制作

    基于某51单片机超声波智能避障小车论文设计

    基于某51单片机超声波智能避障小车论文设计(电动机的单片机控制)-该文档为基于某51
    发表于 07-22 11:58 59次下载
    基于某<b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>超声波</b><b class='flag-5'>智能</b>避障小车论文设计

    基于单片机超声波测距

    设计简介:本设计是基于单片机超声波测距系统,主要实现以下功能:可通过LCD1602显示温度、距离和最小距离; 可通过按键设置最小距离; 可通过蜂鸣器和LED进行不同频率的声光报警;标签:51
    发表于 11-12 15:06 41次下载
    基于<b class='flag-5'>单片机</b>的<b class='flag-5'>超声波</b>测距

    如何利用51单片机实现一种超声波测距功能呢

    利用51单片机实现超声波测距功能,利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时
    发表于 08-17 18:04 2999次阅读
    如何利用<b class='flag-5'>51</b><b class='flag-5'>单片机</b>实现一种<b class='flag-5'>超声波</b>测距功能呢