[C51008]基于51单片机洗衣机(自定义,LCD1602,强洗,弱洗,漂洗;丝质,棉质,化纤)

功能描述:

1.用直流电机的转速快慢代表三种不同洗衣方式:弱洗、强洗、漂洗。

2.用三个按键设置待洗衣物的不同方式,由 LED 数码管显示定时时间。丝质衣服:漂洗3分钟;棉质衣服:强洗5分钟,漂洗3分钟,弱洗2分钟;化纤衣服:强洗4分钟,漂洗3分钟。3.可用按键自行设定洗涤方式,即自行调整弱洗、强洗、漂洗的定时时间。

一、Proteus仿真设计

元件清单:

原理图:

仿真图:

仿真运行:

程序框图设计

主程序设计

void main()

{

init_1602();

TMOD|=0X01;

TH0=0X3C;

TL0=0XB0;

ET0=1;//打开定时器0中断允许

EA=1;//打开总中断

TR0=1;//打开定时器

while(1)

{

if(!k1)//丝质

{

mode=0;

write_com(1);

while(!k1);

} 

if(!k2)//棉质

{

mode=1;

write_com(1);

while(!k2);

}

if(!k3)//化纤

{

mode=2;

write_com(1);

while(!k3);

}

if(!k6)//自定义

{

mode=3;

write_com(1);

while(!k6);

}

if(!k4)//启动

{

start=1;

write_com(1);

while(!k4);

}

if(!k5)//停止

{

start=0;

write_com(1);

while(!k5);

}

if(start==1)//洗涤控制

{

if(mode==0)//丝质,漂洗定时3分钟

{

fen=3;miao=0;

led1=1;

led2=1;

led3=0;

write_string(2,0,"piao ");

while((fen>0)||(miao>0))

{

pwm(3);

if(!k5)//停止

{

start=0;

break;

}

}

sec=30;

start=0;

}

if(mode==1)//棉质,强洗5分钟;漂洗3分钟;弱洗2分钟;

{

fen=10;miao=0;

led1=1;

led2=0;

led3=1;

write_string(2,0,"qiang  ");

while(fen>4)

{

pwm(2);

if(!k5)//停止

{

start=0;

break;

}

}

led1=1;

led2=1;

led3=0;

write_string(2,0,"piao   ");

while(fen>1)

{

pwm(3);

if(!k5)//停止

{

start=0;

break;

}

}

led1=0;

led2=1;

led3=1;

write_string(2,0,"ruo    ");

while((fen>0)||(miao>0))

{

pwm(1);

if(!k5)//停止

{

start=0;

break;

}

}

sec=30;

start=0;

}

if(mode==2)//化纤,强洗4分钟;漂洗2分钟;

{

fen=6;miao=0;

led1=1;

led2=0;

led3=1;

write_string(2,0,"qiang");

while(fen>1)

{

pwm(2);

if(!k5)//停止

{

start=0;

break;

}

}

led1=1;

led2=1;

led3=0;

write_string(2,0,"piao ");

while((fen>0)||(miao>0))

{

pwm(3);

if(!k5)//停止

{

start=0;

break;

}

}

sec=30;

start=0;

}

if(mode==3)//自定义,弱洗,强洗,漂洗

{

fen=time1+time2+time3;miao=0;

led1=0;

led2=1;

led3=1;

write_string(2,0,"ruo   ");

while(fen>time2+time3-1)

{

pwm(1);

if(!k5)//停止

{

start=0;

break;

}

}

led1=1;

led2=0;

led3=1;

write_string(2,0,"qiang   ");

while(fen>time3-1)

{

pwm(2);

if(!k5)//停止

{

start=0;

break;

}

}

led1=1;

led2=1;

led3=0;

write_string(2,0,"piao    ");

while((fen>0)||(miao>0))

{

pwm(3);

if(!k5)//停止

{

start=0;

break;

}

}

sec=30;

start=0;

}

}

else//停止状态

{

led1=1;

led2=1;

led3=1;

if(mode==3)//自定义设置

{

if(!k7)

{

if(time1<99)

time1++;

while(!k7);

}

if(!k8)

{

if(time1>0)

time1--;

while(!k8);

}

if(!k9)

{

if(time2<99)

time2++;

while(!k9);

}

if(!k10)

{

if(time2>0)

time2--;

while(!k10);

}

if(!k11)

{

if(time3<99)

time3++;

while(!k11);

}

if(!k12)

{

if(time3>0)

time3--;

while(!k12);

}

}

}

}

}

//定时器中断

void Timer0() interrupt 1

{

if(time<1)//20=1s 10=0.5s

time++;

else

{

time=0;

if(miao>0) //倒计时

miao--;

else

{

miao=59;

if(fen>0)

fen--;

else

{

miao=0;

}

}

disp[0]=fen/10+0x30;//显示

disp[1]=fen%10+0x30;

disp[3]=miao/10+0x30;

disp[4]=miao%10+0x30;

if(start==1)

{

write_string(2,8,disp);

}

else

{

if(mode<3)

write_string(2,0,"                ");

else

{ //显示设置

xian[0]=time1/10+0x30;

xian[1]=time1%10+0x30;

write_string(2,0,xian);

xian[0]=time2/10+0x30;

xian[1]=time2%10+0x30;

write_string(2,4,xian);

xian[0]=time3/10+0x30;

xian[1]=time3%10+0x30;

write_string(2,8,xian);

write_string(2,11,"min");

}

}

//模式显示

if(mode==0)

write_string(1,4,"  silk  ");

if(mode==1)

write_string(1,4," Cotton ");

if(mode==2)

write_string(1,4,"Chemical");

if(mode==3)

write_string(1,4,"Self define");

}

if(sec>0)//蜂鸣器控制

{

sec--;

beep=0;

}

else

beep=1;

TH0=0X3C;

TL0=0XB0;

}

工程文件

工程渠道

链接:https://pan.baidu.com/s/1aa13PtR3PddfBTqTl3i5-w?pwd=yyds 

提取码:yyds 

也可私信UP,简介有联系方式,欢迎交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浅_望

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值