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

目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

一、主要功能

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;

}

}

五、实验现象

演示视频:

相关推荐
武文斌7713 分钟前
PCB画板:电阻、电容、电感、二极管、三极管、mos管
单片机·嵌入式硬件·学习
齐落山大勇39 分钟前
STM32的ADC(遥杆的控制)
stm32·单片机·嵌入式硬件
EVERSPIN1 小时前
国产MCU-灵动微MM32F0050系列微控制器的简单分享
单片机·微控制器·mm32f0050系列
huaijin6221 小时前
ESP32在arduino环境下的离线安装 -- 理论上多个版本都有效
stm32·单片机·嵌入式硬件
NEU-UUN1 小时前
C语言 . 第三章第三节 . 变参函数
c语言·开发语言
第七序章1 小时前
【C + +】C + + 11(中)——Lambda 表达式 + 可变参数模板
c语言·c++·算法·1024程序员节
Shylock_Mister1 小时前
FreeRTOS事件组全解析:多任务同步核心技巧
c语言·单片机·物联网
三佛科技-134163842122 小时前
SI13213L/H,SI13215L/H 非隔离降压恒压芯片5V/3.3V典型应用资料
单片机·嵌入式硬件·智能家居·pcb工艺
云山工作室6 小时前
基于单片机的牧场奶牛养殖系统设计(论文+源码)
stm32·单片机·嵌入式硬件·毕业设计·毕设
三佛科技-134163842127 小时前
制冰机方案,家用制冰机MCU控制方案开发设计
单片机·嵌入式硬件·智能家居·pcb工艺