51单片机的智能饮水机控制系统【proteus仿真+程序+报告+原理图】

1、主要功能

该系统由AT89C51单片机+LCD1602模块+DS18B20温度传感器模块+DS1302时间模块+继电器驱动模块+电位器模块构成。适用于智能饮水机智能水杯等相似项目。

可实现功能:
版本一:
1、LCD1602实时显示时间、水杯温度、水位高度、是否出水
2、DS18B20采集水杯温度数据
3、DS1302采集时间数据
4、超声波检测,靠近一定范围自动感应出水
6、水温和水位超过下限时声光报警,对应继电器闭合,自动加热/加水
7、可以通过按键手动加热、加水、清洗
8、可选择冷热水

版本二:
加入模拟GMS、蓝牙、上位机等模块的上传数据功能,按键按下上传实时的温度数据,已加注释,可以手动更改需要上传的数据内容。

2、仿真

protues 仿真使用的是8.10版本,由于该软件版本迭代原因,不能确保其他版本软件能够正常运行,请安装好对应软件(版本一致或者高于这个版本都可以)

版本一:
在这里插入图片描述
版本二:
在这里插入图片描述

3、程序代码

附上部分代码,仅供参考。

在这里插入图片描述

/* 按键控制 */
void KEY_Control(void)
{
	  if(key_scan() == 1)	//加水
		{
			add_flag =!add_flag;
			ADD_Water =!ADD_Water;	
			di();		
		}
		if(key_scan() == 2)	//清洗
		{
			CLEAN =!CLEAN;	
			di();	
		}
		if(key_scan() == 3)	//加热
		{
			HOT =!HOT;	
			di();		
		}
		if(key_scan() == 4)	//冷热水切换
		{
			LED3 =!LED3;	
			di();		
		}
}
/* 主函数 */
void main(void)
{ 	
  	TMOD = 0x11;	//配置定时器0为工作方式1,定时器1位工作方式1
	TH0 = 0;
  	TL0 = 0;
	TH1 = 0x0EC;	//定时5ms
  	TL1 = 0x78;
	EA = 1;			//打开总中断
	ET1 = 1;		//打开定时器0中断
	TR1 = 1;		//打开定时器1
  	TR0 = 0;		//打开定时器0

	L1602_init();	//屏幕初始化
	date_init();	//时间初始化
	Ds1302ReadTime();//读取时间
	TIME[0]&=0X7F;
	Ds1302Init();	//DS1302初始化
	
	while(1)
	{		
		display_shuiwei();		//显示水位
		Ds1302ReadTime();			//读取时间
		display_time();				//显示时间
		display_temp();				//显示水杯水温
		if(key_scan() !=0)		//判断是否按下按键
		{			
		 	KEY_Control();			//进行对应按键控制
		}	
		count_instance();							//超声波测算距离,判断是否自动出水		
	}			
}

4、原理图

在这里插入图片描述

5、常见问题汇总

里面包含了我对各个模块的详细解析,可以结合代码一起理解。(不定时更新,讲解模块也会越来越多)

在这里插入图片描述

6、资源获取在这里插入图片描述

扫描如下二维码,后台回复"51智能饮水机"获取~
项目没有开源,浅浅一杯奶茶💴,支持答疑~
希望可以对你有所帮助哈!

评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值