基于單片機的洗衣機控制系統(tǒng)的設計_第1頁
基于單片機的洗衣機控制系統(tǒng)的設計_第2頁
基于單片機的洗衣機控制系統(tǒng)的設計_第3頁
基于單片機的洗衣機控制系統(tǒng)的設計_第4頁
基于單片機的洗衣機控制系統(tǒng)的設計_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

摘要本文詳細介紹了國內洗衣機控制系統(tǒng)的開展現狀,開展中所面臨的問題。從產品質量、性能及應用方面看洗衣機機的差距,同時也詳盡的介紹了此次設計中最重要的組成部件單片機的概念、工作原理及設備總體結構,其中包括MCS-51的開展歷程,選型依據。根據洗衣機的控制要求,從功能要求、硬件設計、軟件設計三個方面描述了一個以51單片機為核心的洗衣機控制系統(tǒng)。基于MCS-51單片機的洗衣控制系統(tǒng),控制面板由按鍵、指示燈組成.按鍵選擇洗衣機工作方式,指示燈配合按鍵工作。洗衣機的整體電路模塊包括鍵盤矩陣、指示燈、電動機控制及電源電路.控制程序設計包括定時中斷效勞程序、外中斷效勞程序及主程序。關鍵詞:洗衣機;單片機;控制面板AbstractThisarticleintroducedindetailthedomesticwashercontrolsystem'sdevelopmentpresentsituation,inthedevelopmentfacesquestion.Simultaneouslyalsoinexhaustiveintroductionthisdesignmostimportantbuildingblockmonolithicintegratedcircuit'sconcept,principleofworkandequipmentgrossstructure,includingMCS-51thedevelopmentprocess,shapingbasis.Accondingtothewashingmachinecontrolrequirements,acontrolsystemwiththe51SCMasthecoreaboutwashingmachinesweredescribedinthefolloeingthreeaspectsoffunctionalrequirements,hardwaredesign,softwaredesign.BasedontheMCS-51microcontrollerlaundrycontrolsystem,controlpanelfromthebutton.Indicatorcomponents.buttontochoosewashingmachineswork,withakeyindicator.washingmachines,theoverallcircuitmoduleincludingkeyboardmatrix,lamp,motorcontrolandpowersupplycircuit.controlproceduresdesignedtimerinterruptserviceprocedures,externalinterruptserviceproceduresandthemainprogram.keyword:Washer;SingleChipMicyoco;controlpanel目錄第一章緒論11.1課題背景11.2洗衣機的開展歷史21.3洗衣機的分類41.4本課題的設計目標和意義4第二章單片機概論62.180C51單片機根底知識62.2單片機的分類122.3單片機特點12第三章洗衣機控制系統(tǒng)的硬件設計143.1核心單元153.2按鍵和開關163.3進/排水閥163.4特殊功能電路183.5電機控制193.6電源23第四章洗衣機控制系統(tǒng)的軟件設計254.1軟件構思254.2程序的執(zhí)行264.3子程序流程圖27附錄一29附錄二43參考文獻44致謝45第一章緒論1.1課題背景洗衣機是一種在家庭中不可缺少的家用電器,開展非??欤詣邮较匆聶C因使用方便得到大家的青睞,全自動即進水、洗滌、漂洗、脫水等一系列過程自動完成,控制器通常設有幾種洗滌程序,對不同的衣物可以選擇不同洗滌程序。隨著科學計數的開展,洗衣機的性能將會不斷完善。全自動洗衣機由于具有對衣物的磨損小、洗滌量大、節(jié)水等特點,越來越得到廣闊家庭的青睞。隨著社會的進步和生活水平的提高,人們對全自動洗衣機的功能多樣化、操作簡單化也提出了更高的要求。為適應這種變化,全自動洗衣機控制器已由機械式、混合式逐步過渡到全電子控制。單片機又稱微控制器,或稱嵌入式控制器。而現在的智能家電無一例外是采用微控制器來實現的,所以家用電器是單片機應用最多的領域之一。它是家用電實現智能化的心臟和大腦。由于家用電器體積小,故要求其控制器體積更小以便能嵌入其結構之中。而家用電器品種多,功能差異也大,所以又要求其控制器有靈活的控制功能。單片機以微小的體積和編程的靈活性而產生多種控制功能,完全可以滿足家用電器的需求。單片機是一個單芯片形態(tài),面向控制對象的嵌入式應用計算機系統(tǒng)。它的出現及開展使計算機技術從通用型數值計算領域進入到智能化的控制領域.從此,計算機技術在兩個重要領域——通用計算機領域和嵌入式計算機領域都得到了極其重要的開展,并正在深深地改變著我們的社會。單片機的結構特征是將組成計算機的根本部件集成在一塊晶體芯片上,構成一臺功能獨特的,完整的單片微型計算機。單片機獨特的結構決定了它具有如下特點。〔1〕高集成度,高可靠性單片機將各功能部件集成在一塊晶體芯片上,集成度很高,體積自然也是最小的。芯片本身是按工業(yè)測控環(huán)境要求設計的,內部布線很短,其抗工業(yè)噪音性能優(yōu)于一般通用的CPU。單片機程序指令,常數及表格等固化在ROM中不易破壞,許多信號通道均在一個芯片內,故可靠性高?!?〕控制功能強為了滿足對對象的控制要求,單片機的指令系統(tǒng)均有極豐富的條件:分支轉移能力,I/O口的邏輯操作及位處理能力,非常適用于專門的控制功能。〔3〕低電壓,低功耗為了滿足廣泛使用于便攜式系統(tǒng),許多單片機內的工作電壓僅為1.8V~3.6V,而工作電流僅為數百微安?!?〕優(yōu)異的性能價格比單片機的性能極高。為了提高速度和運行效率,單片機已開始使用RISC流水線和DSP等技術。單片機的尋址能力也已突破64KB的限制,有的已可到達1MB和16MB,片內的ROM容量可達62MB,RAM容量那么可達2MB.由于單片機的廣泛使用,因而銷量極大,各大公司的商業(yè)競爭更使價格十分低廉,其性能價格比極高。由于單片機功能的飛速開展,它的應用范圍日益廣泛,已遠遠超出了計算機科學的領域.小到玩具,信用卡,大到航天器,機器人,從實現數據采集,過程控制,模糊控制等智能系統(tǒng)到人類的日常生活,到處都離不開單片機。其主要的應用領如下〔1〕在測控系統(tǒng)中的應用單片機可以用于構成各種工業(yè)控制系統(tǒng),自適應控制系統(tǒng),數據采集系統(tǒng)等。例如,工業(yè)上的鍋爐控制,電機控制,車輛檢測系統(tǒng),水閘自動控制,數控機床及軍事上的雷達,導彈系統(tǒng)等?!?〕在智能化儀器儀表中的應用單片機應用于儀器儀表設備中促使儀器儀表向數字化,智能化,多功能化和綜合化等方向開展。單片機的軟件編程技術使長期以來測量儀表中的誤差修正,線性化的處理等難題迎刃而解〔3〕在機電一體化中的應用單片機與傳統(tǒng)的機械產品結合使傳統(tǒng)的機械產品結構簡化,控制走向智能化,構成新一代的機電一體化產品,這是機械工業(yè)開展的方向。〔4〕在智能接口中的應用計算機系統(tǒng),特別是較大型的工業(yè)測控系統(tǒng)中采用單片機進行接口的控制管理,單片機與主機并行工作,可大大提高系統(tǒng)的運行速度。例如,在大型數據采集系統(tǒng)中,用單片機對模/數轉換接口進行控制不僅可提高采集速度,還可以對數據進行預處理。如數字濾波,誤差修正,線性化處理等?!?〕在人類生活中的應用單片機由于其價格低廉,體積小巧,被廣泛應用在人類生活的諸多場合,如洗衣機,電冰箱,空調器,電飯煲,視聽音響設備,大屏幕顯示系統(tǒng),電子玩具,信用卡,樓宇防盜系統(tǒng)等,單片機將使人類的生活更加方便舒適,豐富多彩。1.2洗衣機的開展歷史1858年,一個叫漢密爾頓?史密斯的美國人在匹茨堡制成了世界上第一臺洗衣機。該洗衣機的主件是一只圓桶,桶內裝有一根帶有槳狀葉子的直軸。軸是通過搖動和它相連的曲柄轉動的。同年史密斯取得了這臺洗衣機的專利權。但這臺洗衣機使用費力,且損傷衣服,因而沒被廣泛使用,但這卻標志了用機器洗衣的開端。次年在德國出現了一種用搗衣杵作為攪拌器的洗衣機,當搗衣杵上下運動時,裝有彈簧的木釘便連續(xù)作用于衣服。19世紀末期的洗衣機已開展到一只用手柄轉動的八角形洗衣缸,洗衣時缸內放入熱肥皂水,衣服洗凈后,由軋液裝置把衣服擠干。1874年,“手洗時代〞受到了前所未有的挑戰(zhàn),美國人比爾?布萊克斯創(chuàng)造了木制手搖洗衣機。布萊克斯的洗衣機構造極為簡單,是在木筒里裝上6塊葉片,用手柄和齒輪傳動,使衣服在筒內翻轉,從而到達“凈衣〞的目的。這套裝置的問世,讓那些為提高生活效率而冥思苦想的人士大受啟發(fā),洗衣機的改良過程開始大大加快.1910年,美國的費希爾在芝加哥試制成功世界上第一臺電動洗衣機。電動洗衣機的問世,標志著人類家務勞動自動化的開端。1922年,美國瑪塔依格公司改造了洗衣機的洗滌結構,把拖動式改為攪拌式,使洗衣機的結構固定下來,這也就是第一臺攪拌式洗衣機的誕生。這種洗衣機是在筒中心裝上一個立軸,在立軸下端裝有攪拌翼,電動機帶動立軸,進行周期性的正反擺動,使衣物和水流不斷翻滾,相互摩擦,以此滌蕩污垢。攪拌式洗衣機結構科學合理,受到人們的普遍歡送。1932年,美國本德克斯航空公司宣布,他們研制成功第一臺前裝式滾筒洗衣機,洗滌、漂洗、脫水在同一個滾筒內完成。這意味著電動洗衣機的型式躍上一個新臺階,朝自動化又前進了一大步!1955年,在引進英國噴流式洗衣機的根底之上,日本研制出獨具風格、并流行至今的波輪式洗衣機。至此,波輪式、滾筒式、攪拌式在洗衣機生產領域三分天下的局面初步形成。60年代的日本出現了帶干桶的雙桶洗衣機,人們稱之為“半自動型洗衣機〞。70年代,生產出波輪式套桶全自動洗衣機。70年代后期,以電腦〔實際上微處理器〕控制的全自動洗衣機在日本問世,開創(chuàng)了洗衣機開展史的新階段。80年代,“模糊控制〞的應用使得洗衣機操作更簡便,功能更完備,洗衣程序更隨人意,外觀造型更為時尚。誕生了許多新水流洗衣機。此后,隨著電機驅動技術的開展與提高,日本生產出了電機直接驅動式洗衣機,省去了齒輪傳動和變速機構,引發(fā)了洗衣機驅動方式的巨大革命。之后,隨著科技的進一步開展,滾筒90年代,由于電機調速技術的提高,洗衣機實現了寬范圍的轉速變換與調節(jié),洗衣機已經成了大家耳濡目染的產品。伴隨著科技的進一步開展,相信新型更適合人們使用的洗衣時機給我們的生活帶來新的方式。1.3洗衣機的分類當今主流洗衣機主要有三大類,分別是波輪式洗衣機,滾筒式洗衣機和攪拌式洗衣機。三種洗衣機各有所長,下面我們詳細介紹一下三種洗衣機的特點:〔1〕波輪式洗衣機洗衣特點:微電腦控制洗衣及甩干功能、省時省力。缺點:耗電、耗水、衣物易纏繞、清潔性不佳?!?〕滾筒式洗衣機洗衣特點:微電腦控制所有功能衣物無纏繞。最不會損耗衣物的方式。缺點:耗時,時間是普通的幾倍,而且一旦關上門,洗衣過程中無法翻開,潔凈力不強?!?〕攪拌式洗衣機洗衣特點:衣物潔凈力最強,省洗衣粉。缺點:喜歡纏繞相比前兩種方式損壞性加大,噪音最大。1.4本課題的設計目標和意義用51系列單片機AT89C51控制全自動洗衣機的運行,使其自動的完成進水、洗滌、漂洗、脫水等功能。不同的洗衣程序洗滌、漂洗、脫水所用的時間不同,要求設計能夠實現一下功能:1、洗衣工作狀態(tài)功能:強、弱洗滌。要求強洗時正反轉驅動時間各為4S,間歇時間為1S;弱洗時正反轉驅動時間各為3S,間歇時間為1S。2、洗衣程序功能:含4種獨立程序,即標準洗衣程序、經濟洗衣、單獨洗衣、排水洗衣功能。標準程序是進水-洗滌-排水-進水-較長時間漂洗-排水-進水-較短時間漂洗-排水-脫水-報警。經濟洗衣程序是進水-洗滌-排水-進水較長時間漂洗-排水-報警。單獨洗衣程序是進水-洗滌-報警。排水洗衣程序是排水-脫水-報警。3、特殊功能:故障診斷、暫停、啟動、蓋開關保護、聲光指示等。進排水系統(tǒng)故障自動診斷功能:洗衣機在進水或排水過程中,假設在一定的時間范圍內進水或排水未能到達預定的水位,就說明進排水系統(tǒng)有故障,此故障由控制系統(tǒng)測知并通過警報程序發(fā)出警報信號,提醒操作者進行人工排除。洗衣期間平安保護功能:洗衣機在脫水期間,假設翻開機蓋時,洗衣機就會自動停止脫水操作。暫停功能:不管洗衣機工作在什么狀態(tài),當按下暫停鍵時,洗衣機需暫停工作,待啟動鍵按下后洗衣機又能按原來所選擇的工作方式繼續(xù)工作。聲光顯示功能:洗衣機各種工作方式的選擇和各種工作狀態(tài)均有聲光提示和顯示。基于單片機的自動洗衣機控制系統(tǒng)具有精度高、功能強、經濟性好的特點。無論在提高產品質量還是產品數量,節(jié)約能源還是改善勞動條件等方面都顯示出無比的優(yōu)越性。對基于單片機的全自動洗衣機控制系統(tǒng)設計進行深入研究,可使我們掌握全自動洗衣機這種重要家電的工作原理和控制系統(tǒng),進一步了解單片機在不同領域的應用方法,學會維修全自動洗衣機的根本技術,同時也為將來從事電子信息行業(yè)打下一定根底,所以本課題具有重大的意義。第二章單片機概論2.180C51單片機根底知識AT89C51是一種帶4K字節(jié)FLASH存儲器〔FPEROM—FlashProgrammableandErasableReadOnlyMemory〕的低電壓、高性能CMOS8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形及引腳排列如圖2-1所示:圖2-1單片機的外形及引腳主要特性:與MCS-51兼容4K字節(jié)可編程FLASH存儲器壽命:1000寫/擦循環(huán)數據保存時間:10年全靜態(tài)工作:0Hz-24MHz三級程序存儲器鎖定128×8位內部RAM32可編程I/O線兩個16位定時器/計數器5個中斷源可編程串行通道低功耗的閑置和掉電模式片內振蕩器和時鐘電路特性概述:AT89C51提供以下標準功能:4k字節(jié)Flash閃速存儲器,128字節(jié)內部RAM,32個I/O口線,兩個16位定時/計數器,一個5向量兩級中斷結構,一個全雙工串行通信口,片內振蕩器及時鐘電路。同時,AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時/計數器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。內部結構如圖2-2所示:圖2-280C51的內部結構引腳功能說明Vcc:電源電壓GND:地P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數據總線復位口。作為輸出口用時,每位能吸收電流的方式驅動8個邏輯門電路,對端口寫“1”在訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址〔低8位〕和數據總線復用,在訪問期間激活內部上拉電阻。P1口:P1是一個帶內部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅動〔吸收或輸出電流〕4個TTL邏輯門電路。對端口寫“1”Flash編程和程序校驗期間,P1接受低8位地址。P2口:P2是一個帶有內部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅動〔吸收或輸出電流〕4個TTL邏輯門電路。對端口寫“1”在訪問外部程序存儲器獲16位地址的外部數據存儲器時,P2口送出高8位地址數據。在訪問8位地址的外部數據存儲器時,P2口線上的內容〔也即特殊功能存放器〔SFR〕區(qū)中R2存放器的內容〕,在整個訪問期間不改變。P3口:P3口是一組帶有內部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅動〔吸收或輸出電流〕4個TTL邏輯門電路。對P3口寫入“1”時,他們被內部上拉電阻拉高并可作為輸出口。做輸出端時,被外部拉低的P3口將用上拉電阻輸出電流〔Iil〕。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,如下表2-1表2-1P3口各引腳的作用端口引腳第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外中斷0)P3.3INT1(外中斷1)P3.4T0(定時/計數器0)P3.5T1(定時/計數器1)P3.6WR(外部數據存儲器寫選通)P3.7RD(外部數據存儲器讀選通)P3口還接收一用于flash閃速存儲器編程和程序校驗的控制信號。RST:復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將使單片機復位。ALE/PROG:當訪問外部程序存儲器或數據存儲器時,ALE〔地址所存允許〕輸出脈沖用于所存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE仍以時鐘振蕩頻率的1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE脈沖。對flash存儲器編程期間,該引腳還用于輸入編程脈沖〔^PROG〕。如有不要,可通過對特殊功能存放器〔SFR〕區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該外置位后,只要一條MOVX和MOVC指令ALE才會被激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設置ALE無效。PSEN:程序存儲允許〔^PSEN〕輸出是外部程序存儲器的讀選通信號,當AT89C51由外部程序存儲器取指令〔或數據〕時,每個機器周期兩個^PSEN有效,即輸出兩個脈沖。在此期間,當訪問外部數據存儲器,這兩次有效的^PSEN信號不出現。EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器〔地址為0000HFFFFH〕,EA端必須保持低電平〔接地〕。需注意的是;如果加密位LB1被編程,復位時內部會鎖存EA端狀態(tài)。如EA端為高電平〔接VCC端〕,CPU那么執(zhí)行內部程序存儲器中的指令。Flash存儲器編程時,該引腳加上+12V的編程允許電源VPP,當然這必須是該器件是使用12V編程電壓VPP.XTAL1:振蕩器反相放大器的及內部時鐘發(fā)生器的輸出端。XTAL2:振蕩器反相放大器的輸出端。時鐘振蕩器:AT89C51中有一個用于構成內部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反響的片外石英晶體或陶瓷諧振器一起構成自激振蕩器,振蕩電路參見圖5。外接石英晶體〔或陶瓷諧振器〕及電容C1、C2接在放大器的反響回路中構成并聯(lián)振蕩電路。對外接電容C1、C2雖然沒有十分嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的上下、振蕩器的穩(wěn)定性、起振的難易程度及溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用30PF+10PF,而如使用陶瓷諧振器建議選擇40PF+10PF。用戶也可以采用外部時鐘。采用外部時鐘的電路如圖5右所示。這種情況下,外部時鐘脈沖接到XTAL1端,即內部時鐘發(fā)生器的輸入端,XTAL2那么懸空由于外部時鐘信號是通過一個2分頻觸發(fā)器后作為內部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應符合產品技術要求。空閑模式在空閑工作模式狀態(tài),CPU保持睡眠狀態(tài)而所有片內的外設仍保持激活狀態(tài),這種方式由軟件產生。此時,片內RAM和所有特殊功能存放器的內容保持不變??臻e模式可由任何允許的中斷請求或硬件復位終止。終止空閑工作模式的方法有兩種,其一是任何一條被允許中斷的事件被激活,即可終止空閑工作模式。程序會首先響應中斷,進入中斷效勞程序,執(zhí)行完中斷效勞程序并僅隨終端返回指令,下一條要執(zhí)行的指令就是使單片機進入空閑模式那條指令后面的一條指令。其二是通過硬件復位也可將空閑工作模式終止,需要注意的是,當由硬件復位來終止空閑模式時,CPU通常是從激活空閑模式那條指令的下一條指令開始繼續(xù)執(zhí)行程序的,要完成內部復位操作,硬件復位脈沖要保持兩個機器周期〔24個時鐘周期〕有效,在這種情況下,內部禁止CPU訪問片內RAM,而允許訪問其它端口。為了防止可能對端口產生以外寫入,激活空閑模式的那條指令后一條指令不應該是一條對端口或外部存儲器的寫入指令,如圖2-3所示:圖2-3振蕩電路表2-2空閑和掉電模式外部引腳狀態(tài)模式程序存儲器ALE^PSENPORT0PORT1PORT2PORT3空閑模式內部11數據數據數據數據空閑模式外部11浮空數據數據數據掉電模式內部00數據數據數據數據掉電模式外部00浮空數據數據數據掉電模式在掉電模式下,震蕩器停止工作,進入掉電模式的指令是最后一條被執(zhí)行的指令,片內RAM和特殊功能存放器的內容在終止掉電模式前被凍結。退出掉電模式的唯一方法是硬件復位,復位后將重新定義全部特殊功能存放器但不改變RAM中的內容,在VCC恢復到正常工作電平前,復位應無效,且必須保持一定時間以使振蕩器重啟動并穩(wěn)定工作。程序存儲器的加密:AT89C51可使用對芯片上的3個加密位進行編程〔P〕或不編程〔U〕來得到如下表2-3所示的功能:表2-3加密位保護功能表程序加密位保護類型LB1LB2LB31UUU沒有程序保護功能2PUU禁止從外部程序存儲器中執(zhí)行MOVC指令讀取內部程序存儲器的內容3PPU除上表功能外,還禁止程序校驗4PPP除以上功能外,同時禁止外部執(zhí)行當加密位LB1被編程時,在復位期間,EA端的邏輯電平被采樣并鎖存,如果單片機上電后一直沒有復位,那么鎖存起的初始值是一個隨機數,且這個隨機數會一直保持到真正復位為止。為使單片機能正常工作,被鎖存的EA電平值必須與該引腳當前的邏輯電平一致。此外,加密位只能通過整片擦除的方法去除。FLASH閃速存儲器的編程:AT89C51單片機內部有4K字節(jié)的FLASHPEROM,這個FLASH存儲陣列出廠時已處于擦除狀態(tài)〔即所有存儲單元的內容均為FFH〕,用戶隨時可對其進行編程。編程接口可接收高電平〔+12V〕或低電平〔VCC〕的允許編程信號,低電平編程模式適合于用戶再線編程系統(tǒng),而高電平編程模式可與通用EPROM編程器兼容。AT89C51單片機中,有些屬于低電壓編程方式,而有些那么是高電平編程方式,用戶可從芯片上的型號和讀取芯片內的簽名字節(jié)獲得該信息,見下表2-4。表2-4芯片及信息Vpp=12vVpp=5v芯片頂面標識AT89C51xxxxyywwAT89C51xxxx-5yyww簽名字節(jié)(030H)=1EH(031H)=51H(032H)=FFH(030H)=1EH(031H)=51H(032H)=05HAT89C51的程序存儲器陣列是采用字節(jié)寫入方式編程的,每次寫入一個字節(jié),要對整個芯片內的PEROM程序存儲器寫入一個非空字節(jié),必須使用片擦除的方式將整個存儲器的內容去除。2.2單片機的分類單片機作為計算機開展的一個重要領域,應用一個較科學的分類方法。根據目前開展情況,從不同角度單片機大致可以分為通用型/專用型、總線型/非總線型及工控型/家電型?!?〕通用型/專用型這是按單片機適用范圍來區(qū)分的。例如,80C51是通用型單片機,它不是為某種專用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC接口等功能的溫度測量控制電路?!?〕總線型/非總線型這是按單片機是否提供并行總線來區(qū)分的??偩€型單片機普遍設置有并行地址總線、數據總線、控制總線,這些引腳用以擴展并行外圍器件都可通過串行口與單片機連接,另外,許多單片機已把所需要的外圍器件及外設接口集成一片內,因此在許多情況下可以不要并行擴展總線,大大減省封裝本錢和芯片體積,這類單片機稱為非總線型單片機?!?〕控制型/家電型這是按照單片機大致應用的領域進行區(qū)分的。一般而言,工控型尋址范圍大,運算能力強;用于家電的單片機多為專用型,通常是小封裝、低價格,外圍器件和外設接口集成度高。顯然,上述分類并不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是總線型,還可以作工控用。2.3單片機特點單片機除了體積小、價格低、性能強、速度快、用途廣、靈活性強、可靠性高等優(yōu)點外,它與通用計算機相比,在硬件結構和指令設置上還具有以下獨特之處:1、存儲器ROM和RAM是嚴格分工的。ROM用做程序存儲器,只放程序、常數和數據表格,而RAM用做數據存儲器,用來臨時存放數據和變量。這樣的設計方案使單片機更適用于實時控制系統(tǒng)。配置較大程序存儲空間的ROM。將已調試好的程序固化,這樣不僅掉電時程序不喪失,還防止了程序被破壞,從而確保了程序的平安性。實時控制僅需容量較小的RAM,用于存放少量隨機數據,這樣有利于提高單片機的操作速度。2、采用面向控制的指令系統(tǒng)。在實時控制方面,尤其是在位控制方面單片機有著不俗的表現。3、輸入/輸出端口引腳通常設計有多種功能。在設計時,究竟使用多功能引腳的哪一種功能,可以由用戶編程確定。4、品種規(guī)格的系列化。屬于同一個產品系列、不同型號的單片機,通常具有相同的內核、相同或者兼容的指令系統(tǒng),其主要的差距僅在于片內配置了一些不同種類或者不同數量的功能部件,以適用不同的被控對象。5、單片機的硬件功能具有廣泛的通用性。同一種單片機可以用在不同的控制系統(tǒng)中,只是其中所配置的軟件不同而已。換言之,給單片機固化上不同的軟件,便可形成用途不同的專用智能芯片,有時將這種芯片稱為固件。第三章洗衣機控制系統(tǒng)的硬件設計洗衣機是一種在家庭中不可缺少的家用電器,開展非???全自動式洗衣機因使用方便得到大家的青睞,全自動即進水、洗滌、漂洗、脫水等一系列過程自動完成,控制器通常設有幾種洗滌程序,對不同的衣物可供用戶選擇。那么先來說說它的硬件設計。硬件電路框圖如圖3-1所示,在該硬件系統(tǒng)中主要由核心單元電路、進/排水閥控制電路、電機控制電路、按鍵和開關電路、輸出控制電路、特殊功能電路、電源電路等單元組成。CPUCPU〔AT89C51〕按鍵和開關電路特殊功能電路進/排水閥電路電機控制電路輸出控制電路電源電路圖3-1硬件電路框圖3.1核心單元單芯片微處理器是屬于EmbeddedSystem(嵌入系統(tǒng)),此系統(tǒng)的是把CPU加上一些少量的記憶體和輸出入組件(I/O),都嵌入在一顆芯片內,再使用特定的組譯和編譯軟體編輯程序,利用燒錄器把程序儲存到單芯片,如此加上一些簡單的周邊電路。即可變成一個控制系統(tǒng),所以單芯片又稱為微程控器〔microcontroller〕。8051是由INTEL公司開展出來的8bitMCU(微處理器),目前在工業(yè)界的應用相當的普及化,目前已有相當多家的公司也制造與8051兼容的單晶片,除的根本的構造相同外,更增加其周邊的控制功能,例如DALLAS公司生產的DS87C550,已經內建A/D轉換和PWM,如此可減少周邊組件和布線的本錢,而國內的華邦電子公司也推出了40MHZW78C51/52/54/58ATMEL半導體公司的AT89C51系列的產品,不需紫外線的去除,而是用電子式抹除,比一般的51系列更為方便,目前在一般的學校實習,大都采用此系列產品。PHILIPS半導體公司出產的P87C552家族,除了51本身的UART外,更增加的I2C(Inter-integratedCircuit)的功能,這是利用SDA和SCL兩條傳輸線,和周邊的IC互相溝通、傳送資料,而且這些IC都必須有I2C的編號,這使得選購IC時,受到一些限制,所一在目前的工業(yè)應用上,還不是相當的普及化。由于51家族繁多,所以在設計之前,必須針對51家族功能有相當的認識如此才能夠選擇自己所需,而且價格廉價的MCU。采用AT89C51作為控制核心。其中P1.0到P2.0分別控制標準、經濟、單獨、排水、強洗、弱洗、洗滌、漂洗、脫水的LED指示燈。由于AT89C2051每根I/O線的低電平驅動電流到達20mA,所有I/O線的總驅動電流達80mA,而這7個燈最多只有3個燈同時亮,每個燈只需3.5mA左右的電流,再算上其它I/O線的驅動電流,總電流也不會超過80mA,所以可這樣直接驅動LED發(fā)亮;P3.0接程序選擇鍵,P3.1接強弱選擇鍵,P3.2接暫停/啟動/解除警報鍵,P3.6接水位開關,用于進/排水過程中的水位控制,為CPU提供洗衣機水位信息,P3.7接蓋開關,這是平安保護措施,P2.1來控制蜂鳴器,P2.2引腳來控制進水閥和進水狀態(tài)顯示燈,P2.3引腳來控制排水閥和排水狀態(tài)顯示燈,單片機的復位引腳RST接洗衣機的強制復位鍵。3.2按鍵和開關如圖3-2所示:圖3-2按鍵和開關〔1〕強弱洗選擇鍵K3:洗衣機的強弱洗可以通過該鍵來循環(huán)選擇,系統(tǒng)默認下為強洗狀態(tài)?!?〕程序選擇鍵K2:通過該鍵可以選擇不同的洗衣程序,可以選擇的洗衣程序有標準洗衣、經濟洗衣、單獨洗衣、排水洗衣。系統(tǒng)默認下為標準洗衣?!?〕暫停/啟動/解除警報鍵K4:在洗衣機未進入工作狀態(tài)或處于暫停狀態(tài)期間,該鍵用來啟動洗衣機進入工作狀態(tài)或恢復到原來的工作狀態(tài);在進入工作狀態(tài)后,按觸該鍵那么進入暫停狀態(tài);報警期間,按該鍵停止報警,并回到初始的待命狀態(tài)?!?〕強制復位鍵K1:按K1鍵,洗衣機將回到初始的設置,即程序直接回到標準強洗狀態(tài)。〔5〕水位開關:水滿時開關閉合。在進水期間,系統(tǒng)不斷檢測該開關,假設在4分鐘之內檢測到該開關閉合,那么停止進水。否那么認進水出故障,關閉進水閥,并警報提示;在排水期間,系統(tǒng)不斷檢測該開關,假設在1分鐘內檢測不到該開關斷開,那么認為排水出故障,關閉排水閥,并警報提示,否那么按正常處理?!?〕蓋開關:脫水期間假設翻開機蓋那么該開關閉合,引起中斷,洗衣機就會自動停止脫水操作,合上蓋后又繼續(xù)脫水。3.3進/排水閥進/排水閥電路圖如圖3-3所示:圖3-3進/排水閥電路圖在控制系統(tǒng)中,分別用P2.2和P2.3兩引腳控制進水閥和排水閥的開啟和關閉。當引腳被設置為高電平,電磁閥開啟:當引腳被設置為低電平,電磁閥關閉。〔1〕進水電磁閥主要包括電磁線圈、鐵芯、橡皮膜和彈簧等功能部件。當P3.2引腳為低電平,進水電磁閥的線圈不通電,鐵芯受彈簧力和自身的重力下壓其頂端的橡膠膜壓住橡皮膜的導流孔。此時,自來水進入到橡皮膜的上方,膜片受到水壓而把出水口堵住。當P3.2引腳為高電平時,進水電磁閥的線圈通電,電磁力克服彈簧和鐵芯的重力將鐵芯向上提升,膜片中心的導流孔經出水口向洗地桶注水〔2〕排水電磁閥主要包括電磁和排水閥兩個局部電磁鐵的主要作用是控制進水閥的開啟和關閉,在排水電磁鐵吸合排水閥開啟的同時,控制減速離合器制動臂動作來轉換洗衣機的工作狀態(tài)〔即控制洗衣機在洗滌和脫水中的轉速〕洗衣機排水時,置P3.3引腳為高電平,電磁鐵線圈通電而吸合銜鐵,通過閥桿拉開排水閥體,排水開始。排水時間終了,置P3.3為低電平,電磁鐵線圈斷電而將銜鐵釋放,排水閥復位,排水結束。輸出全部采用固態(tài)繼電器SAI2403控制,包括控制電機正反轉、控制進水閥和排水閥開啟或關閉。SAI2403的控制電流6~30mA,在這里取10mA,加上指示燈的電流〔取3~4mA〕,總共需要14mA的驅動電流,所以采用7406來提高驅動能力。7406是集電極開路的緩沖/驅動器,其低電平驅動能力到達40mA。另外,還在可控硅輸出回路上增加了阻容吸收回路來保護可控硅。3.4特殊功能電路特殊功能電路圖如圖3-4所示:圖3-4特殊功能電路〔1〕LED指示局部:用10個LED指示各狀態(tài)的運行。LED1指示電源狀態(tài),LED2到LED5分別用來指示標準程序、經濟程序、單獨程序、排水程序四種洗衣工作程序,LED6用于指示強洗狀態(tài),LED7用于指示弱洗狀態(tài),LED8用于指示洗滌狀態(tài),LED9用于指示漂洗狀態(tài),LED10用于指示脫水狀態(tài)?!?〕蜂鳴器控制局部:通過CPU的P2.1輸出頻率為1KHz的脈沖信號來控制喇叭。當洗衣機出現故障或者當執(zhí)行完洗衣機設定的程序后也會出現報警省聲,提醒操作者執(zhí)行人為操作。蜂鳴器的設計如下圖,使用了一支PNP三極管S8850來驅動蜂鳴器,當單片機的P2.1為高電平時,三極管不導通;當P2.1為低電平時,三極管導通,蜂鳴器獲得了一個高電平信號,發(fā)出報警聲音。在不發(fā)音的時候,置P2.1為高電平,阻止三極管導通,如圖3-5所示圖3-5蜂鳴器電路3.5電機控制電機的選?。航弧⒅绷鲀捎秒妱訖C現在比擬常用的步進電機包括反響式步進電機、永磁式步進電機、混合式步進電機和單相式步進電機等。其中反響式步進電機的轉子磁路由軟磁材料制成,定子上有多相勵磁繞組,利用磁導的變化產生轉矩?,F階段,反響式步進電機獲得最多的應用。常用單相交流感應電動機種類在家用電器設備中,常配有小型單相交流感應電動機。交流感應電動機因應用類別的差異,一般可分為分相式電動機、電容啟動式電動機、永久分相式電容電動機、罩極式電動機、永磁直流電動機及交直流電動機等類型。一般的三相交流感應電動機在接通三相交流電后,電機定子繞組通過交變電流后產生旋轉磁場并感應轉子,從而使轉子產生電動勢,并相互作用而形成轉矩,使轉子轉動。但單相交流感應電動機,只能產生極性和強度交替變化的磁場,不能產生旋轉磁場,因此單相交流電動機必須另外設計使它產生旋轉磁場,轉子才能轉動,所以常見單相交流電機有分相啟動式、罩極式、電容啟動式等種類?!?〕分相啟動式電動機分相式電動機廣泛應用于電冰箱、洗衣機、空調等家用電器中。該電機有一個鼠籠式轉子和主、副兩個定子繞組。兩個繞組相差一個很大的相位角,使副繞組中的電流和磁通到達最大值的時間比主繞組早一些,因而能產生一個環(huán)繞定子旋轉的磁通。這個旋轉磁通切割轉子上的導體,使轉子導體感應一個較大的電流,電流所產生的磁通與定子磁通相互作用,轉子便產生啟動轉矩。當電機一旦啟動,轉速上升至額定轉速70%時,離心開關脫開副繞組即斷電,電機即可正常運轉?!?〕罩極式電動機罩極式單相交流電動機,它的結構簡單,其電氣性能略差于其他單相電機,但由于制作本錢低,運行噪聲較小,對電器設備干擾小,所以被廣泛應用在電風扇、電吹風、吸塵器等小型家用電器中。罩極式電動機只有主繞組,沒有副繞級〔啟動繞組〕,它在電機定子的兩極處各設有一副短路環(huán),也稱為電極罩極圈。當電動機通電后,主磁極局部的磁場產生的脈動磁場感應短路而產生二次電流,從而使磁極上被罩局部的磁場,比未罩住局部的磁場滯后些,因而磁極構成旋轉磁場,電動機轉子便旋轉啟開工作。罩極式單相電動機還有一個特點,即可以很方便地轉換成二極或四極轉速,以適應不同轉速電器配套使用?!?〕電容式啟動電動機該類電動機可分為電容分相啟動電機和永久分相電容電機。這種電機結構簡單,啟動快速,轉速穩(wěn)定,被廣泛應用在電風扇、排風扇、抽油煙機等家用電器中。電容分相式電動機在定子繞組上設有主繞組和副繞組〔啟動繞組〕,并在啟動繞組中串聯(lián)大容量啟動電容器,使通電后主、副繞組的電相角成90°,從而能產生較大的啟動轉矩,使轉子啟動運轉。對于永久分相電容電動機來說,均與啟動繞組串接。由于永久分相電機其啟動的轉矩較小,因此很適于排風機、抽風機等要求啟動力矩低的電器設備中應用。電容式啟動電動機,由于其運行繞組分正、反相繞制設定,所以只要切換運行繞組和啟動繞組的串接方向,即可方便實現電機逆、順方向運轉?!?〕交、直流兩用電動機一般常用單相交流電動機,在交流50Hz電源中運行時,電動機轉速較高的也只能達每分鐘3000轉。而交直流兩用電動機在交流或直流供電下,其電機轉速可高達20000轉,同時其電機的輸出啟動力矩也大,所以盡管電機體積小,但由于轉速高輸出功率大,因此交直流兩用電動機在洗衣機、吸塵器、排風扇等家用電器中得以應用。此外,在直流電動機中還有一種結構更為簡單、用在玩具上的電機,這種電機是用永久磁鐵作固定磁場的電動機,在電子玩具、電動剃須刀、微型按摩器等日用小電器中得以廣泛應用。直流電動機按勵磁方式不同可分為他勵、并勵、串勵和復勵四種。下面一常用的他勵和并勵電動機為例介紹其機械特性、起動、反轉和調速,他勵和并勵電動機只是連接方式上的不同,兩者的特性是一樣的,如圖3-6所示。圖3-6洗衣機電機控制由于電動機一般是在額定狀態(tài)下運行的,它的磁路已接近于飽和,所以在一定負載下,通常是減小磁通調速〔Φ<ΦN〕,轉速上調〔n>nN〕。調磁調速是恒功率調速,即轉速升高后,輸出轉距必須減小,否那么電樞電流Ia會超過原來的額定電流,使電動機發(fā)熱燒壞。調磁調速的優(yōu)點:1.調速平滑,可得到無級調速;2.調速經濟,控制方便;3.機械特性較硬,穩(wěn)定性較好。對專門生產的調磁調速的電動機,其調速幅度可到達3~4倍改變電壓U〔調壓調速〕當保持他勵直流電動機的勵磁電流If為額定值時,降低電樞電壓U,使轉速n降低。由式可見,在一定負載下,U愈低,轉速n愈小,但機械特性的硬度不變,見圖3-7圖3-7電壓調速曲線一般電動機都處在額定狀態(tài)下運行,再進行調壓調速時,為保證電動機的絕緣,一般是將電動機的電壓下調U<UN,而轉速也下調n<nN。調壓調速是在額定電流下調速,是恒轉距調速。調壓調速的優(yōu)點:1.機械特性較硬,電壓降低后硬度不變,穩(wěn)定性較好。2.調速幅度較大,其調速幅度可到達6~10倍。3.可均勻調節(jié)電樞電壓,得到平滑的無級調速。這里采用電壓調節(jié)方式實現對直流伺服電機的調速。交流電機M2控制系統(tǒng)目前較常用的交流電動機有兩種:1、三相異步電動機。2、單相交流電動機。第一種多用在工業(yè)上,而第二種多用在民用電器上。三相異步電動機的旋轉原理三相異步電動機要旋轉起來的先決條件是具有一個旋轉磁場,三相異步電動機的定子繞組就是用來產生旋轉磁場的。我們知道,但相電源相與相之間的電壓在相位上是相差120度的,三相異步電動機定子中的三個繞組在空間方位上也互差120度,這樣,當在定子繞組中通入三相電源時,定子繞組就會產生一個旋轉磁場,其產生的過程如圖1所示。圖中分四個時刻來描述旋轉磁場的產生過程。電流每變化一個周期,旋轉磁場在空間旋轉一周,即旋轉磁場的旋轉速度與電流的變化是同步的。旋轉磁場的轉速為:n=60f/P式中f為電源頻率、P是磁場的磁極對數、n的單位是:每分鐘轉數。根據此式我們知道,電動機的轉速與磁極數和使用電源的頻率有關,為此,控制交流電動機的轉速有兩種方法:1、改變磁極法;2、變頻法。以往多用第一種方法,現在那么利用變頻技術實現對交流電動機的無級變速控制。圖3-8三相異步電機工作圖觀察圖還可發(fā)現,旋轉磁場的旋轉方向與繞組中電流的相序有關。相序A、B、C順時針排列,磁場順時針方向旋轉,假設把三根電源線中的任意兩根對調,例如將B相電流通入C相繞組中,C相電流通入B相繞組中,那么相序變?yōu)椋篊、B、A,那么磁場必然逆時針方向旋轉。利用這一特性我們可很方便地改變三相電動機的旋轉方向。定子繞組產生旋轉磁場后,轉子導條〔鼠籠條〕將切割旋轉磁場的磁力線而產生感應電流,轉子導條中的電流又與旋轉磁場相互作用產生電磁力,電磁力產生的電磁轉矩驅動轉子沿旋轉磁場方向以n1的轉速旋轉起來。一般情況下,電動機的實際轉速n1低于旋轉磁場的轉速n。因為假設n=n1,那么轉子導條與旋轉磁場就沒有相對運動,就不會切割磁力線,也就不會產生電磁轉矩,所以轉子的轉速n1必然小于n。為此我們稱三相電動機為異步電動機單相交流電動機的旋轉原理單相交流電動機只有一個繞組,轉子是鼠籠式的。當單相正弦電流通過定子繞組時,電動機就會產生一個交變磁場,這個磁場的強弱和方向隨時間作正弦規(guī)律變化,但在空間方位上是固定的,所以又稱這個磁場是交變脈動磁場。這個交變脈動磁場可分解為兩個以相同轉速、旋轉方向互為相反的旋轉磁場,當轉子靜止時,這兩個旋轉磁場在轉子中產生兩個大小相等、方向相反的轉矩,使得合成轉矩為零,所以電動機無法旋轉。當我們用外力使電動機向某一方向旋轉時〔如順時針方向旋轉〕,這時轉子與順時針旋轉方向的旋轉磁場間的切割磁力線運動變小;轉子與逆時針旋轉方向的旋轉磁場間的切割磁力線運動變大。這樣平衡就打破了,轉子所產生的總的電磁轉矩將不再是零,轉子將順著推動方向旋轉起來。

要使單相電動機能自動旋轉起來,我們可在定子中加上一個起動繞組,起動繞組與主繞組在空間上相差90度,起動繞組要串接一個適宜的電容,使得與主繞組的電流在相位上近似相差90度,即所謂的分相原理。這樣兩個在時間上相差90度的電流通入兩個在空間上相差90度的繞組,將會在空間上產生〔兩相〕旋轉磁場。在這個旋轉磁場作用下,轉子就能自動起動,起動后,待轉速升到一定時,借助于一個安裝在轉子上的離心開關或其他自動控制裝置將起動繞組斷開,正常工作時只有主繞組工作。因此,起動繞組可以做成短時工作方式。但有很多時候,起動繞組并不斷開,我們稱這種電動機為電容式單相電動機,要改變這種電動機的轉向,可由改變電容器串接的位置來實現。3.6電源除了220V的電源,我們還選擇了LM7805三端穩(wěn)壓器產生一個+5V的電源。其電路如圖3-9所示。圖3-9+5V電源電路三端固定輸出集成穩(wěn)壓器,它是一種串連調整式穩(wěn)壓器。它將全部電路集成在單塊硅片上,整個集成穩(wěn)壓電路只有輸入、輸出和公共三個引出端,使用非常方便。典型的有78××正電壓輸出系列,79××負電壓輸出系列。當輸入的電壓VI、輸出電流IO或溫度變化時,輸出電壓VO可保持不變;另外,當輸出短路??墒馆敵鲭娏鱅O限制為一定值;假設穩(wěn)壓器過熱,那么它就停止工作,以免穩(wěn)壓器遭到損壞。三端固定輸出電壓集成穩(wěn)壓器,因內部有過熱、過流保護電路,因此它的性能優(yōu)良、可靠性高。有因這種穩(wěn)壓器具有體積小、使用方便、價格低廉等優(yōu)點,所以我們選用了這種芯片。第四章洗衣機控制系統(tǒng)的軟件設計4.1軟件構思根據硬件設計要求,控制主程序流程圖如圖4-1所示。洗衣機通上電以后,單片機上電,首先進行程序的初始化,包括定時器,外部中斷等初始化,以及各參數初始值的設定。默認洗衣方式為標準強洗,漂洗次數兩次。然后掃描剩余鍵盤的狀態(tài)。確定強度和漂洗次數。當啟動鍵按下以后,洗衣機進入待命狀態(tài),完成進水——洗滌——漂洗——脫水——報警的循環(huán)過程。當洗衣機結束時候,蜂鳴器發(fā)聲。上電復位上電復位初始化掃描K2、K3進水程序啟動否是否4分鐘內水位開關是否閉合是洗滌程序漂洗、脫水程序排水程序1分鐘內水位開關是否斷開是結束人工故障處理否否圖4-1主程序流程圖4.2程序的執(zhí)行從主程序框圖中可以看出程序的根本流程,系統(tǒng)上電復位后,首先進行初始化,默認標準洗衣工作程序和強洗方式,然后掃描K2、K3鍵和啟動鍵K4,這時洗衣機出于待命狀態(tài),通過K2、K3可以改變洗衣工作程序和強/弱洗衣方式。掃描過程中發(fā)現啟動鍵K4按下時,洗衣機從待命狀態(tài)變?yōu)楣ぷ鳡顟B(tài)。洗衣機進入工作程序后,系統(tǒng)根據flag_SEL_ChengXu的值來判斷程序的選擇,按下K2鍵flag_SEL_ChengXu的值自加1,flag_SEL_ChengXu的值為0時表示標準洗衣,flag_SEL_ChengXu的值為1時,表示經濟洗衣,flag_SEL_ChengXu的值為2時,表示單獨洗衣,flag_SEL_ChengXu的值為3時,表示排水,這時程序直接跳至排水操作程序段,執(zhí)行單獨排水操作,否那么進入進水操作程序。進水操作將P3.2引腳為高電平時,進水電磁閥的線圈通電,電磁力克服彈簧和鐵芯的重力將鐵芯向上提升,膜片中心的導流孔經出水口向洗地桶注水。進水期間系統(tǒng)不斷檢測水位開關的狀態(tài),當檢測到水位開關閉合時,說明進水已到達預定水位了,如果在規(guī)定的時間內沒能檢測到水位開關閉合的話,,那就說明進水系統(tǒng)發(fā)生了故障,此時洗衣機退出洗衣工作狀態(tài),程序跳轉到報警程序進行報警,提醒操作者進行故障處理。正常情況下,進水期間檢測到水位開關閉合時,說明水位已經到達預定水位,這時洗衣機將進入下一個程序即洗滌程序。因為電機在洗滌或者漂洗工作狀態(tài)時有正、反轉和間歇三種狀態(tài),所以用Motors這個變量來控制電機的這三種狀態(tài),當Motors=0時電機正轉,當Motors=1時電機停止,當Motors=2時電機反轉。到達預定的洗滌時間后,系統(tǒng)進入下一條指令,進入排水操作,在排水過程中系統(tǒng)會不斷檢測水位開關,在規(guī)定時間內檢測不到水位開關斷開的話,說明排水系統(tǒng)有故障,程序跳轉到報警程序進行報警,提醒操作者進行故障處理。排水結束后,洗衣機接著執(zhí)行脫水操作,P2.3維持置位狀態(tài),保持排水閥開啟,利用Motors來控制電機的正轉、反轉和停止。當執(zhí)行完脫水程序后,系統(tǒng)會判斷是否會有下一步驟,如果沒有那就說明洗衣程序終止,此時觸發(fā)警報,提醒操作者程序執(zhí)行完畢。洗衣機的暫停中斷在洗衣機進入工作狀態(tài)后,中斷請求即被設為允許,中斷請求有效,而蓋開關只有在洗衣機進入高速脫水的工作進程時,中斷請求才被設置為允許,請求信號有效。4.3子程序流程圖〔1〕洗滌過程流程圖:按下啟動按扭,開始進水,進水到規(guī)定高度,使水位開關接通,實現洗滌正轉,并停止進水。在強洗狀態(tài)下洗滌正轉4S后,停止1S,開始反轉4S〔弱洗狀態(tài)下是正轉3S后,停止1S,開始反轉3S〕,直到規(guī)定的洗滌時間結束,開始排水,由于排水,水位降低,當水位低于規(guī)定下限水位時,低水位開關接通,排水結束后并判斷是否重復進行洗滌,假設不需要,洗滌程序結束如圖4-2所示:在規(guī)定時間內檢測到水位開關閉合,開始洗滌在規(guī)定時間內檢測到水位開關閉合,開始洗滌根據過程代碼獲取電機正轉-停止-反轉的時間周期啟動,開始進水電機動作暫停處理是否否是是否排水是結束是否暫停是否繼續(xù)時間到否是否重復洗滌否圖4-2洗滌流程圖〔2〕脫水過程流程圖:按下脫水按鈕,洗衣機翻開排水閥,電動機開始工作,在高速脫水過程中如果蓋被翻開,那洗衣機就會被強制停止,脫水時間結束后判定是否還要繼續(xù)脫水,假設不需要就表示脫水結束,警報提醒操作者脫水結束,如圖4-3所示:開始開始是觸發(fā)中斷電機停止電機動作是否暫停處理是否是否是是是否繼續(xù)是否暫停時間到否是否重復脫水否報警平安開關是否斷開否平安開關是否斷開結束圖4-3脫水流程圖附錄一源程序/***************************頭文件***********************/#include <reg51.h>/************************數據類型宏定義******************/#define uchar unsignedchar#define uintunsignedint/***********************使能、禁止宏定義*****************/#define Enable(); EA=1;#define Disable(); EA=0;/********************程序選擇功能標志宏定義**************/#define BIAOZHUN 0#define JINGJI 1#define DANDU 2#define PAISHUI 3/********************強弱選擇功能標志宏定義**************/#define QIANGXI 0#define RUOXI 1 /*******************進水、排水時間限制宏定義*************/#define T_JinShui 240 //4min*60s#define T_PaiShui 60 //1min*60s#define T_XiDi 360 //6min*60s#define T_PiaoXi_1 240 //4min*60s#define T_PiaoXi_2 120 //2min*60s#define T_TuoShui 120 //2min*60s/**********************電機控制宏定義********************/#define ZHENGZHUAN 0#define STOP 1#define FANZHUAN 2#define ZhengZhuan(); PIN_Motor_A=0;PIN_Motor_B=1;#define Stop(); PIN_Motor_A=1;PIN_Motor_B=1;#define FanZhuan(); PIN_Motor_A=1;PIN_Motor_B=0;/*******************暫停、繼續(xù)控制宏定義*****************/#define ZanTing(); ET0=0;ET1=0;Stop();#define JiXu(); ET0=1;ET1=1;#define flag_Ok (flag_JinShui||flag_PaiShui||flag_XiDi||flag_PiaoXi||flag_TuoShui)/*************************管腳定義***********************/sbit LED_BiaoZhun = P1^0; sbit LED_JingJi = P1^1; sbit LED_DanDu = P1^2; sbit LED_PaiShui = P1^3; sbit LED_QiangXi = P1^4; sbit LED_RuoXi = P1^5; sbit LED_XiDi = P1^6; sbit LED_PiaoXi = P1^7; sbit LED_TuoShui = P2^0; sbit PIN_BaoJing = P2^1; sbit PIN_JinShui = P2^2; sbit PIN_PaiShui = P2^3; sbit PIN_Motor_A = P2^4; sbit PIN_Motor_B = P2^5; sbit K_SEL_ChengXu = P3^0; sbit K_SEL_QiangRuo= P3^1; sbit p32 = P3^2; sbit p33 = P3^3; sbit SW_ShuiWei = P3^6; sbit SW_AnQuan = P3^7; /************************函數申明***********************/voidProgramme_PaiShui(void);/*************************數據定義***********************/uchar flag_SEL_ChengXu; , bit flag_SEl_QiangRuo; bit flag_Run; bit flag_JinShui; bit flag_PaiShui; bit flag_XiDi; bit flag_PiaoXi; bit flag_TuoShui; bit flag_BaoJing; uchar _50ms; uint s; uint T_S; uchar T_Motor; /*************************延時程序*********************/voidDelay_10ms(uintT1) { uintt1,t2; for(t1=0;t1<T1;t1++) for(t2=0;t2<1250;t2++);//10ms}/**********************管腳初始化程序******************/voidPin_Init(void) { LED_BiaoZhun = 0; LED_JingJi = 1; LED_DanDu = 1; LED_PaiShui = 1; LED_QiangXi = 0; LED_RuoXi = 1; LED_XiDi = 1; LED_PiaoXi = 1; LED_TuoShui = 1; PIN_BaoJing = 1; PIN_JinShui = 1; PIN_PaiShui = 1; PIN_Motor_A = 1; PIN_Motor_B = 1; }/********************中斷初始化程序********************/voidExInt_Init(void) { IT0 = 1; EX0 = 1; IT1 = 1; EX1 = 1;}/*******************定時器0初始化程序******************/voidTimer0_Init(void) { TMOD = TMOD|0X01; TH0 = 0X3C; TL0 = 0XB0; TR0 = 1; _50ms = 0; s=0;}/*******************定時器1初始化程序******************/voidTimer1_Init(void) { TMOD = TMOD|0X10; TH1 = 0X3C; TL1 = 0XB0;}/********************電機初始化程序********************/voidT_Motor_Ctl(uchart1,uchart2,uchart3){ if(!flag_SEl_QiangRuo) T_Motor=t1; if(flag_SEl_QiangRuo) T_Motor=t2; if(flag_TuoShui) T_Motor=t3;}/********************電機初始化程序********************/voidMotor_Init(void){ ZhengZhuan(); T_Motor_Ctl(4,3,5);}/**********************解除報警************************/voidNo_BaoJing(void){ flag_BaoJing=0; PIN_BaoJing =1; TR1 =0;}/*******外部中斷0程序為運行、解除報警或者暫停***********/voidint0(void)interrupt0 { if(!p32) { Delay_10ms(1); if(!p32) { if(!flag_Run) flag_Run=1; elseif(flag_BaoJing) No_BaoJing(); elseif(flag_Ok) { staticbitflag_ZanTing; flag_ZanTing=~flag_ZanTing; if(flag_ZanTing) {ZanTing();} else {JiXu();} } } }}/**********************報警程序************************/voidBaoJing(void){ flag_BaoJing=1; TR0 =0; TR1 =1;}/*******************時間到處理程序*********************/voidOk_Timer(void){ s=0; if(flag_JinShui||flag_PaiShui) { BaoJing(); } else { flag_XiDi =0; flag_PiaoXi =0; flag_TuoShui=0; Stop(); }}/********************電機控制程序**********************/voidMotor(void){ staticuchars_Motor; s_Motor++; if(s_Motor==T_Motor) { staticucharMotors; s_Motor=0; Motors++; if(Motors==3) Motors=0; switch(Motors) { caseZHENGZHUAN: ZhengZhuan();T_Motor_Ctl(4,3,5);break; caseSTOP : Stop();T_Motor_Ctl(1,1,2);break; caseFANZHUAN: FanZhuan();T_Motor_Ctl(4,3,5);break; default : break; } }}/*******************定時器0中斷程序********************/voidTimer0(void)interrupt1 { TR0=0; TH0=0X3C; TL0=0XB0; TR0=1; _50ms++; if(_50ms==20) { _50ms=0; s++; if(s==T_S) Ok_Timer(); if(flag_XiDi||flag_PiaoXi||flag_TuoShui) Motor(); } }/**********外部中斷1程序為水位到或者蓋開處理***********/voidint1(void)interrupt2 { if(!p33) { Delay_10ms(1); if(!p33) { } }}/************定時器1中斷程序作為閃爍及報警**************/voidTimer1(void)interrupt3 { staticuchar_50ms; TR1=0; TH1=0X3C; TL1=0XB0; TR1=1; _50ms++; if(_50ms==14) { _50ms=0; if(flag_XiDi) LED_XiDi =~LED_XiDi; if(flag_PiaoXi) LED_PiaoXi =~LED_PiaoXi; if(flag_TuoShui) LED_TuoShui=~LED_TuoShui; if(flag_BaoJing) PIN_BaoJing=~PIN_BaoJing; } }/**********************程序選擇程序********************/voidSEL_ChengXU(void) { if(!K_SEL_ChengXu) { Delay_10ms(1); if(!K_SEL_ChengXu) { while(!K_SEL_ChengXu); flag_SEL_ChengXu++; if(flag_SEL_ChengXu==5) flag_SEL_ChengXu=0; switch(flag_SEL_ChengXu) { caseBIAOZHUN : LED_BiaoZhun=0; LED_JingJi =1; LED_DanDu =1; LED_PaiShui =1; break; caseJINGJI : LED_BiaoZhun=1; LED_JingJi =0; LED_DanDu =1; LED_PaiShui =1; break; caseDANDU : LED_BiaoZhun=1; LED_JingJi =1; LED_DanDu =0; LED_PaiShui =1; break; casePAISHUI : LED_BiaoZhun=1; LED_JingJi =1; LED_DanDu =1; LED_PaiShui =0; break; default : break; } } }}/********************強弱選擇程序**********************/voidSEL_QiangRuo(void) { if(!K_SEL_QiangRuo) { Delay_10ms(1); if(!K_SEL_QiangRuo) { while(!K_SEL_QiangRuo); flag_SEl_QiangRuo=~flag_SEl_QiangRuo; if(!flag_SEl_QiangRuo) { LED_QiangXi =0; LED_RuoXi =1; } else { LED_QiangXi =1; LED_RuoXi =0; } } }}voidJinShui(void){ PIN_JinShui=0; flag_JinShui=1; TR1=0; Timer0_Init(); T_S=T_JinShui; while(SW_ShuiWei); PIN_JinShui=1; flag_JinShui=0; TR0=0; TF0=0; }/**********************排水程序***********************/voidPaiShui(void){ PIN_PaiShui=0; flag_PaiShui=1; TR1=0; Timer0_Init(); T_S=T_PaiShui; while(!SW_ShuiWei); TR0=0; TF0=0; Delay_10ms(500); PIN_PaiShui=1; flag_PaiShui=0; }/**********************洗滌程序***********************/voidXiDi(void){ flag_XiDi=1; TR1=1; Timer0_Init(); T_S=T_XiDi; Motor_Init(); while(flag_XiDi); TR1=0; LED_XiDi=1;}/**********************漂洗程序***********************/voidPiaoXi(uchart){ flag_PiaoXi=1; TR1=1; Timer0_Init(); T_S=t; Motor_Init(); while(flag_PiaoXi); TR=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論