标题:
DIY双缸洗衣机改自动(没自动脱水),洗工作服真干净
[打印本页]
作者:
xiaoyao
时间:
2014-12-17 02:07
标题:
DIY双缸洗衣机改自动(没自动脱水),洗工作服真干净
本帖最后由 xiaoyao 于 2014-12-17 02:09 编辑
把单位的坏双缸洗衣机改成自动进水,洗涤,出水,循环5次,洗工作服真干净,手动脱水就可以了,继电器用了12v和220v两种,220v继电器一定要互锁,否则单片机死机会烧电机,强电部分要远离单片机,开始有进水电磁阀电源线从单片机上面经过洗到一半死机,改了就好了。程序是在杜洋的基础上修改的
洗衣机c程序.rar
(40.42 KB, 下载次数: 205)
2014-12-17 02:07 上传
点击文件名下载附件
下载积分: 黑币 -5
洗衣机电路图2.rar
(4.75 KB, 下载次数: 230)
2014-12-17 02:07 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
xiaoyao
时间:
2014-12-17 02:08
程序预览:
///////////////////////洗衣机控制器程序////////////////////////////////
/*****************************************************************************/
//初始定义
//宏定义
#include <REG52.h>
#define uchar unsigned char//语法定义
#define uint unsigned int //
//引脚定义//
sbit led = P0 ^6;//LED指示灯(蓝) __
sbit beep = P0 ^ 1;//扬声器 __
sbit j1 = P2 ^ 5;//继电器k1
sbit j2 = P2 ^ 4;//继电器k2
sbit r1 = P0 ^0;//键盘a
sbit r2 = P0 ^1;//键盘b
sbit r3 = P0 ^2;//键盘c
sbit r4 = P0 ^3;//键盘d
sbit jins = P2^3; //进水电磁阀
sbit chus = P2^2; //出水电磁阀
//寄存器定义//
uchar time=0,force=0,config=0;jstime=0;//定义时间、强度和设置变量,进水时间
uchar t0_con,t0_con1,t0_con2;//T0计时器内部累加
uchar led_con;//用于LED指示的标记
uchar keys;//定义键盘输入值
/*****************************************************************************/
//延时程序//
void delay(uint a){//延时限制在1 < a < 65535 ms//
unsigned char i;
while( --a != 0){
for(i = 0; i < 125; i++);
}
}
/*****************************************************************************/
//LED指示灯驱动程序//
void led_on(void){//LED长亮,不工作时状态//
led = 0;
led_con = 0;
}
void led_1s(void){//LED每秒闪烁,用于定时等待状态//
led_con = 1;
}
void led_50ms(void){//LED每50ms闪烁,用于电机运行中//
led_con = 2;
}
//void led_off(void){//LED关//
// led = 1;
//}
/*****************************************************************************/
//扬声器驱动程序//
void beep_off(void){//beep不响,无键值//
beep = 1;
}
void beep_on(void){//beep长响//
beep = 0;
}
void beep_s1(void){//beep单响一声//
beep_on();
delay(500);
beep_off();
}
void beep_s2(void){//beep连响2声//
beep_s1();
delay(100);
beep_s1();
}
void beep_2s(void){//beep2秒长响,洗衣开始//
beep_on();
delay(1000);
beep_off();
}
void beep_call(void){//beep长响8声,洗衣结束//
uchar i;
for(i = 0; i < 5; i++){
beep_2s();
delay(250);
}
}
/*****************************************************************************/
//键值处理程序(扫描)//
void key_init(void){//键盘初始化程序//
keys = 0;
}
void key_rxd(void){//键盘处理程序//
key_init();
delay(10);//延时去干扰
{
if(r1 == 0 && r2 == r3 == r4 == 1){keys = 1;}//查找键值并放入寄存器
if(r2 == 0 && r1 == r3 == r4 == 1){keys = 2;}
if(r3 == 0 && r1 == r2 == r4 == 1){keys = 3;}
if(r4 == 0 && r1 == r2 == r3 == 1){keys = 4;}
}
}
/*****************************************************************************/
//继电器控制程序//
void jj_off(void){//继电器关,不工作//
j1 = 1;
j2 = 1;
delay(800);
delay(800);
delay(400);
}
void j1_on(void){//继电器1开,正转//
j1 = 1;
j2 = 0;
}
void j2_on(void){//继电器2开,反转//
j1 = 0;
j2 = 1;
}
void jj_run(uchar i){//继电器关,不工作//
uchar a;
j1_on();
a = i;
while(a > 0) {
delay(800);//基数是1s
a--;
}
jj_off();
j2_on();
a = i;
while(a > 0) {
delay(800);//基数是1s
a--;
}
jj_off();
}
/*****************************************************************************/
//时间发生程序(计数器中断T0)//
void t0_init (void) {//T0定时器初始化//
TH0 = 0x3c;//载入初值 50ms(12MHZ)
TL0 = 0xb0;
TMOD = 0x01;//定时计数器0工作方式1
ET0 = 1;//开定时器中断
TR0 = 1;//启动定时器
EA = 1;//开总中断
t0_con = 20;//1s
t0_con1 = 0;
t0_con2 = 0;//
}
void t0 (void) interrupt 1 using 1{//定时器中断处理程序//
TH0 = 0x3c;//载入初值
TL0 = 0xb0;
t0_con--;//到50ms计数减1
if(led_con == 2){//使用50ms闪烁的LED
led = ~led;
}
if(t0_con <= 0){//到1s的处理
t0_con = 20;
if(led_con == 1){//使用1s闪烁的LED
led = ~led;}
t0_con1++;
if(t0_con1 >= 60){//到1分钟的处理
t0_con1 = 0;
t0_con2++;//到1分钟计数加1
}
}
}
/*****************************************************************************/
//洗涤程序//
void washing (void){//洗涤程序
led_50ms();//洗衣时的LED状态
jj_run(force);//根据强度运行
key_rxd();
if(keys == 2){//运行时按B键复位
uchar b;
b = t0_con2;//等待时将时间值寄存
led_1s();//等待状态
beep_s1();//响1声
while(keys != 1){key_rxd();}//再按A继续
t0_con2 = b;//放回时间值
beep_s1();//响1声
}
if(keys == 4){t0_con2 = 250;}//运行时按D键复位
}
void wait (uchar u){//3分钟的初洗和浸泡时间//
beep_2s();//长响1声
t0_init ();//计时器重新开始工作
while(t0_con2 <= 3){//开始洗衣
washing();//开始洗涤
}
t0_init ();//计时器重新开始工作
while(t0_con2 <= u){//延时N分钟
led_1s();//每秒闪一次,表示定时状态
}
}
void wash (void){//正式洗衣程序//
beep_s2();//长响1声
t0_init ();//计时器重新开始工作
while(time >= t0_con2){//开始洗衣
washing();
}
}
/***********************************************************************/
void js(void){// 进水时间
beep_s2();
jins = 0; //进水开
t0_init ();//计时器重新开始工作//
while(jstime >= t0_con2);//延时
jins = 1;//进水关
}
/*************************************************************************/
void cs(void)//出水2分钟
{
led_1s();
chus= 0;
t0_init();
while(t0_con2 <= 2);
chus= 1;
}
/*****************************************************************************/
//开机初始化程序//
void init (void){
jj_off();
led_on();//LED长亮,等待键入
beep_2s();//
key_init();
jins=1;
chus=1;
}
/*****************************************************************************/
//主程序//
void main (void)
{
while(1){//大循环,当洗衣结束后重新开始//
init ();//开机初始化
while(keys == 0){key_rxd();} // 设置进水时间//
beep_s2();
jstime = keys;
key_init();
while(keys == 0){key_rxd();}//设置强度//
beep_s1();//响1声
force = keys;
key_init();
while(keys == 0){key_rxd();}//设置时间//
beep_s2();//响2声
time = (keys*5);
key_init();
while(keys == 0){key_rxd();}//设置方式//
beep_2s();//长响1声
config = keys;
key_init();
js();
if(config == 1){//3分钟初洗+延时浸泡15分钟 (A键)
wait (15);
}
if(config == 2){//3分钟初洗+延时浸泡30分钟 (B键)
wait (30);
}
if(config == 3){//延时浸泡15分钟 (C键)
t0_init ();//
while(t0_con2 <= 15){//延时15分钟
led_1s();//每秒闪一次,表示定时状态
}
}
wash ();//开始洗涤
cs();
delay(1000);
js();
wash ();
cs();
delay(1000);
js();
wash ();
cs();
delay(1000);
js();
wash ();
delay(1000);
cs();
beep_call();//洗衣结束音
}
}
/******************************************************************************
洗衣机使用说明--设置说明
冷启动或复位后顺序按四次键,其功能设置如下:
NO.1 进水时间设置
---------------------------------------------
A:1分钟
B:2分钟
C:3分钟
D:4分钟
NO.2 强度设置
---------------------------------------------
A:柔和
B:低
C:中
D:高
NO.3 洗涤时间设置
---------------------------------------------
A:5分钟
B:10分钟
C:15分钟
D:20分钟
NO.4 方式设置
---------------------------------------------
A:3分钟初洗-->15分钟浸泡-->洗涤-->结束
B:3分钟初洗-->30分钟浸泡-->洗涤-->结束
C:15分钟浸泡-->洗涤-->结束
D:洗涤-->结束
=============================================
洗涤时的操作
---------------------------------------------
长按 B 键:暂停洗涤
长按 A 键:继续洗涤(暂停时有效)
长按 D 键:结束并复位程序
提示音说明
---------------------------------------------
短鸣1次:强度设置完成
短鸣2次:时间设置完成
长鸣1次:冷启动/方式设置完成/开始洗涤
长鸣6次:洗涤结束
指示灯说明
---------------------------------------------
长亮:冷启动/等待输入/洗涤结束
慢闪(每秒):浸泡
快闪(每1/4秒):洗涤
******************************************************************************/
复制代码
作者:
WADZB1
时间:
2015-1-13 23:54
很好的资料
作者:
WADZB1
时间:
2015-1-13 23:55
好好好
作者:
WADZB1
时间:
2015-1-13 23:55
谢谢分享
作者:
WADZB1
时间:
2015-1-13 23:55
学习了
作者:
cxg0113
时间:
2015-1-14 00:44
好好学习,天天向上。
作者:
xudaxi
时间:
2015-1-15 09:34
好好学习,天天向上。
作者:
xudaxi
时间:
2015-1-15 09:34
好好学习,天天向上。
作者:
whrui5033
时间:
2015-1-22 16:24
十几天基督教很简单
作者:
delay
时间:
2015-1-23 15:14
厉害呀
作者:
bdlk
时间:
2015-1-24 12:27
led_50ms();//洗衣时的LED状态
jj_run(force);//根据强度运行
key_rxd();
这一段是不是如果运行正反转一次后按键才会得到相应?是否响应时间有点长啊?
本人初学,请教了
作者:
Gameboy
时间:
2015-1-25 22:03
谢谢分享
作者:
qingxinrushui
时间:
2015-2-23 10:41
好好学习,天天向上。
作者:
龙道科技
时间:
2015-3-9 11:04
亲,冒昧的问一句,
1、电路图上P 0^3口没有画上蜂鸣器电路
2、可不可以把PCB制板图发上来
3、应该在电路图上画上甩干电机的开启按钮和控制电路和C程序里面加上甩干电机的控制程序
4、我希望进水电磁阀和脱水电磁阀可以和洗涤程序分开控制,那样就可以在好多洗衣机上安装了
希望我的意见您可以参考一下
作者:
wangkuli
时间:
2015-4-26 17:14
应用与实际,学习了
作者:
明明是浪人
时间:
2015-4-26 19:55
谢谢分享
作者:
腾飞的龙
时间:
2015-7-23 15:17
学了就要用到现实生活中,赞
作者:
hslcac
时间:
2015-8-29 23:46
这个可以有 呵呵
作者:
navyliu
时间:
2015-12-24 22:24
非常好的资料,学习学习!!!
作者:
baoya
时间:
2016-3-5 18:26
参考一下 也想搞一个
作者:
l4188403
时间:
2016-5-2 10:22
不错不错
作者:
liuong89
时间:
2016-6-21 20:28
O(∩_∩)O谢谢楼主,正准备改装半自动洗衣机,手动放水开启又放水麻烦。
作者:
2468416253
时间:
2016-6-22 08:29
谢谢分享!!!!
作者:
13931124779
时间:
2017-5-13 21:51
感谢你的分享 支持
作者:
只要高兴就好
时间:
2017-5-14 21:25
不错,好好学习一下
作者:
hjx5548
时间:
2017-5-16 18:42
谢谢分享
作者:
bleach
时间:
2017-9-20 19:04
不错,谢谢楼主的分享,值得学习
作者:
刘业俊
时间:
2018-5-8 19:31
谢谢老师
作者:
tieq1952
时间:
2018-5-9 06:28
太好了,这就是活学活用
作者:
zjc666321
时间:
2018-5-9 22:05
很6.虽然没看懂
作者:
shenwenfu
时间:
2018-6-14 09:13
有没有人 求解看的不是很懂
作者:
799182888
时间:
2018-6-19 10:11
给力呀支持下
作者:
刷新中
时间:
2020-12-16 16:50
感谢楼主的分享。收藏、值得学习
作者:
Hooligian
时间:
2020-12-16 18:58
强啊,楼主。
作者:
yyght
时间:
2020-12-28 11:26
感谢楼主的分享。收藏、值得学习
作者:
tsfrhym
时间:
2021-3-27 21:27
这个想法不错升级改造一下
作者:
tsfrhym
时间:
2021-3-27 21:29
循环五次是不是太费水了
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1