天天操天天插_福利视频导航大全_久久成人资源_一个人看的www片免费高清视频

2-電子制作2 全自動洗衣機維修及軟件設計

播放語音內容
21分鐘
導讀: (一)洗衣機故障檢修 我們有個老舊的全自動洗衣機,是廣東產的“愛德牌”。14年前因為出現無法排水故障,另外買了個金鈴洗衣機。當時看它各個部件和外觀都還挺好,想留待有空時再檢修,就沒有丟棄它。 最近想騰空雜物房,就考慮是否該丟棄這洗衣機了?考慮到擱置十多年,各個部件和馬達都

(一)洗衣機故障檢修

我們有個老舊的全自動洗衣機,是廣東產的“愛德牌”。14年前因為出現無法排水故障,另外買了個金鈴洗衣機。當時看它各個部件和外觀都還挺好,想留待有空時再檢修,就沒有丟棄它。

最近想騰空雜物房,就考慮是否該丟棄這洗衣機了?考慮到擱置十多年,各個部件和馬達都應該銹蝕死了。但通電試機,沒想到它的馬達還能正常運轉。試運行它的“無水試機程序”,還能正常洗滌和進出水。灌水進去試,可以洗衣服,但排水只能排一半就停機了,也不能甩干。

拆開背蓋,看到主軸上有個離合器,通過皮帶和齒輪與馬達連接,但我完全看不明白它的工作原理。只好上網,查找該洗衣機的電路圖和相關維修資料,其中有關離合器的工作原理介紹如下:

-------------------==-----------------==

減速離合器洗滌工作過程:進入洗滌程序時,排水電磁鐵斷電,剎車桿在彈簧力的作用下,針剎車鎖定,使脫水軸不能轉動。同時剎車桿上一撥叉棘爪將棘輪撥過一個角度,方絲離合彈簧固定在棘輪壁上的這一端被撥動,另一端處于自由狀態,離合套與外套軸分離,由丁方絲離合彈簧被撥松,洗滌軸與脫水軸分離,當電動機轉動時,V帶傳動,從大帶輪傳過來的轉動通過齒輪軸傳至行星減速器,減速后由波輪軸傳出,帶動波輪旋轉。

洗滌時,電動機運轉,通過減速離合器,降低轉速帶動波輪間歇正反轉,進行洗滌,此時洗滌脫水桶不轉動;脫水時,電動機運轉,通過離合器,不減速(即高速)帶動脫水桶順時針方向運轉,進行脫水,此時波輪也隨著脫水桶一起運轉。

圖1)

---------------------------------------------------------==

上述信息我反復琢磨半天仍不得要領,只是粗略了解其大概工作原理。沒辦法,邊干邊體會吧!

為了便于檢修,我拆開洗衣機蓋板(控制主板、進水電磁閥、水位傳感器都固定在蓋板上)。由于外殼不好拆卸,我就把整個洗衣機翻轉過來。下圖2+圖3是離合器與排水電磁鐵(通過電磁鐵動作牽引排水閥)結構外觀—俯視圖和側視圖:

圖2)離合器 圖3)排水電磁鐵

我琢磨:我的洗衣機能夠正常洗滌,說明馬達及離合器沒太大問題。排水只能排一半,說明排水電磁閥也沒完全損壞,很可能是電磁鐵芯生銹導致行程受阻,離合桿和棘爪也沒能移動到位,以致影響馬達帶動不了脫水桶甩干。我試用起子撬動電磁鐵芯,強行讓離合桿和棘爪移動到位,并轉到皮帶輪,發現脫水桶是可以旋轉的,這說明離合器并沒有銹蝕,問題可能就是電磁鐵芯吸合不到位。

找點機油涂抹到電磁鐵芯和相關驅動機件上,多次運行脫水程序,給電磁鐵反復通電吸合再釋放。最后放水試機,洗滌和脫水都正常了。但又發生開機進水不停,似乎是水位傳感器有問題,導致單片機檢測不到有水信號,機器就不能開始洗滌程序。

愛德洗衣機的水位傳感器在市面上也沒有找到合適的替代品。從電路圖看不出水位傳感器的工作原理,我從網上找到資料有如下介紹:

-------------------------------=

圖4為該水位傳感器的結構示意圖,下部的氣室加橡皮膜組成壓力傳感部分,上部的活動磁芯和線圈與振蕩電路板一起組成LC振蕩電路。
工作時,隨著水位的升高,氣室中的壓力也升高。當壓力升高到一定值時,橡皮膜推塑料盤頂著磁芯上移,電感線圈的電感發生變化,LC振蕩電路的振蕩頻率也發生相應變化。當頻率達到程序控制器預定值后(表示預定水位),程序控制器便發出指令停止進水,并轉入洗滌程序。水位傳感器在出廠前,振蕩頻率定為高水位頻率22.60kHz,空水位頻率25.20kHz。 水位越低,傳感器輸出的信號頻率越高。

--------------------------------------=

網上的上述信息與愛德洗衣機的水位傳感器情況吻合。我拆開我們的水位傳感器,發現其橡皮膜已經老化開裂,怪不得不能工作了。我找氣球等類似材料替代原橡皮膜換上,水位傳感器又能工作了。不過水位感應誤差變大了,通過調節傳感器里面的螺絲,可以部分彌補誤差。但最后只能使用“中-低水位”,如果用高水位,結果進水到水溢出了,洗衣機仍會以為水位不夠而不斷進水。為了廢物利用,我只好將就地用“中-低水位”來洗衣服了!

3點備忘錄:

(1)洗衣機的開蓋安全開關SA1有防抖動功能:當洗衣機脫水時,如果衣物堆放不勻,致使脫水桶劇烈振動,以幾十周的頻率撞擊安全開關SAI的傳感桿, SA1連續輸出通、斷信號,微處理器(單片機)發出糾正指令,使洗衣機進入停水→進水一漂洗一排水一脫水程序,以便消除衣物擺放不勻造成的振動。如果反復幾次不能消除該現象,單片機會令洗衣機進入脫水保護狀態。該開關還有脫水時開蓋斷電功能,我使用感覺不太方便,就將其拆除了。以后不管是否開蓋,洗衣機都可以照樣脫水。

(2)排水電磁鐵標牌工作電壓是直流198V,從電路圖上看不出直流198V電壓的電路(其電源通斷由雙向可控硅控制)。實測工作電壓是直流202V,用交流檔測是96V交流---這可能是由220V交流半波整流得到的脈動直流。

(3)該洗衣機的電路原理圖如下(圖5):

圖5

圖6)洗衣機控制面板外觀

=======================---

(二)全自動洗衣機硬件修改及軟件設計

洗衣機用一段時間后,又發生洗衣到最后階段“甩干排水”時就停機了。檢查各個硬件未見有問題,估計是單片機程序因為某次無意的錯誤碰觸高壓打火干擾,導致軟件意外被修改?盡管這個可能性“很扯”,反正洗衣機就是可以循環3次洗滌和進水+排水,但最后一次的“甩干排水”就不執行了。

我試運行產品的無水洗衣模擬測試程序,洗滌進出水各個功能都是正常的(說明洗衣機的硬件沒問題)。因為該產品配有參考電路圖,我手頭又有好幾個洗衣機的例程,干脆嘗試更換單片機,自己重寫程序看看效果如何。

開始以為這是很簡單的工作,真正動手時,才發現問題多多。

最主要問題是原機單片機不知道是什么型號?其引腳排列和51系列產品完全不同,這就導致硬件工作量大為增加,比自己另外做一個洗衣機的工作量還要大。

下圖6+圖7,先將原單片機拆焊下來,加一個單片機插座,以便以后可以隨意更換單片機。

圖6)已經拆下了原單片機的部分電路板

圖7)加焊了一個單片機插座

圖8)原單片機底部引腳布線

圖9)更換51單片機后,重新更改的引腳走線。

圖10)最后修改好的電路板。

硬件修改完成后,在進行實際軟件設計時,才發現要按照原硬件原理圖接線來設計軟件,會有很多無法躲避的麻煩。

第一個難點:由于該單片機的硬件接口有限,原洗衣機操作面板顯示不同工作狀態的的14個LED燈與2個數碼管是共用單片機端口端口,軟件編程時就不能簡單地令某個端口變高或變低電平來控制LED的亮滅,這樣會導致數碼管亂閃。反之亦然,數碼管顯示時,LED也會亂閃。如何通過控制4個片選三極管來分時顯示LED和數碼管,浪費了我很多測試時間。

第二個難點:我是用定時器做洗衣程序調度器,單片機給洗衣機按鍵、LED、數碼管和馬達按不同時間間隙執行不同的動作,這比順序循環運行的軟件設計及調試要麻煩很多。陸陸續續搞了很長時間才把程序走通。

第三個難點:水位傳感器沒買到合適產品,自己換氣室的薄膜后,重新測試高中低不同水位對應不同輸出電壓值。期間要反復進水排水測試,也是挺費神的。最尷尬的是,我是在住房室內進行將水位和軟硬件聯合測試的。某次測試后,洗衣機沒排水就撂下不管了。結果我外出辦事半天后,洗衣機排水閥發生漏水故障,洗衣機里的水全漏出來,房間泡了1厘米的水,還通過地板裂縫漏到樓下鄰居的臥房,把人家的床鋪被子和床墊全淋濕透了。最后硬著頭皮給人家道歉、賠錢,過后很長時間都不好意思面對人家,真是難堪死了!

(三)最后實現的軟硬件情況說明:

洗衣機是用STC89C52RC或STC89C54RC類單片機,水位傳感器是用電感式震蕩電路。為了節省端口,洗衣狀態顯示的14個發光二極管是與2個LED數碼管共用端口的,由4個三極管(VT7-VT10)驅動發光,并經軟件分時控制來輪流顯示,這導致了系統軟件的復雜和不易讀懂。

全自動洗衣機-實際產品應用程序功能:

洗衣進程有3種:全洗衣(洗滌+漂洗+甩干);漂洗-甩干;單獨甩干。

洗衣模式有2種:標準、省時。

水位設定有4種:高,中,低2,低1。

按下起動按鍵后,洗衣機開始進水,到達設定水位后停止進水。緊接著電動機開始正反轉運行,每次正反轉由四個節拍組成:

1)正轉= 5-10秒; 2)停轉= 3-4秒; 3)反轉= 5-10秒; 4)停轉= 3-4秒。

進水= 3分鐘,洗滌= 省時39分鐘/標準51分鐘,排水=3分鐘,脫水=1.5分鐘。脫水時電動機正轉90秒(Tspin_Minute)。

預定洗滌時間完成后,就排水和甩干。到達預定的3次循環洗滌排水周期后,洗衣過程結束,并發出提醒蜂鳴聲。全過程約為省時39分鐘/標準51分鐘。

為防止意外,在進水和排水期間,如果超過80秒水位都沒變化,便認為進出水有故障而停機報警。

---------------------------------------------------=

(四)全自動洗衣機主要源碼

//*************洗滌方式選擇********************

//標準洗滌程序=1,經濟=2, F_Normal=1, F_Econormy=2,

void key_scan() //可以選擇洗滌-暫停-菜單(改變洗滌方式)

{ static uchar Kpress_Count; //按鍵次數計數器

if(Key_Start == 0) // = P33=Key_Start=開始或暫停按鍵,按下鍵= 低電平0

{ Beep50();

if(Key_Start == 0)

{ while(!Key_Start); //wait for key release

if(flag_Washing ==0) //= 0表示還未開始洗滌

// 1th按下啟動鍵=開始,如果重復按"開啟/暫停"key,其狀態flag_Washing會1-0反復轉換

{ flag_Washing = 1; //=1復位洗滌標志,

ET1=1; //打開調度器(setting里會令ET1=0)

if(Kpress_Count ==0) { //是1th按啟動鍵嗎?

//1th按啟動鍵,Int1_Count=0.給"正常洗衣"參數賦值。2th,Int1_Count>=1,不必再給"正常洗衣"參數賦值,避免暫停洗衣后,重新運行又賦初始值,導致半途洗衣定時不對。

Kpress_Count++;

wash_on(); //-----------start washing

}

else Redo(); //-----------redo washing, //允許定時器T1中斷并打開水泵+1秒后,由T1中斷服務來打開馬達

}

else if(flag_Washing) // -----------2th按下啟動鍵=暫停

{ flag_Washing = 0; //==0表示暫停洗滌或進出水

ET1=0; //關閉調度器,顯示將不能刷新,令洗衣機暫停! Suspend();

LED_Timer_on(); Beep50();

}//end else

}

}

}

void Timer0_Init(void) //T0設為16位計數器,對信號脈沖進行計數。

{ TMOD |= 0X05; //設16位計數工作方式1,手動重裝計數初值 方式選擇位C/T=1=計數方式

TH0=0; TL0=0; //計數器T0初值為0

TR0=1; ET0=1;

}

void Timer2_Init(void)

{// 復位時, T2MOD=T2CON=00H,方式選擇位C/T=0=定時工作方式。

T2CON=0;

RCAP2H=(65536-62500)>>8; //在程序初始化的時候給RCAP2L和RCAP2H賦值,

RCAP2L=(65536-62500)%256; //中斷產生時自動使TH2=RCAP2H,TL2=RCAP2L。

TH2=RCAP2H; TL2=RCAP2L;

ET2=1; //打開定時器2中斷

TR2=1; //定時器2開始計時

}

//T1=0001,設為16位定時工作方式1,作為1秒的調度器

void Timer1_Init(void)

{ TMOD &= 0X0f; // 高位T1計數方式清0

TMOD |= 0X10; // T1=計數方式1= 16位,

//T1方式選擇位C/T=0=定時工作方式,定時方式1= 16位,不自動重裝參數

PreT1h= PreloadT1H; PreT1l= PreloadT1L;

TH1= PreT1h; TL1= PreT1l;

TR1 = 1; ET1=1;

PT1= 1; //T1為最高優先級

}

//--------------水位脈沖從P3.4=T0輸入,要用到下面的中斷計數-----------------:

void timer0(void) interrupt 1 //16位計數器0溢出中斷

{//計數溢出時,中斷并累加計數(即每收到256個脈沖就中斷1次)。到1秒后,在T2中斷換算為頻率。

TH0=00; TL0=00; //clear counter,正常時,TH0和TL0記錄水位脈沖數

}

//-------------在中斷服務里計算水位頻率F_level----------------------------

void timer2(void) interrupt 5 //12M晶振,定時器2中斷(62.5ms中斷一次,每半秒測一次),

{ TF2=0; //定時器2的中斷標志位TF2不能夠由硬件清零,所以要在中斷服務程序中將其清零

count_T2++;

if (count_T2>=8) //定時0.5s時間到

{ TR0=0; //計數器停止計數

count_T2=0; //中斷次數清0

Led_1S= ~Led_1S; //=p16仿真時便于觀察

//仿真時,為了可以無水運行,如下修改(還需將下面的水位采集語句屏蔽:-------=start

if(W_progress==1) F_level= W_level; //進水時W_level=W_MIDD=242;

else if(W_progress==3) F_level= W_empty; //排水時,W_empty=252=超過最低水位=無水

//仿真時,為了可以無水運行,修改:------------------------------------------------=end

F_level = (uint)((TH0<<8)+TL0)/50; //如果不用(uint)限定,F_level會變成0?。?!

//比較20S間隔內2次水位,如果無變化,可能進出水有問題---start

T_in_out20s++ ;

if(T_in_out20s ==40)

{ F_level_40= F_level; } //1th水位值存于F_level_40

else if(T_in_out20s ==80) //(80-40)*0.5S=20S

{ F_level_80= F_level; } //2th水位值存于F_level_80

TL0=0; TH0=0; //清零16位計數器T0

TR0=1; //計數器T0開始計數

T2_FLAG=1; //標志位置1=頻率計算結束標志--未用到

}

}

//啟動洗滌程序后,就交由調度器控制。

void Timer1(void) interrupt 3 //-------1秒調度器

{ TH1= PreT1h; TL1= PreT1l; //reload 定時值PreloadT1H= (65536-50000)>>8;

if(T50ms_count++ >=20) // =1S interrupt --------------- (1)

{ T50ms_count = 0;

if(flag_Washing==1) //=已經按下啟動鍵,運行標志,=1為已經開始運行,0為暫停 --(2)

{

Second--; // 對各個洗滌進程做減時計算 (在menu里已經令Second=0)

if((Second <=0)&&(Minute != 0)) //這是洗滌減一計時器。

{ Minute--; Second = 59;

if(T_all_reman-- < 0) T_all_reman=0; //顯示剩余時間

} //Minute和Second 是各個洗滌階段的剩余耗時值

// W_progress =0-進水,1-洗滌,2-馬達正反轉, 3-漂洗(排水),4-甩干,

if(W_progress==0) //-------(A)-----在wash_on()開始后跳到這里

{ W_progress=1; Water_in(); //進水時間在Water_in()定義

T_in_out20s=0; err=0; } //清零進出水測頻時間間隔

else if(W_progress==1) //---(A)在(W_progress==0)開始進水,0.5S后跳到這里

{ //li-排水次數計數器Dump_count,初值=0,排一次水,運行一次out(),

//測試水位傳感器是否有問題:-----------------------------------------------------start

if(T_in_out20s >80) //T_in_out20s在T2累加,

{ //如果傳感器正常,無水時F_level>253,有水時0<F_level<253,

T_in_out20s =0; //清零以便T2中斷再次保存水位值。

if((F_level_40 & F_level_80) &&(F_level_40 ==F_level_80))

//如果40S內2次水位值不為0,而且相同,說明水位傳感器有問題。

{ if(err++>=2) W_progress=8; }

}

//--end of測試水位傳感器是否有問題:------------------------------------end


if(F_level >W_level) // 檢測到預定水位W_level嗎?

{ if((Second<0)&&(Minute==0)) //水位未到,但超時

{ W_progress =8; } //=err, goto (F)超時處理

} //進水期間W_progress=1

else if((F_level<=W_level)&&(F_level>0)) //如果未超時,去洗滌

{ W_progress=2;

xi(); Beep50(); } //去洗滌

} //-----------------------end of if(W_progress==1)


else if(W_progress== 2) //(B)-------馬達正反轉時間控制

{ T_motor++; //正反轉控制計時,

if(Washprogram ==1) //=normal wash mode

{ //如果是1th,T_motor++=1

switch(T_motor) //1th,T_motor=1=case1,每秒中斷后+1

{

//1th,電機右轉10秒;10th,電機停4秒;14th,電機左轉10秒;23th后,停止轉動

case 1: ZhengZhuan(); break; //第1秒,電機右轉

case 10: Stop_Motor(); break; //第10秒,電機停

case 14: FanZhuan(); break; //第14秒,電機左轉10秒

case 23:Stop_Motor(); break; //第19秒,電機停4秒

default: //第27秒后,如果洗滌時間未完,再去正轉

if(T_motor>=27) { T_motor=0; }

}

}

else if(Washprogram ==2) //=econormy wash mode

{

//if set minute=1,則每分鐘正反轉3.5-4次,然后甩干10秒=15聲,3個周期后=3分鐘,結束洗滌

switch(T_motor) //1th,T_motor=1=case1,每秒中斷后+1

{

//1th,電機右轉5秒;6th,電機停3秒;7th,電機左轉5秒;13th后,停止轉動。

case 1: ZhengZhuan(); break; //第1秒,電機右轉5秒

case 6: Stop_Motor(); break; //第6秒,電機停3秒

case 9: FanZhuan(); break; //第9秒,電機左轉5秒

case 14:Stop_Motor(); break; //第14秒,電機停3秒

default: //第15秒后,如果洗滌時間未完,再去正轉

if(T_motor>=17) { T_motor=0; }//17S后,從頭再來

}

}

if((Second<=0)&&(Minute==0))

//如果1th洗滌cycal時間到(Second=0xff=-1)就排水

{ W_progress =3; Water_out(); } //goto 排水處理

} //------------------end of if(W_progress==2)---

else if(W_progress==3) //(C)---------如果排水完,就甩干。

{

//測試水位傳感器是否有問題:-----------------------------------------------------start

if(T_in_out20s >80) //T_in_out20s在T2累加,

{ //如果傳感器正常,無水時F_level>253,有水時0<F_level<253,

T_in_out20s =0; //清零以便T2中斷服務里再次保存水位值。

if((F_level_40 & F_level_80) &&(F_level_40 ==F_level_80))

//如果40S內2次水位值不為0,而且相同,說明水位傳感器有問題。

{ if(err++>=2) W_progress=8; }

}

//測試水位傳感器是否有問題:-----------------------------------------------------end

if((F_level <W_empty)&&(F_level>0)) //是否還有水?

{ if((Second<=0)&&(Minute==0)) //超時了,還沒排干水=err

{ W_progress =8; } //goto (F)超時處理

}

else if(F_level >= W_empty) //水確實排干了

{ // 如果無水....

if(Wash_count < Wash_cycle) //水排干了,但洗滌次數未夠

{ W_progress =4;

Tuoshui(); Wash_count++; } //水排干了,去脫水,

else if(Wash_count >Wash_cycle) W_progress =9;

//如果超過3次排水,不甩干就結束-W_progress=9

//如果是單獨排水,就設置Wash_count =Wash_cycle+1 >3,所以只排水一次,不甩干就結束

}

} //-----------------------end of if(W_progress==3)


else if(W_progress==4) //(D) ----甩干完了,進水或結束

{ if((Second<=0)&&(Minute==0)) // ----甩干時間到否?

{// Wash_cycle =洗滌次數=3次=(進水+洗滌+排水+甩干)*3

if(Wash_count >=Wash_cycle) //甩干時間到了,結束洗滌

{ W_progress =9; } //goto (G)=over()

else

{ W_progress =0; Water_in(); }

//甩干時間到,但洗滌未夠3次,Wash_count<Wash_cycle,繼續洗滌

}

} //-----------------------end of if(W_progress==4)

//===============================================

else if(W_progress== 8) //(F)----------err超時處理

{ T_all_reman=99; Second=0; Minute=0; Beep300();

err =1; Stop_Motor();

Pump_out_off(); Pump_in_off();

}

else if(W_progress==9) //(G)----------洗滌結束

{ T_all_reman=88; Second=0; Minute=0; over(); }

//===================================================

} //---------end of if(!flag_Washing) //按下啟動鍵 ----(1)end

} //------------------end of if(T50ms_count++>=20)--------(2)end

}

//由于LED與SEG共用P0口,所以必須用輪流顯示LED,數碼管由中斷刷新

void Led_Update(void)

{ Seg_disable(); //數碼管不顯示

Show_water_led(); Delay_1ms(1); //須延時1MS才能看到LED亮

Show_progress_led(); Delay_1ms(1);

Show_program_led(); Delay_1ms(1);

if(f_Ledtimer == 1)

{ LED_Timer_on(); Delay_1ms(1); } //定時器LED亮,暫停時LED_Timer=on

else LED_Timer_off(); //正常工作時LED_Timer=off

}

/**********************管腳初始化程序******************/

void InitAll(void)

{ // LED_Regular =ON; //ON=1,默認為標準程序,燈亮

Pump_in = OFF; //OFF=0; 進水控制,關, 單個反相器驅動

Pump_out= 1; // P2^0=排水控制,1=關,因為本人另加有2個反相器串聯電路

Motor_R = OFF; //電機正轉,不走=OFF=0, 單個反相器驅動

Motor_L = OFF; //電機反轉,不走=OFF=0, 單個反相器驅動

Beeper = OFF; //報警喇叭,不叫=OFF=0

P1= 0xef; //let P1口為輸入= 3個按鍵=P12-P14-P15,注意:P17=beeper=0不響

K_program= 1; //let P33口為輸入,K_program = P3^3=啟停按鍵1=int1 port

//標志清零:

flag_Washing =0; //運行標志,1為已經開始運行,0為暫停

f_Ledtimer =0; // 控制LED亮或滅的標志,timer_led=off=0

F_level=W_empty; // F_level是檢測到的水位頻率,

W_level=W_MIDD; // W_level是預置的水位,W_MIDD=242,中LED=亮,

Level_case = F_MIDD; //設置水位時的增量累加器=1-2-3-4=high-middle-low2-low1,

T_Normal_min=9; //=9對應=9*3+24=51分鐘

T_Normal_sec=0;

T_Econormy_min=5; //=5對應=5*3+24=39分鐘 =省時洗滌,仿真=1

T_Econormy_sec=0;

//進出水+甩干的時間

Tin_Minute = 3; //water-in時間 =3分鐘

Tin_Second = 0; // =秒

Tout_Minute = 3; //water-out時間=3分鐘

Tout_Second = 0;

Tspin_Minute= 1; //甩干時間=1分30秒,如果2分鐘可能會太長.

Tspin_Second= 30; //如果仿真用30秒

T_in_out20s = 0; //20S時間間隔計數器--用于每20S測試一次進出水,看是否正常?

F_level_40 = 0;

F_level_80 = 0; //80S間隔水位頻率暫存值,比較其變化值來判斷進出水是否正常?

Wash_count =0; //實際循環洗滌次數計數器=清零

Wash_cycle = 3; //循環洗滌次數(一個循環=進水+洗滌+脫水)=3是標準洗滌次數

W_progress = 0; // 工作狀態跳轉控制標志=0-進水(浸泡),1-洗滌,2-排水,3-甩干

Washprogram= 2; //1=標準,2=省時

if(Washprogram== 1) //1=標準,2=省時

{ Txi_Minute = T_Normal_min; //正常洗滌=7分*3,對應=21分鐘;仿真時=0分鐘+30秒

Txi_Second = T_Normal_sec;

}

else

{ Txi_Minute = T_Econormy_min; //省時洗滌=5分*3,對應=15分鐘;仿真時=0分鐘+30秒

Txi_Second = T_Econormy_sec;

}

}

//==================================-

void main()

{ uchar Tms=500; //延時顯示參數-實際應用=APP=500

InitAll(); //管腳初始化,報警喇叭,進水、排水、電機正轉反轉均=關閉

Beep50(); //Beeper=0=stop蜂鳴器, =1=響=p17

Timer1_Init(); // T1作調度器

Timer0_Init(); // 定時器0中斷作為水位檢測脈沖計數

Timer2_Init(); // 定時器2中斷計時,將T0的頻率計數轉為頻率

EA=1;

T_all_reman= T_all; //T_all(洗滌總時長);T_all_reman=洗滌剩余時間

while(1)

{

//設置洗滌參數:

if(flag_Washing==0) //如果在暫停狀態(首次開機或按了暫停鍵)才可以設置洗滌參數

{

Set_Level_case(); //設置水位, =key2=p13, Level_case++;

//改變洗滌進程:

Set_progress(); //progress=key3=p15,

//改變洗滌方式:

Set_program(); //program=key4,洗滌方式:F_Normal=1, F_Econormy=2,

ET1= 0; //調度器T1關中斷,調度器不工作,停止循環顯示,

}

key_scan(); //選擇"啟動/暫停"

//=key scan + wash start。如果開始洗滌,就從wash_on()開始

Led_Update(); //洗衣狀態的LED顯示

Seg_Update(); //輪流顯示水位和剩余洗滌時間

//因為試運行出錯時,調度器里不能關斷pump-in,所以這里加-err超時處理

if((F_level <W_OVER)||(F_level==W_ERR))

// 檢測到的水位F_level有問題,W_ERR=0,W_OVER=220=過高水位

{ W_progress=8; T_all_reman=99;

Second=0; Minute=0; Beep300();

Stop_Motor(); Pump_out_off(); Pump_in_off();

}

}

}

//程序結束。

20220814

評論 搶沙發

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址

#用戶評價(20)

  • 來自大慶市的評價

    維修師傅響應的很快,專業性很強,目前時間還不是太長,不知道效果怎么樣,信賴,信賴,價格也是比較透明的,整體特別滿意的。給力

    2025-02-12 22:02:34
  • 來自蘇州市的評價

    工作人員態度態度很好,上門檢修,告訴我換零件挺貴的問我去換不換,我想那還是買個干凈的新機器吧,的服務有時候還是挺好的,有時候某件事就一般了。

    2025-02-26 08:54:22
  • 來自徐州市的評價

    上門準時,服務到位,工具專業。

    2025-02-09 11:58:28
  • 來自湖州市的評價

    本來還可以洗的 不過有點問題 拆開了我的洗衣機 說是主板問題 后來我表示費用太高 先不修。 后來直接不能用了 后來自己找器材打開里面 發現線都不插好導致不能用服務真的差

    2025-02-12 20:09:13
  • 來自雙鴨山市的評價

    我家洗衣機排水管堵了好多毛毛,通過平臺約了修理人員****,把洗衣機排水管通了一下收費*元。個人覺得收費太貴了。洗衣機本身沒問題,只是排水管堵了疏通一下就收*。

    2025-02-22 05:00:07
  • 來自紅河哈尼族彝族自治州的評價

    ?收到立馬打開看了一下,非常不錯,質量超好,顏值又高?,推薦推薦?真的很喜歡,完全超出期望值,發貨速度非???,包裝非常仔細、嚴實,運送速度很快,很滿意的一次購物

    2025-02-27 12:02:31
  • 來自三明市的評價

    黃師傅服務一流,技術精湛,維修質量非常棒,值得點贊!

    2025-02-21 11:04:14
  • 來自黃山市的評價

    上門準時,技術過硬,服務態度好,很快就修好了!

    2025-02-13 03:59:43
  • 來自鎮江市的評價

    剛好中午炒第三個菜的時候火就很小,交了天然氣費,晚上做飯還是一樣,第二天找了師傅上門維修,師傅上門還及時,技術嫻熟,維修后和之前正常的火一樣了,很不錯,服務也好

    2025-02-10 12:15:06
  • 來自海北藏族自治州的評價

    師傅非常專業,進門就換了鞋套,幾臺機子維修加氟很快就弄好了,高空作業的時候安全帶也弄得很規范

    2025-02-22 00:35:02
  • 來自黔西南布依族苗族自治州的評價

    師傅上門及時,修好就做飯,剛好核實,價格也不貴,非常滿意

    2025-02-05 15:20:17
  • 來自九江市的評價

    師傅工作很認真,周圍也防護的很好??照{得勤洗,保持空氣清新。

    2025-02-27 17:18:55
  • 來自德州市的評價

    師傅上門準時,服務態度好,很快幫我解決了問題了,值得推薦

    2025-02-18 01:20:07
  • 來自伊犁哈薩克自治州的評價

    服務態度好,技術專業,下次有問題還找這家。

    2025-02-28 14:50:07
  • 來自阿里地區的評價

    服務態度不錯 上門遵守 大晚上過了解決問題 檢查問題挺專業。解決問題迅速

    2025-02-22 19:19:18
  • 來自阜新市的評價

    付完款后師傅上門非???,很好溝通,價格不貴,很快就找到問題,修好了。下次有問題還找,贊一個!

    2025-02-18 18:54:09
  • 來自賀州市的評價

    燃氣灶過保修后,上聯系維修師傅上門維修,師傅上門很快,檢查毛病也很準確,一會功夫就給修好了,非常感謝維修師傅給我們帶來的方便,感謝!

    2025-02-23 04:08:04
  • 來自通化市的評價

    工作態度認真負責,好評好評!

    2025-02-20 17:07:42
  • 來自杭州市的評價

    非常靠譜的小哥,上門仔細檢查,戴了鞋套注意保持衛生,推薦推薦,五分好評

    2025-02-17 18:51:07
  • 來自揚州市的評價

    還不錯,維修好的,質保3個月

    2025-02-08 12:02:46