功能
本设计采用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秒连加大些 } } } }
元器件清单
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
继电器
+关注
关注
132文章
5319浏览量
148521 -
单片机
+关注
关注
6032文章
44513浏览量
632695 -
超声波
+关注
关注
63文章
2985浏览量
138203 -
热水器
+关注
关注
5文章
214浏览量
27056
原文标题:【毕业设计008】基于51单片机的超声波智能热水器(源代码、原理图、参考论文、调试步骤、答辩解答等)
文章出处:【微信号:精通单片机与嵌入式,微信公众号:精通单片机与嵌入式】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
基于51单片机的超声波测距系统
250CM之间。误差:1%。距离显示:用三位LED数码管进行显示(单位是CM)。该接收电路结构简单,性能较好。 硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波接收电路三部分。
发表于 03-25 10:21
怎样去设计一种基于51单片机的超声波避障小车
模块(hc-sr04)、L293D电机驱动器和直流减速电机。这样配合51单片机的控制,小车可以完成自主避障功能。超声波模块此图为Proteus 8 提供的
发表于 07-20 07:17
基于51单片机的超声波测距模块设计
超声波测距的模块,51单片机接上12864液晶,HC-SR04超声波模块,就可以了,具体程序没怎么看,超声波模块的硬件也不晓得。
发表于 12-10 16:33
•6938次阅读
基于单片机的超声波测距
设计简介:本设计是基于单片机的超声波测距系统,主要实现以下功能:可通过LCD1602显示温度、距离和最小距离; 可通过按键设置最小距离; 可通过蜂鸣器和LED进行不同频率的声光报警;标签:51
发表于 11-12 15:06
•41次下载
评论