基于51单片机太阳能热水器
(仿真+程序)
功能介绍
具体功能:
1.LCD1602显示屏第一行显示温度,第二行显示温度下限;
2.按键可以设置温度的下限,控制出水;
3.当温度低于设置下限值,加热继电器吸合;
4.用两个开关模拟水位检测传感器,
当水位上下两传感器检测到没水时,继电器开始控制加水;
当水位上下两传感器检测到有水时,停止加水;
演示视频:
基于51单片机太阳能热水器设计
添加图片注释,不超过 140 字(可选)
程序
#include <reg52.h>
#include "lcd1602.h"
#include "ds18b20.h"
/***公众号:木子单片机****
************************************/
sbit BUZZ = P2 ^ 4; // 蜂鸣器
sbit KEY1 = P3 ^ 0; // 按键1
sbit KEY2 = P3 ^ 1; // 按键2
sbit KEY3 = P3 ^ 4; // 按键3
sbit Relay1=P3 ^ 6; // 加热继电器
sbit Relay2=P3 ^ 5; // 加水继电器
sbit Relay3=P3 ^ 3; // 出水继电器
sbit AlarmLed =P2^3; // 低水位指示灯
sbit SW1 =P2^5; // 高水位
sbit SW2 =P2^6; // 低水位
u16 Hvalue = 40; // 高温度
void Key(void)
{
if(KEY1 == 0) // 按键1按下
{
if(KEY1 == 0) // 按键1继续按下
{
delay(100); // 延时消抖
if(++Hvalue>= 80) // 最高温度加
{
Hvalue = 80;
}
while(!KEY1); // 按键1释放
}
}
if(KEY2 == 0) // 按键2按下
{
if(KEY2 == 0) // 按键2继续按下
{
delay(100); // 延时消抖
if(--Hvalue<= 1)
{
Hvalue = 1;
}
while(!KEY2); // 按键1释放
}
}
if(KEY3 == 0) // 按键3按下
{
if(KEY3 == 0) // 按键3继续按下
{
delay(100); // 延时消抖
Relay3=~Relay3;
while(!KEY3); // 按键3释放
}
}
}
硬件设计
使用元器件:
单片机:AT89C51;
(注意:单片机是通用的,无论51还是52、无论stc还是at都一样,引脚功能都一样。程序也是一样的。)
添加图片注释,不超过 140 字(可选)
设计资料
01仿真图
本设计使用proteus7.8和proteus8.9两个版本设计!具体如图!
添加图片注释,不超过 140 字(可选)
02程序
本设计使用软件keil5版本编程设计!具体如图!
添加图片注释,不超过 140 字(可选)
03设计资料
资料获取请关注同名公众号,全部资料包括仿真源文件 、程序(含注释)等。具体内容如下,全网最全! !
可以关注下方公众号!
点赞分享一起学习成长。