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

标题目录

  • 💫51单片机全自动洗衣机proteus仿真设计
    • 💫设计介绍
    • 💫仿真图
      • 电动机驱动模块电路设计
      • 电源模块电路设计
      • 控制按键
      • 进水阀和排水阀控制继电器
    • 💫程序设计
      • main函数
    • 💫设计报告
    • 💫资料清单&&下载链接
      • 网盘下载链接

💫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时对应的阀关闭。

img

💫程序设计

img

img

main函数

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;
	}
}

💫设计报告

在这里插入图片描述

💫资料清单&&下载链接

在这里插入图片描述

网盘下载链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/191605.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux(8):BASH

硬件、核心与 Shell 操作系统其实是一组软件,由于这组软件在控制整个硬件与管理系统的活动监测,如果这组软件能被用户随意的操作,若使用者应用不当,将会使得整个系统崩溃。因为操作系统管理的就是整个硬件功能。 应用程序在最外层…

光线追踪-Peter Shirley的RayTracingInOneWeekend系列教程(book1-book3)代码分章节整理

自己码完了一遍了,把代码分章节整理了一下,可以按章节独立编译,运行, 也可以直接下载编译好的release版本直接运行。 项目地址: Github: https://github.com/disini/RayTracingInOneWeekendChaptByChapt ​ ​ ​ ​

[C/C++]数据结构 堆的详解

一:概念 堆通常是一个可以被看做一棵完全二叉树的数组对象,它是一颗完全二叉树,堆存储的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并且需要满足每个父亲结点总小于其子节点(或者每个父亲结点总大于其子节点) 堆可以分为两种: 小堆: 任意一个父亲节点都小于其子…

C++前缀和算法:统计美丽子字符串

题目 给你一个字符串 s 和一个正整数 k 。 用 vowels 和 consonants 分别表示字符串中元音字母和辅音字母的数量。 如果某个字符串满足以下条件,则称其为 美丽字符串 : vowels consonants,即元音字母和辅音字母的数量相等。 (vowels * cons…

大语言模型损失函数详解

我们可以把语言模型分为两类: 自动回归式语言模型:自动回归式语言模型在本质上是单向的,也就是说,它只沿着一个方向阅读句子。正向(从左到右)预测;反向(从右到左)预测。…

Elasticsearch:LangChain 是什么?

当你将应用程序称为 “AI(人工智能)” 时,这通常意味着它包含与学习模型(例如大型语言模型,或 LLM)的交互。 [不那么]有趣的事实是,LLM 的使用实际上并不是使应用程序变得智能的原因。 它的特殊…

Linux中vi常用命令-批量替换

在日常服务器日志查看中常用到的命令有grep、tail等,有时想查看详细日志,用到vi命令,记录下来,方便查看。 操作文件:test.properites 一、查看与编辑 查看命令:vi 文件名 编辑命令:按键 i&…

【SAS Planet 下载地图瓦片-读取】

SAS Planet下载地图瓦片请看上一篇 详细介绍了下载方法 【SAS Planet 下载地图瓦片】-CSDN博客 准备工作: 1.提前下载好地图瓦片数据 SAS Planet下载地图瓦片默认存储路径如下 默认存储格式为 .sqlitedb 2.提前准备好 java开发环境和开发工具,新建 一个…

印度客户来访广东育菁装备考察桌面型数控机床

印度客户来访广东育菁装备考察桌面型数控机床,这是一个重要的商业活动,对于育菁装备来说,这是一个展示产品和技术实力,拓展国际市场的好机会。 在接待印度客户的过程中,育菁装备需要做好充分的准备,包括&am…

YOLOv8改进 | SAConv可切换空洞卷积(附修改后的C2f+Bottleneck)

论文地址:官方论文地址 代码地址:官方代码地址 一、本文介绍 本文给大家带来的改进机制是可切换的空洞卷积(Switchable Atrous Convolution, SAC)是一种创新的卷积网络机制,专为增强物体检测和分割任务中的特征提取而…

Linux socket编程(6):IO复用之select原理及例子

文章目录 1 五种I/O模型1.1 阻塞I/O模型1.2 非阻塞I/O模型1.3 I/O复用模型1.4 信号驱动I/O模型1.5 异步I/O模型 2 select函数3 select实战:实现多个套接字监听3.1 客户端3.2 服务端3.3 实验结果3.4 完整代码 在之前的网络编程中,我们遇到了一个问题&…

初识数据结构

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 熬过了我们不想要的生活&#xf…

RT-DETR论文阅读笔记(包括YOLO版本训练和官方版本训练)

论文地址:RT-DETR论文地址 代码地址:RT-DETR官方下载地址 大家如果想看更详细训练、推理、部署、验证等教程可以看我的另一篇博客里面有更详细的介绍 内容回顾:详解RT-DETR网络结构/数据集获取/环境搭建/训练/推理/验证/导出/部署 目录 一…

【计算机网络笔记】多路访问控制(MAC)协议——轮转访问MAC协议

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

HCIA-RS基础-RIP路由协议

前言: RIP路由协议是一种常用的距离矢量路由协议,广泛应用于小规模网络中。本文将详细介绍RIP路由协议的两个版本:RIPv1和RIPv2,并介绍RIP的常用配置命令。通过学习本文,您将能够掌握RIP协议的基本原理、RIPv1和RIPv2的…

软件工程期末复习(选择+填空+判断)

文章目录 软件工程期末复习一、 选择题 软件工程期末复习 一、 选择题 1.“软件危机”的表现不包括:(c) A、软件产品不能按期交付 B、用户对“已完成的”软件产品时常不满意 C、程序员越来越供不应求 D、软件项目难以管理,维护困…

Java Thread 介绍

线程是操作系统调度的最小单元, 也叫轻量级进程。它被包含在进程之中, 是进程中的实际运作单位。 同一进程可以创建多个线程, 每个线程都有自己独立的一块内存空间, 并且能够访问共享的内存变量。 1 线程的分类 在 Java 中, 线程可以分为 2 种 守护线程: 守护线程是为用户线程…

kali linux英文改中文

如果英语基础较好的同学可以不用调整 反之则需要 找到终端(就是输入命令的那个地方 如下)点击它出现命令终端 切换为root用户,命令为: sudo dpkg-reconfigure locales 然后回车 找到这个zh_CN 然后回车 鼠标下键选中并且回车 输…

耶鲁博弈论笔记

编辑记录: 1126:开个新坑,耶鲁大学的博弈论课程, 和专业相关不大,纯兴趣,尽量写好一点吧 1. 首先指出博弈论是一种研究策略形式的方法,对于经济学中,完全竞争市场只能被动接受均衡…

IT问题解答类型网站源码

问答网是一款为IT工程师提供的问答平台,旨在帮助用户在线获取专业知识和相关问题的答案。在问答网,用户可以轻松找到其他人的问答问题,并在这里寻求解答。如果您有任何想要解决的问题,都可以在此发布问题并得到其他同行的解答。 …
最新文章