基于51单片机的全自动洗衣机proteus仿真设计

标题目录

💫51单片机全自动洗衣机proteus仿真设计

(程序+仿真+设计报告+讲解视频)

仿真原版本:proteus 7.8

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0025

💫设计介绍

1、按键功能:

(1)通过"K1"键步进改变"标准、经济、单独、排水"四种方式,执行相应的程序。对应指示灯亮。

(2)通过"K2"键步进改变"强洗、弱洗"两种方式,执行相应的程序,对应指示灯亮。

(3)通过"K3"键控制洗衣机运行、暂停和解除报警功能。

2、方式功能选择:

一般洗衣机的步骤为:洗涤,漂洗,脱水,当处于某种状态时,对应的指示灯以0.7S周期闪烁,当洗衣机在洗涤过程中,洗涤指示灯闪烁。

可以通过方式选择设定具体的运行过程。

(1)标准方式:进水---> 洗涤 ---> 排水 ---> 进水 ---> 漂洗 ---> 排水 --->进水 ---> 漂洗---> 排水 ---> 脱水。

(2)经济方式:进水 ---> 洗涤 ---> 排水 ---> 进水 ---> 漂洗 ---> 排水 ---> 脱水。

(3)单独方式:进水 ---> 洗涤。

(4)排水方式:排水 ---> 脱水。

(5)强洗即电动机转速快,弱洗即电动机转速慢。

3、整机功能:

(1)开机默认状态为标准方式、强洗。

(2)在洗涤和漂洗过程中,电动机正转一次,反转一次,连续运行。

(3)在进水和脱水过程中,相应的指示灯亮,继电器吸合。

(4)当执行某个步骤时,只有"K3"键有效,按下暂停,再按恢复运行。

💫仿真图

电动机驱动模块电路设计

电动机驱动采用LD298电动机驱动芯片,单片机P25、P24与L298的IN1、IN2分别对应相连,ENA直接接VCC,后面所加4个二极管VD3到VD6起连续作用。电动机驱动电路原理图如图二所示。

电源模块电路设计

电动机驱动芯片的电源VCC和VS之间通过0欧的电阻R20进行隔离后,对LD298进行供电。

控制按键

如图二所示,K3键接到单片机的外部中断0,通过中断实现运行、暂停、继续运行的控制功能,当K3键第一次按下时(num2=1)正常运行,当K3键第二次按下时(num2=2)暂停运行。

进水阀和排水阀控制继电器

如图二所示,单片机的P23用来控制排水阀继电器,P22用来控制进水阀继电器,P22和P23对应输出为0时对应的阀打开,输出为1时对应的阀关闭。

💫程序设计

main函数

c 复制代码
void main()
{
	init();
	while(1)
	{
		key();		   //键扫描
		if((num1==0&&num==0)&&circle==1)	//标准 强洗 
		{
			ledruoxi=1;   //关闭弱洗LED
			ledpaishui=1; //关闭排水LED
			ledbiaozhun=0;//强标准LED亮	
			ledqiangxi=0; //强洗LED亮
			if(num2==1)
			{
				qbiaozhun(); //强标准洗
			}
			if(num2>1)		 //K3键按下次数为2,暂停洗涤
			{
				;	   
			}
			circle=0;
		}
		if(num1==0&&num==1)	 //经济 强洗
		{
			ledruoxi=1;	   
			ledbiaozhun=1;
			ledqiangxi=0;
			ledjingji=0;
			if(num2==1)
			{
				qjingji();	//强经济洗
				ledjingji=1;
			}
			circle=0;
		}
		if(num1==0&&num==2)	 //单独 强洗 
		{
			ledruoxi=1;
			ledjingji=1;
			ledqiangxi=0;
			leddandu=0;
			if(num2==1)
			{
				qdandu(); //强单独洗
				leddandu=1;
			}
			circle=0;
		}
		if(num1==0&&num==3)
		{
			ledruoxi=1;	  //排水 强洗
			leddandu=1;
			ledqiangxi=0;
			ledpaishui=0;
			if(num2==1)
			{
				dpaishui();	//单排水
				ledpaishui=1;
			}
			circle=0;
		}
		if(num1==1&&num==0)	  //弱 标准
		{
			ledqiangxi=1;
			ledpaishui=1;
			ledruoxi=0;
			ledbiaozhun=0;
			if(num2==1)
			{
				rbiaozhun(); //弱标准洗
				ledruoxi=1;
			}
			circle=0;
		}
		if(num1==1&&num==1)	 //弱经济
		{
			ledqiangxi=1;
			ledbiaozhun=1;
			ledruoxi=0;
			ledjingji=0;
			if(num2==1)
			{
				rjingji();	//弱经济洗
				ledruoxi=1;
				ledjingji=1;
			}
			circle=0;
		}
		if(num1==1&&num==2)
		{
			ledqiangxi=1;
			ledjingji=1;
			ledruoxi=0;
			leddandu=0;
			if(num2==1)
			{
				rdandu();	//弱单独洗
				ledruoxi=1;
				leddandu=1;
			}
			circle=0;
		}
		if(num1==1&&num==3)
		{
			ledqiangxi=1;
			leddandu=1;
			ledruoxi=0;
			ledpaishui=0;
			if(num2==1)	//K3键
			{
				dpaishui();	 //单排水
				ledpaishui=1;
			}
			circle=0;
		}
		num2=0;
	}
}

💫设计报告

💫资料清单&&下载链接

网盘下载链接

相关推荐
创码小奇客4 小时前
MongoDB 聚合操作,有手就行?
mysql·mongodb·trae
Despacito0o7 小时前
FreeRTOS二值信号量详解与实战教程
驱动开发·stm32·单片机·嵌入式硬件·mcu·51单片机·嵌入式实时数据库
瓢儿菜201810 小时前
proteus 仿真串口 安装配置虚拟软件
单片机·proteus·仿真·虚拟串口配置
ZLG_zhiyuan13 小时前
ZIO系列插板式电机驱动&I/O模组,按需灵活设计您的I/O系统
51单片机
Wythzhfrey1 天前
单片机Day05---静态数码管
c语言·单片机·嵌入式硬件·学习·c#·51单片机
Despacito0o2 天前
FreeRTOS教程 - 任务间通信:使用队列(Queue)
驱动开发·stm32·单片机·嵌入式硬件·51单片机·freertos·嵌入式实时数据库
剑鞘的流苏2 天前
硬件电路设计之51单片机(2)
单片机·嵌入式硬件·51单片机
手揽回忆怎么睡2 天前
mongodb学习
数据库·学习·mongodb
pursue.dreams2 天前
Windows 下 MongoDB ZIP 版本安装指南
数据库·windows·mongodb
是大强2 天前
mongodb 远程访问
数据库·mongodb