基于51单片机多功能洗衣机控制(强洗弱洗漂洗)设计( proteus仿真+程序+设计报告+原理图+讲解视频)
基于51单片机多功能洗衣机控制(强洗弱洗漂洗)设计( proteus仿真+程序+设计报告+原理图+讲解视频)
多功能洗衣机控制-强洗弱洗漂洗
- 1. 主要功能:
- 2. 讲解视频:
- 3. 仿真设计
- 4. 程序代码
- 5. 设计报告
- 6. 原理图
- 7. 设计资料内容清单
- 资料下载链接:
仿真图proteus7.8及以上
程序编译器:keil 4/keil 5
编程语言:C语言
设计编号:S0077
1. 主要功能:
基于51单片机的洗衣机多功能控制面板proteus仿真设计。
1、通过直流电机的转速体现三种不同洗衣方式,弱洗、强洗、漂洗;
2、用三个独立按键设置待洗衣物的不同洗涤方式:
丝质衣服:漂洗定时3分钟
棉质衣服:弱洗2分钟;强洗5分钟;漂洗3分钟;
化纤衣服:强洗4分钟;漂洗2分钟;
3、定时时间到,或者中途按下停止键,蜂鸣器报警提示;
4、数码管显示定时时间;
需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

2. 讲解视频:
讲解视频包含仿真运行讲解和代码讲解
3. 仿真设计
打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。通过按键选择模式,化纤模式下启动开始六分钟倒计时,化纤衣服下强洗4分钟;漂洗2分钟。

通过按键选择棉质模式,开始十分钟倒计时。棉质衣服:弱洗2分钟;强洗5分钟;漂洗3分钟;

通过按键选择丝质模式,开始十分钟倒计时。丝质模式漂洗定时3分钟;
定时时间到,或者中途按下停止键,蜂鸣器报警提示;数码管显示定时时间。
4. 程序代码
使用keil4或者keil5编译,代码有注释,可以结合视频理解代码含义。
#include "reg51.h"#define uchar unsigned char
#define uint unsigned int
sbit k1=P3^0;//按钮
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^3;
sbit k5=P3^4;
sbit out=P1^0;
sbit beep=P2^4;//蜂鸣器
sbit led1=P3^5;//洗涤强度指示
sbit led2=P3^6;
sbit led3=P3^7;
sbit led4=P2^5;//洗涤模式
sbit led5=P2^6;
sbit led6=P2^7;
sbit led7=P1^7;//启停
sbit smg1=P2^0;//数码管
sbit smg2=P2^1;
sbit smg3=P2^2;
sbit smg4=P2^3;uchar code smgduan0[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9,无小数点
uchar code smgduan1[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//显示0~9,有小数点
//丝质silk,棉质Cotton,化纤Chemical fiber
uchar time=0,miao=0,fen=0;//时间
uchar start=0,mode=0,sec=0;void disp();//函数声明
// 定义输出PWM信号的函数,参数k用于区分弱洗、强洗和漂洗模式
void pwm(uchar k)//弱洗、强洗、漂洗;
{uchar i;// 循环99次,模拟不同阶段的电机转速控制for(i = 0; i < 99; i++){// 根据k值判断当前处于哪种洗涤模式,并相应设置电机输出(out)if(k == 1) // 若为弱洗模式{if(i < 30) // 当计数i小于30时,电机低速运行(out=0)out = 0;else // 否则电机高速运行(out=1)out = 1;}else if(k == 2) // 若为强洗模式{if(i < 50) // 当计数i小于50时,电机低速运行(out=0)out = 0;else // 否则电机高速运行(out=1)out = 1;}else if(k == 3) // 若为漂洗模式{if(i < 10) // 当计数i小于10时,电机低速运行(out=0)out = 0;else // 否则电机高速运行(out=1)out = 1;}// 调用disp()函数显示当前时间disp();}
}
//延时
void delay(uint i)
{while(i--);
}
//显示
void disp()
{P0 = smgduan0[fen / 10]; // 显示分钟的十位数字smg1 = 0; // 清除数码管段选信号delay(10); // 延迟一段时间以实现分段显示效果smg1 = 1; // 设置数码管段选信号P0 = smgduan1[fen % 10]; // 显示分钟的个位数字smg2 = 0; // 清除数码管段选信号delay(10);smg2 = 1; // 设置数码管段选信号P0 = smgduan0[miao / 10]; // 显示秒的十位数字smg3 = 0; // 清除数码管段选信号delay(10);smg3 = 1; // 设置数码管段选信号P0 = smgduan0[miao % 10]; // 显示秒的个位数字smg4 = 0; // 清除数码管段选信号delay(10);smg4 = 1; // 设置数码管段选信号
}
//主函数
void main()
{ TMOD|=0X01;//初始化定时器TH0=0X3C;TL0=0XB0; ET0=1;//打开定时器0中断允许EA=1;//打开总中断TR0=1;//打开定时器while(1)完整代码见文章末尾压缩包{disp();//显示时间if(!k1)//丝质{mode=0;} if(!k2)//棉质{mode=1;}if(!k3)//化纤{mode=2;}if(!k4)//启动{start=1;beep = 1; }if(!k5)//停止{start=0;fen=0;miao=0;beep = 1;sec = 0;}if(start==1)//如果启动标志start为1,则执行相应的洗涤操作{if(mode==0)//丝质,漂洗定时3分钟{fen=3;miao=0;led1=1;led2=1;led3=0;while((fen>0)||(miao>0)){pwm(3);if(!k5)//停止{start=0;break;} }sec=30;start=0;}}
}// 定义定时器0的中断服务程序,当定时器0产生中断时,该函数会被调用
void Timer0() interrupt 1
{// 检查时间计数变量time是否小于10(这里设置的是每过约10个计数值表示1秒)if(time < 10){// 如果time未满1秒,则将其加1,继续累计时间time++;}else{// 当累积到1秒后,重置time为0,并开始处理倒计时逻辑time = 0;// 检查当前秒数miao是否大于0,如果是,则进行倒计时操作,减去1秒if(miao > 0)miao--;// 当miao减至0时,检查分钟数fen是否大于0else{// 若fen大于0,则分钟数减少1,并将miao重新设定为59秒miao = 59;if(fen > 0)fen--;// 若fen也已减至0,则清零miaoelse{miao = 0;}}// 根据start标志判断是否正在启动状态if(start == 1) {// 若处于启动状态,关闭led7(可能表示某种运行指示灯)led7 = 0;}else{// 若不在启动状态,则打开led7led7 = 1;}// 显示当前工作模式// mode=0时显示对应LED组合if(mode == 0){led4 = 0; // 设置led4的状态led5 = 1; // 设置led5的状态led6 = 1; // 设置led6的状态}// mode=1时显示另一组LED组合if(mode == 1){led4 = 1; // 设置led4的状态led5 = 0; // 设置led5的状态led6 = 1; // 设置led6的状态}// mode=2时显示最后一组LED组合if(mode == 2){led4 = 1; // 设置led4的状态led5 = 1; // 设置led5的状态led6 = 0; // 设置led6的状态}// 蜂鸣器控制部分// 检查蜂鸣器延时计数器sec是否大于0if(sec > 1){// 如果sec大于0,则减1并关闭蜂鸣器(beep=0)sec--;beep = 0;} else if(sec==1) {// 若sec已经减至1,则开启蜂鸣器(beep=1)beep = 1;}// 重新加载定时器0的初值,以维持固定的中断频率(这里是设置成大约1秒的周期)TH0 = 0X3C;TL0 = 0XB0;}
}
5. 设计报告
6098字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等

通过Proteus仿真平台的强大功能,我们能够进行全方位的功能验证与性能测试,使学生能够在虚拟环境中实现对整个系统的硬件电路设计、软件编程及系统集成的全过程演练。此过程不仅能帮助学生深入理解单片机系统在实际家电产品中的具体应用方式和工作原理,还为他们提供了宝贵的实践机会,可以锻炼并提升硬件电路设计、信号处理、嵌入式编程、实时控制算法开发等方面的专业技能。
同时,本设计项目强调理论与实践相结合的教学方法,鼓励学生自主探究,激发创新思维,通过解决实际问题来积累工程实践经验。因此,完成此项目后,学生们不仅能掌握单片机系统在智能家电领域的具体应用,还能全面提升自身的综合设计能力和实际动手能力,为未来从事相关领域的工作或研究奠定坚实的基础。
6. 原理图
原理图使用AD绘制,可供实物参考,仿真不同于实物,需要调试经验才能做出来。

Proteus仿真和实物作品的区别:
1.运行环境:Proteus仿真是在计算机上运行的,而实物则是在硬件电路板上运行。
2.调试方式:在Proteus仿真中,可以方便地进行单步调试和观察变量值的变化,而在实物中则需要通过调试器或者串口输出等方式进行调试。
电路连接方式:在Proteus仿真中,可以通过软件设置进行电路连接的修改,而在实物中则需要通过硬件电路板和连接线进行修改。
3.运行速度:Proteus仿真通常比实物运行速度快,因为仿真是基于计算机运行的,而实物则需要考虑电路板上的物理限制和器件的响应时间等因素。
4.功能实现:在Proteus仿真中,可以通过软件设置实现不同的功能,而在实物中则需要根据电路设计和器件的性能进行实现。
7. 设计资料内容清单
资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

0、常见使用问题及解决方法–必读!!!!
1、程序代码注释
2、proteus仿真
3、功能要求
4、软硬件流程图
5、开题报告
6、设计报告
7、原理图
8、讲解视频
Altium Designer 安装破解
KEIL+proteus 单片机仿真设计教程
KEIL安装破解
Proteus元器件查找
Proteus安装
Proteus简易使用教程
单片机学习资料
相关数据手册
答辩技巧
设计报告常用描述
鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url
资料下载链接:
https://docs.qq.com/doc/DS29EdFdqUVVHWWFJ
相关文章:
基于51单片机多功能洗衣机控制(强洗弱洗漂洗)设计( proteus仿真+程序+设计报告+原理图+讲解视频)
基于51单片机多功能洗衣机控制(强洗弱洗漂洗)设计( proteus仿真程序设计报告原理图讲解视频) 多功能洗衣机控制-强洗弱洗漂洗 1. 主要功能:2. 讲解视频:3. 仿真设计4. 程序代码5. 设计报告6. 原理图7. 设计资料内容清单资料下载链接…...
CVP(ChatGPT、Vector Database和Prompt)
CVP实际上指的是ChatGPT、Vector Database和Prompt的结合,这是一种新型的技术栈,用于构建智能应用。 首先,我们来看这三个组成部分: ChatGPT:这是一个强大的语言模型,它能够理解并生成自然语言文本。Chat…...
c语言-----数组知识汇总
前言 本文为我学习数组知识点之后,对c语言的数组部分进行的知识点汇总。 简单数组介绍 简单来说,数组就是一个数据组,像一个箱子,里面放有多个数据。 [1,2,3,4,5] 数组的定义 基础定义 语法: 数据类型 数组名[数组…...
【游戏开发之热更新技术】
游戏开发之热更新技术 热更新技术是指在不重新发布和安装应用的情况下,对已部署的应用程序进行更新和修补的技术。这种技术在现代软件开发中变得越来越重要,因为它能够为用户提供更加及时的服务和更好的体验。以下是一篇关于热更新技术的文章࿰…...
小红的白色字符串
题目描述 小红拿到了一个字符串,她准备将一些字母变成白色,变成白色的字母看上去就和空格一样,这样字符串就变成了一些单词。 现在小红希望,每个单词都满足以下两种情况中的一种: 1.开头第一个大写,其余为…...
Python+Django+Html网页版人脸识别考勤打卡系统
程序示例精选 PythonDjangoHtml人脸识别考勤打卡系统 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《PythonDjangoHtml网页版人脸识别考勤打卡系统》编写代码,代码整洁…...
第1章、react基础知识;
一、react学习前期准备; 1、基本概念; 前期的知识准备: 1.javascript、html、css; 2.构建工具:Webpack:https://yunp.top/init/p/v/1 3.安装node:npm:https://yunp.top/init/p/v/1 …...
物联网会用到哪些数据开发
物联网(IoT)涉及大量的设备和传感器,产生的数据种类繁多,因此在物联网领域进行数据开发时,可能涉及以下几个方面: 数据采集与存储: 设备数据采集:从各种传感器和设备中采集数据&…...
[Linux]一篇文章带你搞定软硬连接
阅读导览: 先在windows中先见见软硬连接从名字、inode等方面分析软硬连接如何实现软硬连接硬链接注意事项软硬链接都用来干什么如何在windows中实现硬链接 文章目录 概念简述文件系统windows下的快捷方式--软硬链接的直观体现角度1:文件名角度2ÿ…...
AI常见关键术语
哈喽,大家好,我是小码哥,人工智能技术的快速发展带来了许多专业术语,这些词汇对于理解AI的工作原理和应用至关重要。以下是一些关键的AI术语,以及它们的专业解释和通俗总结。 一、核心概念 人工智能 (AI) 专业解释&am…...
DataX案例,MongoDB数据导入HDFS与MySQL
【尚硅谷】Alibaba开源数据同步工具DataX技术教程_哔哩哔哩_bilibili 目录 1、MongoDB 1.1、MongoDB介绍 1.2、MongoDB基本概念解析 1.3、MongoDB中的数据存储结构 1.4、MongoDB启动服务 1.5、MongoDB小案例 2、DataX导入导出案例 2.1、读取MongoDB的数据导入到HDFS 2…...
HarmonyOS鸿蒙端云一体化开发--适合小白体制
端云一体化 什么是“端”,什么是“云”? 答:“端“:手机APP端 “云”:后端服务端 什么是端云一体化? 端云一体化开发支持开发者在 DevEco Studio 内使用一种语言同时完成 HarmonyOS 应用的端侧与云侧开发。 …...
Quanto: PyTorch 量化工具包
量化技术通过用低精度数据类型 (如 8 位整型 (int8)) 来表示深度学习模型的权重和激活,以减少传统深度学习模型使用 32 位浮点 (float32) 表示权重和激活所带来的计算和内存开销。 减少位宽意味着模型的内存占用更低,这对在消费设备上部署大语言模型至关…...
宝塔面板Docker+Uwsgi+Nginx+SSL部署Django项目
这次为大家带来的是从零开始搭建一个django项目并将它部署到linux服务器上。大家可以按照我的步骤一步步操作,最终可以完成部署。 步骤1:在某个文件夹中创建一个django项目 安装django pip install django创建一个django项目将其命名为djangoProject …...
Android 无线调试 adb connect ip:port 失败
1. 在手机打开 无线调试 使用 adb connect 连接 adb connect 192.168.14.164:39511如果连接成功, 查看连接的设备, 忽略 配对下面的步骤. adb devices如果连接失败: failed to connect to 192.168.14.164:39511如果失败了, 可以杀死一下进程, 然后执行后面的操作 adb kill…...
年龄与疾病c++
题目描述 某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理,按照0-18岁、19-35岁、36-60岁、61以上(含61)四个年龄段统计的患病人数以及占总患病人数的比例。 输入 共2行,第一行为过…...
neo4j-01
Neo4j是: 开源的(社区版开源免费)无模式(不用预设数据的格式,数据更加灵活)noSQL(非关系型数据库,数据更易拓展)图数据库(使用图这种数据结构作为数据存储方…...
正则表达式 速成
正则表达式的作用 正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字…...
21、Lua 面向对象
Lua 面向对象 Lua 面向对象面向对象特征Lua 中面向对象一个简单实例创建对象访问属性访问成员函数完整实例 Lua 继承完整实例 函数重写 Lua 面向对象 面向对象编程(Object Oriented Programming,OOP)是一种非常流行的计算机编程架构。 以下…...
openssl3.2 - exp - class warp for sha3-512
文章目录 openssl3.2 - exp - class warp for sha3-512概述笔记调用方代码子类 - cipher_sha3_512.h子类 - cipher_sha3_512.cpp基类 - cipher_md_base.h基类 - cipher_md_base.cpp备注END openssl3.2 - exp - class warp for sha3-512 概述 前面实验整了一个对buffer进行sha…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...
【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道
文/法律实务观察组 在债务重组领域,专业机构的核心价值不仅在于减轻债务数字,更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明,合法债务优化需同步实现三重平衡: 法律刚性(债…...
解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
篇章二 论坛系统——系统设计
目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...
