功能
本设计采用51单片机+DS18B20温度传感器+数码管显示+继电器+功能按键组成。DS18B20温度传感器检测水温并将水温信息转换成电信号传送给单片机,单片机将得到的数据进行处理、显示与控制。上电后数码管显示当前的水温温度,通过按键可设置水温值,当检测到的水温低于设置的水温值时,继电器吸合接通外部加热装置,使水温达到设定水温值。当水温值超过设定水温值时,继电器断开,停止加热。温度检测精确到0.1度。并具有掉电保存功能,数据保存在单片机内部EEPOM中,按键还具有连加、减功能。
原理图
PCB图
程序源码
#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秒连加大些 } } } }
元器件清单
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
继电器
+关注
关注
131文章
5027浏览量
146050 -
单片机
+关注
关注
6001文章
43973浏览量
620826 -
超声波
+关注
关注
63文章
2808浏览量
136710 -
热水器
+关注
关注
5文章
204浏览量
26514
原文标题:【毕业设计008】基于51单片机的超声波智能热水器(源代码、原理图、参考论文、调试步骤、答辩解答等)
文章出处:【微信号:精通单片机与嵌入式,微信公众号:精通单片机与嵌入式】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
基于51单片机的超声波测距系统
250CM之间。误差:1%。距离显示:用三位LED数码管进行显示(单位是CM)。该接收电路结构简单,性能较好。 硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波接收电路三部分。
发表于 03-25 10:21
怎样去设计一种基于51单片机的超声波避障小车
模块(hc-sr04)、L293D电机驱动器和直流减速电机。这样配合51单片机的控制,小车可以完成自主避障功能。超声波模块此图为Proteus 8 提供的
发表于 07-20 07:17
怎样去设计一种基于51单片机的超声波测距小车
超声波测距小车资料链接:51单片机超声波测距.rar项目展示:仿真展示 :一、项目要求(一)项目内密本课题的主要内容是,将超声波传感
发表于 07-20 06:20
利用51单片机实现的电热水器控制器设计资料大合集
端口控制输出继电器的动作,进而控制热水器的启闭。1.本系统主要由显示电路、键盘电路、输出控制电路三部分构成,分别实现对时间参数的人工自由设定、时间显示、输出控制功能。2.单片机选用AT89S51。3.
发表于 11-10 08:24
评论