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

审核编辑:汤梓红

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

    关注

    131

    文章

    5027

    浏览量

    146050
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620826
  • 超声波
    +关注

    关注

    63

    文章

    2808

    浏览量

    136710
  • 热水器
    +关注

    关注

    5

    文章

    204

    浏览量

    26514

原文标题:【毕业设计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单片机超声波测距(数码管显示)程序?

    51单片机超声波测距(数码管显示)程序/*超声波模块的TRIG管脚接在单片机的P20口,ECHO管脚接在
    发表于 07-06 08:12

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

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

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

    超声波测距小车资料链接:51单片机超声波测距.rar项目展示:仿真展示 :一、项目要求(一)项目内密本课题的主要内容是,将超声波传感
    发表于 07-20 06:20

    HC-SR04和51单片机是如何实现超声波测距的

    超声波测距原理是什么?怎样去编写超声波测距模块的源代码?HC-SR04和51单片机是如何实现超声波测距的?
    发表于 10-20 06:09

    利用51单片机实现的电热水器控制设计资料大合集

    端口控制输出继电器的动作,进而控制热水器的启闭。1.本系统主要由显示电路、键盘电路、输出控制电路三部分构成,分别实现对时间参数的人工自由设定、时间显示、输出控制功能。2.单片机选用AT89S51。3.
    发表于 11-10 08:24

    基于51单片机超声波测距系统的毕业设计

    基于51单片机超声波测距系统的毕业设计。
    发表于 05-11 13:49 61次下载

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

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

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

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

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

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

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

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