当前位置: 首页 > news >正文

基于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单片机芯片。

img

2. 讲解视频:

讲解视频包含仿真运行讲解和代码讲解

3. 仿真设计

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。通过按键选择模式,化纤模式下启动开始六分钟倒计时,化纤衣服下强洗4分钟;漂洗2分钟。

img

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

img

通过按键选择丝质模式,开始十分钟倒计时。丝质模式漂洗定时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字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等

img

通过Proteus仿真平台的强大功能,我们能够进行全方位的功能验证与性能测试,使学生能够在虚拟环境中实现对整个系统的硬件电路设计、软件编程及系统集成的全过程演练。此过程不仅能帮助学生深入理解单片机系统在实际家电产品中的具体应用方式和工作原理,还为他们提供了宝贵的实践机会,可以锻炼并提升硬件电路设计、信号处理、嵌入式编程、实时控制算法开发等方面的专业技能。

同时,本设计项目强调理论与实践相结合的教学方法,鼓励学生自主探究,激发创新思维,通过解决实际问题来积累工程实践经验。因此,完成此项目后,学生们不仅能掌握单片机系统在智能家电领域的具体应用,还能全面提升自身的综合设计能力和实际动手能力,为未来从事相关领域的工作或研究奠定坚实的基础。

6. 原理图

原理图使用AD绘制,可供实物参考,仿真不同于实物,需要调试经验才能做出来。

img

Proteus仿真和实物作品的区别:

1.运行环境:Proteus仿真是在计算机上运行的,而实物则是在硬件电路板上运行。

2.调试方式:在Proteus仿真中,可以方便地进行单步调试和观察变量值的变化,而在实物中则需要通过调试器或者串口输出等方式进行调试。

电路连接方式:在Proteus仿真中,可以通过软件设置进行电路连接的修改,而在实物中则需要通过硬件电路板和连接线进行修改。

3.运行速度:Proteus仿真通常比实物运行速度快,因为仿真是基于计算机运行的,而实物则需要考虑电路板上的物理限制和器件的响应时间等因素。

4.功能实现:在Proteus仿真中,可以通过软件设置实现不同的功能,而在实物中则需要根据电路设计和器件的性能进行实现。

7. 设计资料内容清单

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

img

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仿真程序设计报告原理图讲解视频&#xff09; 多功能洗衣机控制-强洗弱洗漂洗 1. 主要功能&#xff1a;2. 讲解视频&#xff1a;3. 仿真设计4. 程序代码5. 设计报告6. 原理图7. 设计资料内容清单资料下载链接&#xf…...

CVP(ChatGPT、Vector Database和Prompt)

CVP实际上指的是ChatGPT、Vector Database和Prompt的结合&#xff0c;这是一种新型的技术栈&#xff0c;用于构建智能应用。 首先&#xff0c;我们来看这三个组成部分&#xff1a; ChatGPT&#xff1a;这是一个强大的语言模型&#xff0c;它能够理解并生成自然语言文本。Chat…...

c语言-----数组知识汇总

前言 本文为我学习数组知识点之后&#xff0c;对c语言的数组部分进行的知识点汇总。 简单数组介绍 简单来说&#xff0c;数组就是一个数据组&#xff0c;像一个箱子&#xff0c;里面放有多个数据。 [1,2,3,4,5] 数组的定义 基础定义 语法&#xff1a; 数据类型 数组名[数组…...

【游戏开发之热更新技术】

游戏开发之热更新技术 热更新技术是指在不重新发布和安装应用的情况下&#xff0c;对已部署的应用程序进行更新和修补的技术。这种技术在现代软件开发中变得越来越重要&#xff0c;因为它能够为用户提供更加及时的服务和更好的体验。以下是一篇关于热更新技术的文章&#xff0…...

小红的白色字符串

题目描述 小红拿到了一个字符串&#xff0c;她准备将一些字母变成白色&#xff0c;变成白色的字母看上去就和空格一样&#xff0c;这样字符串就变成了一些单词。 现在小红希望&#xff0c;每个单词都满足以下两种情况中的一种&#xff1a; 1.开头第一个大写&#xff0c;其余为…...

Python+Django+Html网页版人脸识别考勤打卡系统

程序示例精选 PythonDjangoHtml人脸识别考勤打卡系统 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《PythonDjangoHtml网页版人脸识别考勤打卡系统》编写代码&#xff0c;代码整洁&#xf…...

第1章、react基础知识;

一、react学习前期准备&#xff1b; 1、基本概念&#xff1b; 前期的知识准备&#xff1a; 1.javascript、html、css&#xff1b; 2.构建工具&#xff1a;Webpack&#xff1a;https://yunp.top/init/p/v/1 3.安装node&#xff1a;npm&#xff1a;https://yunp.top/init/p/v/1 …...

物联网会用到哪些数据开发

物联网&#xff08;IoT&#xff09;涉及大量的设备和传感器&#xff0c;产生的数据种类繁多&#xff0c;因此在物联网领域进行数据开发时&#xff0c;可能涉及以下几个方面&#xff1a; 数据采集与存储&#xff1a; 设备数据采集&#xff1a;从各种传感器和设备中采集数据&…...

[Linux]一篇文章带你搞定软硬连接

阅读导览&#xff1a; 先在windows中先见见软硬连接从名字、inode等方面分析软硬连接如何实现软硬连接硬链接注意事项软硬链接都用来干什么如何在windows中实现硬链接 文章目录 概念简述文件系统windows下的快捷方式--软硬链接的直观体现角度1&#xff1a;文件名角度2&#xff…...

AI常见关键术语

哈喽&#xff0c;大家好&#xff0c;我是小码哥&#xff0c;人工智能技术的快速发展带来了许多专业术语&#xff0c;这些词汇对于理解AI的工作原理和应用至关重要。以下是一些关键的AI术语&#xff0c;以及它们的专业解释和通俗总结。 一、核心概念 人工智能 (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鸿蒙端云一体化开发--适合小白体制

端云一体化 什么是“端”&#xff0c;什么是“云”&#xff1f; 答&#xff1a;“端“&#xff1a;手机APP端 “云”:后端服务端 什么是端云一体化&#xff1f; 端云一体化开发支持开发者在 DevEco Studio 内使用一种语言同时完成 HarmonyOS 应用的端侧与云侧开发。 …...

Quanto: PyTorch 量化工具包

量化技术通过用低精度数据类型 (如 8 位整型 (int8)) 来表示深度学习模型的权重和激活&#xff0c;以减少传统深度学习模型使用 32 位浮点 (float32) 表示权重和激活所带来的计算和内存开销。 减少位宽意味着模型的内存占用更低&#xff0c;这对在消费设备上部署大语言模型至关…...

宝塔面板Docker+Uwsgi+Nginx+SSL部署Django项目

这次为大家带来的是从零开始搭建一个django项目并将它部署到linux服务器上。大家可以按照我的步骤一步步操作&#xff0c;最终可以完成部署。 步骤1&#xff1a;在某个文件夹中创建一个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++

题目描述 某医院想统计一下某项疾病的获得与否与年龄是否有关&#xff0c;需要对以前的诊断记录进行整理&#xff0c;按照0-18岁、19-35岁、36-60岁、61以上&#xff08;含61&#xff09;四个年龄段统计的患病人数以及占总患病人数的比例。 输入 共2行&#xff0c;第一行为过…...

neo4j-01

Neo4j是&#xff1a; 开源的&#xff08;社区版开源免费&#xff09;无模式&#xff08;不用预设数据的格式&#xff0c;数据更加灵活&#xff09;noSQL&#xff08;非关系型数据库&#xff0c;数据更易拓展&#xff09;图数据库&#xff08;使用图这种数据结构作为数据存储方…...

正则表达式 速成

正则表达式的作用 正则表达式&#xff0c;又称规则表达式,&#xff08;Regular Expression&#xff0c;在代码中常简写为regex、regexp或RE&#xff09;&#xff0c;是一种文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之间的字母&#xff09;和特殊字…...

21、Lua 面向对象

Lua 面向对象 Lua 面向对象面向对象特征Lua 中面向对象一个简单实例创建对象访问属性访问成员函数完整实例 Lua 继承完整实例 函数重写 Lua 面向对象 面向对象编程&#xff08;Object Oriented Programming&#xff0c;OOP&#xff09;是一种非常流行的计算机编程架构。 以下…...

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…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...