基于51单片机多功能洗衣机控制(强洗弱洗漂洗)设计( proteus仿真+程序+设计报告+原理图+讲解视频)

本文主要是介绍基于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仿真+程序+设计报告+原理图+讲解视频)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/903677

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG