【51单片机】【protues仿真】基于51单片机全自动洗衣机系统 - 教程

news/2025/11/7 22:10:15/文章来源:https://www.cnblogs.com/yxysuanfa/p/19201022

目录

一、核心能力

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

一、主要功能

1、LED灯显现对应模式、挡位、运行状态
2、按键选择模式、强度、启动
3、模式:标准、经济、单独、排水
4、强度:强洗、弱洗
5、过程:洗涤、漂洗、脱水

二、使用步骤

基于51单片机的全自动洗衣机控制系统设计方案,整合了传感器控制、流程管理和人机交互模块。

三、硬件资源

1、51单片机核心模块
2、按键模块
3、电机模块
4、蜂鸣器模块
5、继电器模块
6、限位开关模块
6、水位传感器模块

四、软件设计

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar num=0,num1=0,num2=0,num3=0,num4=0,num5=0,num6=0,flag=0,flag1=0,flag4=0,flag5=0,circle=0;
sbit ledbiaozhun=P1^0;
sbit ledjingji =P1^1;
sbit leddandu =P1^2;
sbit ledpaishui =P1^3;
sbit ledqiangxi =P1^4;
sbit ledruoxi =P1^5;
sbit ledxidi =P1^6;
sbit ledpiaoxi =P1^7;
sbit ledtuoshui =P2^0;

sbit sshuiwei =P3^6; //水位开关
sbit sgai =P3^7; //盖开关
sbit paishui=P2^3; //排水阀控制
sbit jinshui=P2^2; //进水阀控制

sbit U2=P2^4;
sbit U3=P2^5;
sbit k1=P3^0; // 步进改变"标准、经济、单独、排水"四种方式
sbit k2=P3^1; //强洗、弱洗
sbit k3=P3^2; //运行、暂停和解除报替功能
void init()
{
uchar a=0,b=0,c=0;
TMOD=0x01; //T0工作于方式1
TH0=(65536-50000)/256; //定时时间50ms
TL0=(65536-50000)%256;
EA=1; //开总中断
ET0=1; //开T0中断
TR0=0; //关闭T0
EX0=1; //开外部中断0
IT0=1; //外部中断0边沿触发方式
U2=1; //电机停转
U3=1;
P0=0xff;
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}

void rdandu() //弱单独
{
num=0;
num1=0;
ledruoxi=0;
ledxidi=0;
leddandu=0;
jinshui=0; //打开进水阀,进水
delayms(5000);
jinshui=1;
flag1=1;
TR0=1; //启动定时器T0
while(flag==0)
{
if(flag==0&&num2==1) //弱单独洗
{
TR0=1;
flag1=1;
ruo();
}
if(flag==0&&num2==2)//弱单独洗暂停
{
TR0=0;
U2=1;
U3=1;
}
};
flag1=0;
U2=1;
U3=1;
}

void dpaishui()
{
num=0;
num1=0;
ledpaishui=0;
ledtuoshui=0;
jinshui=1;
paishui=0;
delayms(3000);
while(sgai);
delayms(3000);
flag1=3;
TR0=1;
num3=0;
num4=0;
while(flag==0)
{
if(flag==0&&num2==1) //脱水
{
TR0=1;
flag1=3;
U2=0;
U3=1;
}
if(flag==0&&num2==2)//暂停脱水
{
TR0=0;
U2=1;
U3=1;
}
};
U2=1;
U3=1;
flag1=0;
ledtuoshui=1;
paishui=1; ////排水阀关闭
}

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)
{
dpaishui();
ledpaishui=1;
}
circle=0;
}
num2=0;
}
}

五、实验现象

演示视频:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

定金单专题

一、系统中的定金单,支付方式和账户是一一对应的。 二、定金单的支付方式,再Payment method grouping里面是以Card形式出现的,否则定金单的支付找不到对应的支付方式。 三、在系统中下定金单。

练习上传

这是一级标题 MPE教程 这是二级标题 这是三级标题 这会是 斜体 的文字 这会是 斜体 的文字 这会是 粗体 的文字 这会是 粗体 的文字 你也 组合 这些符号 这个文字将会被横线删除 无序列表Item 1 Item 2Item 2a Item 2b…

uniapp修改原生导航栏样式、加图标、加文字、加点击事件 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

CITP——更适合约束接口的CRTP变式 - CLimber

在C++中,前人已经提出了多种约束接口的方式。其中,CRTP不妨是一个适用于低标准且不需要性能的静态多态设计方式。但CRTP无法约束构造函数,实现过程涉及静态转换,代码复杂。为此,我们提出了CRTP的变式——**CITP**…

函数的可变参数传参

一.前言 可变参数传参是C语言的一种高级用法。二. 用法示例 求任意个 int 类型数据的平均值。点击查看代码 double avg_int(int count, ...) {va_list ap; /* 2. 声明参数列表变量 */int sum = 0;va…

P12366 [蓝桥杯 2022 省 Python B] 数位排序

将数字与数位和捆绑(使用结构体或元组)放入数组或列表,以数位和为关键字排序,最后输出第 m 个数。 #include<stdio.h> #include<algorithm> using namespace std; const int MAXN=1e6+7; struct Node{…

重组蛋白表达技术|HEK293细胞蛋白表达|高效重组蛋白生产服务

一、表达系统的技术特性与选择策略 哺乳动物细胞表达系统以其卓越的翻译后修饰能力成为复杂蛋白表达的首选方案。其中,HEK293细胞凭借高转染效率和快速生长特性,在瞬时表达中表现优异;而CHO细胞则因其在悬浮培养中的…

CJI8运行查询没有数据

CJI8运行查询没有数据,发现不是权限问题,是因为查询界面设置的问题。如下: To view the entire transfer in CJI8, the report must be executed for Overall values without the year. ☆ No matter how much you …

Para 集训

Para 给我推的高质量题目,终于是找时间整理出来了。Para 好闪,拜谢 Para!Para 最好啦! [清华集训 2014] 主旋律 abs,第一题就忘了怎么做了。 DAG 计数模板题。 这里有一个经典的 trick:不是强连通分量的总会存在…

RK3576在智能工程机械中的应用|三屏八摄AI视觉解决方案

一、工程机械智能化的加速趋势近年来,随着人工智能与边缘计算的深入融合,工程机械行业正迎来从“机械化”到“智能化”的转型浪潮。无论是挖掘机、装载机、塔吊,还是矿卡、摊铺机等重型设备,智能控制、实时监控与人…

贪心,排序,二分,分治

题目描述 马上就要放暑假啦! 为了激励一下公司的员工,徐老师决定给所有人发奖金! 发奖金的方式非常简单,徐老师会在桌上一字排开 \(n\) 张纸团,每张纸团上会写着一个数字 \(a_i\),为了平衡公司成本,这里的数字可…

python01

练习编程语言:是我们与计算机交流的介质 编程:用编程语言写出一个个文件,最后达到我们的目的 编程有什么用:让计算机来帮我们干活 因为了解清楚才能学好所以引出下面的内容。 计算机组成原理 控制器 类似于大脑来控…

C语言实现数据结构顺序表

1.顺序表的定义 线性表可分为两种存储结构,一种是顺序存储结构,一种是链式存储结构。一般来说,顺序表是一个相同数据类型的集合,且内存地址一定相邻。在C语言中,一般使用数组实现。 2.顺序表的存储结构 使用结构体…

AI Compass前沿速览:Cursor 2.0、Firefly Image5、Agent HQ 、LongCat-Video、Kimi-k2 Thinking

AI Compass前沿速览:Cursor 2.0、Firefly Image5、Agent HQ 、LongCat-Video、Kimi-k2 ThinkingAI Compass前沿速览:Cursor 2.0、Firefly Image5、Agent HQ 、LongCat-Video、Kimi-k2 Thinking AI-Compass 致力于构建…

25.11.7联考题解

A 简单题,考虑一个串变化后不同并且计数不重不漏只须保证区间两端不同即可。 B 简单贪心。shopping plans 的超级弱化版。 C 设 \(f_i\) 表示被分在 \(\le i\) 的 L 型的方案数,显然有 \(f_i=\left(\sum_{j=x-i}^{x-…

浅谈dp中的最优化、计数问题

前言 诚然,这东西本来是一个挺好的东西的,但是如果它染上了数学,那么就不那么好了。 我承认,我的分类和题目选取是不够全面、不够有代表性的,因为这只是写给我自己看的。 这东西有三个难点:状态,转移,优化。(…

CF715B

给定 \(n\) 个点 \(m\) 条边的无向图,以及 \(s, t, L\)。每条边有边权(有些被抹去),你要为每个被抹去的边权赋一个正整数值使得 \(s \rightarrow t\) 的最短路为 \(L\)。 \(n, m \le 10^5,L \le 10^9\)首先把所有未…

[NOIP 2001 提高组] 一元三次方程求解

看题目数据范围: 方程存在三个不同实根(根的范围在 −100 至 100 之间) 可以知道这道题其实可以暴力 #include <iostream> #include <cstdio> using namespace std; int main() {double a,b,c,d;scanf(&…

EPnP算法学习随笔

EPnP算法学习随笔这几天刚好在看epnp算法,写篇随笔简要回顾一下。 PnP问题是个很经典的问题,就是根据图像上的关键点来估计相机的位姿,这里主要研究的是单目摄像机,但是值的注意的是单目的精度一般都比较差,因为单…