標(biāo)題:
DIY雙缸洗衣機(jī)改自動(dòng)(沒(méi)自動(dòng)脫水),洗工作服真干凈
[打印本頁(yè)]
作者:
xiaoyao
時(shí)間:
2014-12-17 02:07
標(biāo)題:
DIY雙缸洗衣機(jī)改自動(dòng)(沒(méi)自動(dòng)脫水),洗工作服真干凈
本帖最后由 xiaoyao 于 2014-12-17 02:09 編輯
把單位的壞雙缸洗衣機(jī)改成自動(dòng)進(jìn)水,洗滌,出水,循環(huán)5次,洗工作服真干凈,手動(dòng)脫水就可以了,繼電器用了12v和220v兩種,220v繼電器一定要互鎖,否則單片機(jī)死機(jī)會(huì)燒電機(jī),強(qiáng)電部分要遠(yuǎn)離單片機(jī),開(kāi)始有進(jìn)水電磁閥電源線從單片機(jī)上面經(jīng)過(guò)洗到一半死機(jī),改了就好了。程序是在杜洋的基礎(chǔ)上修改的
洗衣機(jī)c程序.rar
(40.42 KB, 下載次數(shù): 205)
2014-12-17 02:07 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
洗衣機(jī)電路圖2.rar
(4.75 KB, 下載次數(shù): 230)
2014-12-17 02:07 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
xiaoyao
時(shí)間:
2014-12-17 02:08
程序預(yù)覽:
///////////////////////洗衣機(jī)控制器程序////////////////////////////////
/*****************************************************************************/
//初始定義
//宏定義
#include <REG52.h>
#define uchar unsigned char//語(yǔ)法定義
#define uint unsigned int //
//引腳定義//
sbit led = P0 ^6;//LED指示燈(藍(lán)) __
sbit beep = P0 ^ 1;//揚(yáng)聲器 __
sbit j1 = P2 ^ 5;//繼電器k1
sbit j2 = P2 ^ 4;//繼電器k2
sbit r1 = P0 ^0;//鍵盤(pán)a
sbit r2 = P0 ^1;//鍵盤(pán)b
sbit r3 = P0 ^2;//鍵盤(pán)c
sbit r4 = P0 ^3;//鍵盤(pán)d
sbit jins = P2^3; //進(jìn)水電磁閥
sbit chus = P2^2; //出水電磁閥
//寄存器定義//
uchar time=0,force=0,config=0;jstime=0;//定義時(shí)間、強(qiáng)度和設(shè)置變量,進(jìn)水時(shí)間
uchar t0_con,t0_con1,t0_con2;//T0計(jì)時(shí)器內(nèi)部累加
uchar led_con;//用于LED指示的標(biāo)記
uchar keys;//定義鍵盤(pán)輸入值
/*****************************************************************************/
//延時(shí)程序//
void delay(uint a){//延時(shí)限制在1 < a < 65535 ms//
unsigned char i;
while( --a != 0){
for(i = 0; i < 125; i++);
}
}
/*****************************************************************************/
//LED指示燈驅(qū)動(dòng)程序//
void led_on(void){//LED長(zhǎng)亮,不工作時(shí)狀態(tài)//
led = 0;
led_con = 0;
}
void led_1s(void){//LED每秒閃爍,用于定時(shí)等待狀態(tài)//
led_con = 1;
}
void led_50ms(void){//LED每50ms閃爍,用于電機(jī)運(yùn)行中//
led_con = 2;
}
//void led_off(void){//LED關(guān)//
// led = 1;
//}
/*****************************************************************************/
//揚(yáng)聲器驅(qū)動(dòng)程序//
void beep_off(void){//beep不響,無(wú)鍵值//
beep = 1;
}
void beep_on(void){//beep長(zhǎng)響//
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秒長(zhǎng)響,洗衣開(kāi)始//
beep_on();
delay(1000);
beep_off();
}
void beep_call(void){//beep長(zhǎng)響8聲,洗衣結(jié)束//
uchar i;
for(i = 0; i < 5; i++){
beep_2s();
delay(250);
}
}
/*****************************************************************************/
//鍵值處理程序(掃描)//
void key_init(void){//鍵盤(pán)初始化程序//
keys = 0;
}
void key_rxd(void){//鍵盤(pán)處理程序//
key_init();
delay(10);//延時(shí)去干擾
{
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){//繼電器關(guān),不工作//
j1 = 1;
j2 = 1;
delay(800);
delay(800);
delay(400);
}
void j1_on(void){//繼電器1開(kāi),正轉(zhuǎn)//
j1 = 1;
j2 = 0;
}
void j2_on(void){//繼電器2開(kāi),反轉(zhuǎn)//
j1 = 0;
j2 = 1;
}
void jj_run(uchar i){//繼電器關(guān),不工作//
uchar a;
j1_on();
a = i;
while(a > 0) {
delay(800);//基數(shù)是1s
a--;
}
jj_off();
j2_on();
a = i;
while(a > 0) {
delay(800);//基數(shù)是1s
a--;
}
jj_off();
}
/*****************************************************************************/
//時(shí)間發(fā)生程序(計(jì)數(shù)器中斷T0)//
void t0_init (void) {//T0定時(shí)器初始化//
TH0 = 0x3c;//載入初值 50ms(12MHZ)
TL0 = 0xb0;
TMOD = 0x01;//定時(shí)計(jì)數(shù)器0工作方式1
ET0 = 1;//開(kāi)定時(shí)器中斷
TR0 = 1;//啟動(dòng)定時(shí)器
EA = 1;//開(kāi)總中斷
t0_con = 20;//1s
t0_con1 = 0;
t0_con2 = 0;//
}
void t0 (void) interrupt 1 using 1{//定時(shí)器中斷處理程序//
TH0 = 0x3c;//載入初值
TL0 = 0xb0;
t0_con--;//到50ms計(jì)數(shù)減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分鐘計(jì)數(shù)加1
}
}
}
/*****************************************************************************/
//洗滌程序//
void washing (void){//洗滌程序
led_50ms();//洗衣時(shí)的LED狀態(tài)
jj_run(force);//根據(jù)強(qiáng)度運(yùn)行
key_rxd();
if(keys == 2){//運(yùn)行時(shí)按B鍵復(fù)位
uchar b;
b = t0_con2;//等待時(shí)將時(shí)間值寄存
led_1s();//等待狀態(tài)
beep_s1();//響1聲
while(keys != 1){key_rxd();}//再按A繼續(xù)
t0_con2 = b;//放回時(shí)間值
beep_s1();//響1聲
}
if(keys == 4){t0_con2 = 250;}//運(yùn)行時(shí)按D鍵復(fù)位
}
void wait (uchar u){//3分鐘的初洗和浸泡時(shí)間//
beep_2s();//長(zhǎng)響1聲
t0_init ();//計(jì)時(shí)器重新開(kāi)始工作
while(t0_con2 <= 3){//開(kāi)始洗衣
washing();//開(kāi)始洗滌
}
t0_init ();//計(jì)時(shí)器重新開(kāi)始工作
while(t0_con2 <= u){//延時(shí)N分鐘
led_1s();//每秒閃一次,表示定時(shí)狀態(tài)
}
}
void wash (void){//正式洗衣程序//
beep_s2();//長(zhǎng)響1聲
t0_init ();//計(jì)時(shí)器重新開(kāi)始工作
while(time >= t0_con2){//開(kāi)始洗衣
washing();
}
}
/***********************************************************************/
void js(void){// 進(jìn)水時(shí)間
beep_s2();
jins = 0; //進(jìn)水開(kāi)
t0_init ();//計(jì)時(shí)器重新開(kāi)始工作//
while(jstime >= t0_con2);//延時(shí)
jins = 1;//進(jìn)水關(guān)
}
/*************************************************************************/
void cs(void)//出水2分鐘
{
led_1s();
chus= 0;
t0_init();
while(t0_con2 <= 2);
chus= 1;
}
/*****************************************************************************/
//開(kāi)機(jī)初始化程序//
void init (void){
jj_off();
led_on();//LED長(zhǎng)亮,等待鍵入
beep_2s();//
key_init();
jins=1;
chus=1;
}
/*****************************************************************************/
//主程序//
void main (void)
{
while(1){//大循環(huán),當(dāng)洗衣結(jié)束后重新開(kāi)始//
init ();//開(kāi)機(jī)初始化
while(keys == 0){key_rxd();} // 設(shè)置進(jìn)水時(shí)間//
beep_s2();
jstime = keys;
key_init();
while(keys == 0){key_rxd();}//設(shè)置強(qiáng)度//
beep_s1();//響1聲
force = keys;
key_init();
while(keys == 0){key_rxd();}//設(shè)置時(shí)間//
beep_s2();//響2聲
time = (keys*5);
key_init();
while(keys == 0){key_rxd();}//設(shè)置方式//
beep_2s();//長(zhǎng)響1聲
config = keys;
key_init();
js();
if(config == 1){//3分鐘初洗+延時(shí)浸泡15分鐘 (A鍵)
wait (15);
}
if(config == 2){//3分鐘初洗+延時(shí)浸泡30分鐘 (B鍵)
wait (30);
}
if(config == 3){//延時(shí)浸泡15分鐘 (C鍵)
t0_init ();//
while(t0_con2 <= 15){//延時(shí)15分鐘
led_1s();//每秒閃一次,表示定時(shí)狀態(tài)
}
}
wash ();//開(kāi)始洗滌
cs();
delay(1000);
js();
wash ();
cs();
delay(1000);
js();
wash ();
cs();
delay(1000);
js();
wash ();
delay(1000);
cs();
beep_call();//洗衣結(jié)束音
}
}
/******************************************************************************
洗衣機(jī)使用說(shuō)明--設(shè)置說(shuō)明
冷啟動(dòng)或復(fù)位后順序按四次鍵,其功能設(shè)置如下:
NO.1 進(jìn)水時(shí)間設(shè)置
---------------------------------------------
A:1分鐘
B:2分鐘
C:3分鐘
D:4分鐘
NO.2 強(qiáng)度設(shè)置
---------------------------------------------
A:柔和
B:低
C:中
D:高
NO.3 洗滌時(shí)間設(shè)置
---------------------------------------------
A:5分鐘
B:10分鐘
C:15分鐘
D:20分鐘
NO.4 方式設(shè)置
---------------------------------------------
A:3分鐘初洗-->15分鐘浸泡-->洗滌-->結(jié)束
B:3分鐘初洗-->30分鐘浸泡-->洗滌-->結(jié)束
C:15分鐘浸泡-->洗滌-->結(jié)束
D:洗滌-->結(jié)束
=============================================
洗滌時(shí)的操作
---------------------------------------------
長(zhǎng)按 B 鍵:暫停洗滌
長(zhǎng)按 A 鍵:繼續(xù)洗滌(暫停時(shí)有效)
長(zhǎng)按 D 鍵:結(jié)束并復(fù)位程序
提示音說(shuō)明
---------------------------------------------
短鳴1次:強(qiáng)度設(shè)置完成
短鳴2次:時(shí)間設(shè)置完成
長(zhǎng)鳴1次:冷啟動(dòng)/方式設(shè)置完成/開(kāi)始洗滌
長(zhǎng)鳴6次:洗滌結(jié)束
指示燈說(shuō)明
---------------------------------------------
長(zhǎng)亮:冷啟動(dòng)/等待輸入/洗滌結(jié)束
慢閃(每秒):浸泡
快閃(每1/4秒):洗滌
******************************************************************************/
復(fù)制代碼
作者:
WADZB1
時(shí)間:
2015-1-13 23:54
很好的資料
作者:
WADZB1
時(shí)間:
2015-1-13 23:55
好好好
作者:
WADZB1
時(shí)間:
2015-1-13 23:55
謝謝分享
作者:
WADZB1
時(shí)間:
2015-1-13 23:55
學(xué)習(xí)了
作者:
cxg0113
時(shí)間:
2015-1-14 00:44
好好學(xué)習(xí),天天向上。
作者:
xudaxi
時(shí)間:
2015-1-15 09:34
好好學(xué)習(xí),天天向上。
作者:
xudaxi
時(shí)間:
2015-1-15 09:34
好好學(xué)習(xí),天天向上。
作者:
whrui5033
時(shí)間:
2015-1-22 16:24
十幾天基督教很簡(jiǎn)單
作者:
delay
時(shí)間:
2015-1-23 15:14
厲害呀
作者:
bdlk
時(shí)間:
2015-1-24 12:27
led_50ms();//洗衣時(shí)的LED狀態(tài)
jj_run(force);//根據(jù)強(qiáng)度運(yùn)行
key_rxd();
這一段是不是如果運(yùn)行正反轉(zhuǎn)一次后按鍵才會(huì)得到相應(yīng)?是否響應(yīng)時(shí)間有點(diǎn)長(zhǎng)啊?
本人初學(xué),請(qǐng)教了
作者:
Gameboy
時(shí)間:
2015-1-25 22:03
謝謝分享
作者:
qingxinrushui
時(shí)間:
2015-2-23 10:41
好好學(xué)習(xí),天天向上。
作者:
龍道科技
時(shí)間:
2015-3-9 11:04
親,冒昧的問(wèn)一句,
1、電路圖上P 0^3口沒(méi)有畫(huà)上蜂鳴器電路
2、可不可以把PCB制板圖發(fā)上來(lái)
3、應(yīng)該在電路圖上畫(huà)上甩干電機(jī)的開(kāi)啟按鈕和控制電路和C程序里面加上甩干電機(jī)的控制程序
4、我希望進(jìn)水電磁閥和脫水電磁閥可以和洗滌程序分開(kāi)控制,那樣就可以在好多洗衣機(jī)上安裝了
希望我的意見(jiàn)您可以參考一下
作者:
wangkuli
時(shí)間:
2015-4-26 17:14
應(yīng)用與實(shí)際,學(xué)習(xí)了
作者:
明明是浪人
時(shí)間:
2015-4-26 19:55
謝謝分享
作者:
騰飛的龍
時(shí)間:
2015-7-23 15:17
學(xué)了就要用到現(xiàn)實(shí)生活中,贊
作者:
hslcac
時(shí)間:
2015-8-29 23:46
這個(gè)可以有 呵呵
作者:
navyliu
時(shí)間:
2015-12-24 22:24
非常好的資料,學(xué)習(xí)學(xué)習(xí)。!
作者:
baoya
時(shí)間:
2016-3-5 18:26
參考一下 也想搞一個(gè)
作者:
l4188403
時(shí)間:
2016-5-2 10:22
不錯(cuò)不錯(cuò)
作者:
liuong89
時(shí)間:
2016-6-21 20:28
O(∩_∩)O謝謝樓主,正準(zhǔn)備改裝半自動(dòng)洗衣機(jī),手動(dòng)放水開(kāi)啟又放水麻煩。
作者:
2468416253
時(shí)間:
2016-6-22 08:29
謝謝分享!!!!
作者:
13931124779
時(shí)間:
2017-5-13 21:51
感謝你的分享 支持
作者:
只要高興就好
時(shí)間:
2017-5-14 21:25
不錯(cuò),好好學(xué)習(xí)一下
作者:
hjx5548
時(shí)間:
2017-5-16 18:42
謝謝分享
作者:
bleach
時(shí)間:
2017-9-20 19:04
不錯(cuò),謝謝樓主的分享,值得學(xué)習(xí)
作者:
劉業(yè)俊
時(shí)間:
2018-5-8 19:31
謝謝老師
作者:
tieq1952
時(shí)間:
2018-5-9 06:28
太好了,這就是活學(xué)活用
作者:
zjc666321
時(shí)間:
2018-5-9 22:05
很6.雖然沒(méi)看懂
作者:
shenwenfu
時(shí)間:
2018-6-14 09:13
有沒(méi)有人 求解看的不是很懂
作者:
799182888
時(shí)間:
2018-6-19 10:11
給力呀支持下
作者:
刷新中
時(shí)間:
2020-12-16 16:50
感謝樓主的分享。收藏、值得學(xué)習(xí)
作者:
Hooligian
時(shí)間:
2020-12-16 18:58
強(qiáng)啊,樓主。
作者:
yyght
時(shí)間:
2020-12-28 11:26
感謝樓主的分享。收藏、值得學(xué)習(xí)
作者:
tsfrhym
時(shí)間:
2021-3-27 21:27
這個(gè)想法不錯(cuò)升級(jí)改造一下
作者:
tsfrhym
時(shí)間:
2021-3-27 21:29
循環(huán)五次是不是太費(fèi)水了
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1