【单片机毕业设计】【mcuclub-jj-020】基于单片机的洗碗机的设计

news/2024/12/29 15:38:07/

       最近设计了一个项目基于单片机的洗碗机系统,与大家分享一下:

一、基本介绍

项目名:洗碗机
项目编号:mcuclub-jj-020
单片机类型:STC89C52
具体功能:
1、清洗过程:加水(5s)——加洗涤剂(3s)——加热(3s)——清洗(10s)——排水(5s)——加水(5s)——清洗(10s)——排水(5s)——加热烘干(3s)——消毒(3s)(6个继电器模拟)
2、通过DS18B20检测温度,若温度高于设定最大阈值,进行声光报警,并结束清洗
3、通过按键设置温度最大值、启停或直接结束清洗
4、通过显示屏显示测量值、当前清洗状态。
扩展功能:通过蓝牙模块将测量数据发送到手机端,并可以控制启停或直接结束清洗

二、51实物图

单片机型号:STC89C52

板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本上为插针式,个别降压芯片会使用贴片式。

供电接口:TYPE-C

 

三、51仿真图

仿真软件版本:proteus8.9

电路连线方式:网络标号连线方式

注意:部分实物元器件仿真中没有,仿真中会用其他工作原理相似的元件代替,这样可能导致实物程序和仿真程序不一样

 

 四、32实物图

单片机型号:STM32F103C8T6

板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本上为插针式,个别降压芯片会使用贴片式。

供电接口:TYPE-C

 

 五、原理图

软件版本:AD2013

电路连线方式:网络标号连线方式

注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构原理图

 

 六、PCB图

由原理图导出,封装很大一部分都是作者自己绘制,不提供封装库,只提供连接好的源文件。中间有一个项目编号,隐藏在单片机底座下,插入单片机后不会看到。

两层板,上下覆铜接地。

 

七、系统框图

本设计以单片机为核心控制器,加上其他模块一起组成此次设计洗碗机的整个系统,其中包括中控部分、输入部分和输出部分。中控部分采用了单片机控制器,其主要作用是获取输入部分的数据,经过内部处理,逻辑判断,最终控制输出部分。输入由三部分组成,第一部分是温度检测模块,通过该模块检测当前的水温;第二部分是按键模块,通过该模块可以切换界面、设置阈值、切换模式等;第三部分是供电模块,通过该模块可给整个系统进行供电。输出由三部分组成,第一部分是显示模块,通过该模块可以显示监测的数据以及设置的阈值;第二部分是继电器模块,通过六个继电器分别控制加水、加洗涤剂、加热、清洗、排水、消毒;第三部分是声光报警模块,检测到温度大于设置的温度最大值,进行声光报警。除此之外,蓝牙模块既作为输入又作为输出,蓝牙模块和手机进行连接,可以将监测的数据传输到用户手机端,用户也可以通过手机端发送指令控制继电器的工作及其模式的切换。具体系统框图如图所示。

 

 八、软件设计流程

系统的主流程图如图所示。在主程序中:首先对各个模块进行初始化,随后进入while主循环,在主循环中,首先进入第一个函数按键函数,该函数主要分为两部分,第一部分为调用按键扫描函数获取按键键值,第二部分通过键值进行相应的处理操作,包括切换界面、设置阈值等并可以将检测的数据传输到手机,用户也可以通过手机发送控制控制洗碗机是否工作;紧接着进入第二个函数监测函数,该函数主要通过调用相应的驱动函数获取测量值,并通过蓝牙模块将监测的数据传输到手机端,用户也可以通过手机端发送指令,设备根据用户发送的指令执行对应的处理;紧接着进入第三个函数显示函数,该函数显示监测值及阈值;最后进入第四个函数处理函数,温度过高停止工作,步骤0:第一次加水,步骤1:加洗涤剂 ,步骤2:第一次加热,步骤3:第一次清洗,步骤4:第一次排水,步骤3:第二次加水,步骤6:第二次清洗,步骤7:第二次排水,步骤8:第二次加热,步骤9:消毒,结束清洗,等待

 

 九、部分程序展示

软件版本:keil5

逻辑程序和驱动程序分开,分布于main.c和其他.c文件

void Manage_function(void)
{if(flag_display == 0){if(flag_timer_begin == 1)							//倒计时开始,每1s总时间-1{if(flag_1s == 1){flag_1s = 0;if(time_all != 0)time_all--;}}	if(temp_value > temp_max *10)					//温度过高停止工作{flag_step = 10;flag_begin = 0;if(time_num % 10 == 0){LED = ~LED;BEEP = ~BEEP;}}else{LED = 1;BEEP = 1;}		if(flag_begin == 1)										//洗碗机开始{flag_timer_begin = 1;switch(flag_step){case 0:														//步骤0:第一次加水				if(time_all > (time_heat*2 + time_level*1 + time_rinse*2 + time_drain*2 + time_disinfect+time_xidi)){RELAY_JS = 0;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 1;					}else{flag_step = 1;RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 1;		}break;case 1:														//步骤1:加洗涤剂	if(time_all > (time_heat*2 + time_level*1 + time_rinse*2 + time_drain*2 + time_disinfect))				{					RELAY_JS = 1;					RELAY_JXD = 0;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 1;	}else{flag_step = 2;RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 1;						}break;case 2:														//步骤2:第一次加热if(time_all > (time_heat*1 + time_level*1 + time_rinse*2 + time_drain*2 + time_disinfect))				{RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 0;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 1;	}else{flag_step = 3;RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 1;						}break;case 3:														//步骤3:第一次清洗if(time_all > (time_heat*1 + time_level*1 + time_rinse*1 + time_drain*2 + time_disinfect))				{RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 0;RELAY_PS = 1;RELAY_XD = 1;	}else{flag_step = 4;RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 1;						}break;case 4:														//步骤4:第一次排水if(time_all > (time_heat*1 + time_level*1 + time_rinse*1 + time_drain*1 + time_disinfect))				{RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 0;RELAY_XD = 1;	}else{flag_step = 5;RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 1;						}break;case 5:														//步骤3:第二次加水if(time_all > (time_heat*1 + time_rinse*1 + time_drain*1 + time_disinfect))				{RELAY_JS = 0;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 1;	}else{flag_step = 6;RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 1;						}break;	case 6:														//步骤6:第二次清洗if(time_all > (time_heat*1+ time_drain*1 + time_disinfect))				{RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 0;RELAY_PS = 1;RELAY_XD = 1;	}else{flag_step = 7;RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 1;						}break;				case 7:														//步骤7:第二次排水if(time_all > (time_heat*1 + time_disinfect))				{RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 0;RELAY_XD = 1;	}else{flag_step = 8;RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 1;						}break;case 8:														//步骤8:第二次加热if(time_all > (time_disinfect))				{RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 0;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 1;	}else{flag_step = 9;RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 1;						}break;case 9:														//步骤9:消毒if(time_all > 0)				{RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 0;	}else{flag_step = 10;RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 1;						}break;case 10:														//步骤10:结束清洗,等待RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 1;	time_all = time_heat*2 + time_level*2 + time_rinse*2 + time_drain*2 + time_disinfect+time_xidi;				//总时间=加水时间*2+加热时间*2+清洗时间*2+排水时间*2+消毒时间+洗涤剂时间flag_begin = 0;break;default:break;}}else{RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 1;					flag_timer_begin = 0;	}}else{flag_begin = 0;		LED = 1;BEEP = 1;RELAY_JS = 1;					RELAY_JXD = 1;RELAY_JR = 1;RELAY_QX = 1;RELAY_PS = 1;RELAY_XD = 1;			}
}

资料请点击跳转到官网下载


http://www.ppmy.cn/news/213284.html

相关文章

DevOps是软件研发的洗碗机

原创:Brian Kelly(2019年8月12日发表的一篇博客文章) 最近一篇博客文章突然爆火,许多敏捷、精益、DevOps大咖都在转发这篇文章。Brain Kelly通过洗碗这件事,通俗的解释了两个重要概念:Donald Reinertsen提出…

中国家用洗碗机行业竞争现状与营销策略分析报告2022-2028年版

中国家用洗碗机行业竞争现状与营销策略分析报告2022-2028年版 【报告目录】: 第1章:家用洗碗机行业综述及数据来源说明1.1 家用洗碗机行业界定 1.1.1 家用洗碗机行业界定 1.1.2 家用洗碗机行业相似概念辨析 1.1.3 《国民经济行业分类与代码》中家用洗碗机行…

【算法题】1717. 删除子字符串的最大得分

插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 坚持不懈,越努力越幸运,大家一起学习鸭~~~ 给你一个字符串 s 和两个整数 x 和 y 。你可以执行下面…

华为手环怎么没有上鸿蒙,不再是大号手环!华为鸿蒙手表来了:要和苹果抢生态?...

5月27日上午,华为终端官方微博官宣,WATCH 3腕上智慧,一表万象,旗舰归来,将于6月2日晚20:00与HarmonyOS、MatePad Pro 2等产品一同发布。 依靠手环的超高销量,华为、小米等企业发力,在智能穿戴领…

小米手环8和苹果S8哪款好 小米手环8和苹果S8区别

小米手环8是一款智能手环,主要功能包括计步、心率监测、睡眠分析、运动记录等。它的优点是价格比较实惠,而且功能全面,适合大多数人的需求。缺点是屏幕比较小,没有丰富的第三方应用支持。 而苹果S8是一款智能手表,除了…

鸿蒙os手环,华为鸿蒙OS2.0强势来袭,电脑、手环都有,唯独缺少手机!

华为在去年的HDC上发布了全新的HarmonyOS(鸿蒙OS),这个操作系统基于微内核,因此兼容性和安全性都比较高;全球首批采用鸿蒙OS的设备是来自于华为旗下的“智慧屏”,当然这个“智慧屏”实际上就是智能电视,不过搭载的是华…

小米和华为依靠低价手环在穿戴设备市场份额激增

市调机构Canalys发布的三季度全球穿戴设备市场的数据显示,前五强当中的小米和华为取得出货量快速增长,小米超越苹果成为全球最大穿戴设备企业,华为则击败Fitbit成为全球第三大穿戴设备企业。 Canalys的这份数据显示,三季度小米手环…

小米手环4怎么使用_小米手环4的实际使用情况如何?

老婆前两天买给我的,好蛋疼啊,她这是断了我买小米手表的念想啊… 体验?作为一个手环来说,我觉得它是相当不错的,作为一个腕间智能设备,除了手机以外,最近最直接的时间和信息显示工具&#xff0c…