基于單片機的全自動洗衣機控制器設計_第1頁
基于單片機的全自動洗衣機控制器設計_第2頁
基于單片機的全自動洗衣機控制器設計_第3頁
基于單片機的全自動洗衣機控制器設計_第4頁
基于單片機的全自動洗衣機控制器設計_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGEPAGE3目錄摘要 1關鍵詞 1Abstract 1Keywords 21.緒論 22.系統(tǒng)的整體方案設計 32.1設計功能要求 32.2系統(tǒng)設計方案 42.3洗衣工作方式選擇 43.系統(tǒng)的硬件設計 53.1關于AT89C51芯片 53.2復位電路設計 73.3顯示電路設計 83.4鍵盤電路設計 83.5時鐘電路設計 93.6蜂鳴器報警電路設計 103.7電機控制電路設計 104.軟件設計 124.1主程序設計 124.2洗滌程序的設計 124.3漂洗程序的設計 124.4脫水程序的設計 125.仿真 145.1Proteus簡介 145.1系統(tǒng)仿真 156.總結 17參考文獻 17致謝 18附錄 19軟件主程序 19基于單片機的全自動洗衣機控制器設計摘要:隨著數(shù)字技術的快速發(fā)展,數(shù)字技術被廣泛應用于智能控制的領域中。單片機以體積小、功能全、價格低廉、開發(fā)方便的優(yōu)勢得到了許多電子系統(tǒng)設計者的青睞。本文以AT89C51單片機為核心設計了一種全自動洗衣機的控制系統(tǒng)。實現(xiàn)了對洗衣機整個洗衣過程的全自動控制,包括用戶參數(shù)輸入、洗衣、脫水和結束報警四個階段。硬件控制系統(tǒng)主要由電源電路、單片機控制系統(tǒng)和外部硬件電路三大模塊組成。電源電路為單片機主控系統(tǒng)提供5v的直流電壓;單片機主控系統(tǒng)負責控制洗衣流程的自動執(zhí)行;外部硬件電路由單相異步單機、進水出水閥門、負載水位傳感器、蜂鳴器等組成。通過按鍵來進行洗衣參數(shù)設置,使用AT89C51單片機驅動數(shù)碼管顯示洗衣機的工作時間,用LED指示燈顯示洗衣機的工作狀態(tài),用兩個電控水龍頭進行加水和放水,通過蜂鳴器提示洗衣結束。最后,通過proteus仿真軟件進行仿真,實現(xiàn)了洗滌、漂洗、脫水等預期效果。關鍵詞:全自動洗衣機;單片機;LED顯示DesignoftheautomaticwashingmachinecontrollerbasedonMCUAbstract:Withtherapiddevelopmentofdigitaltechnology,digitaltechnologyhasbeenwidelyappliedinthefieldofintelligentcontrol.MCUismoreandmorepopularamongtheelectronicsystemsdesignersbecauseofsmallvolume,completefunctions,lowprice,convenientexploitation.ThisarticleisaboutthedesignthatacontrolsystemwhichisasAT89C51acoreofautomaticwashingmachine.Andrealizethecontrolofthewashingmachineinthewashingprocess,includinguserinput,washing,dehydrationandalarmfourstages.Hardwarecontrolsystemincludesapowersupplycircuit,microprocessorcontrolsystemsandexternalhardwarecircuitconsistingofthreemodules.Powersuppliesprovides5Vforthemaincontrolsystemofsingle-chipDCvoltage;ThemaincontrolsystemoftheMCUisresponsibleforcontrollingthewashingprogress;externalhardwareincludesthesingle-phaseasynchronoussingle,wateroutletvalve,loadlevelsensor,buzzeretc.Throughthekeyparametersettingsforlaundry,AT89C51isusedtodrivedigitaltubedisplayingtheworkinghoursofthewashingmachine,LEDindicatorisusedtodisplaytheworkingstatusofthewashingmachine,forwateranddrainwithtwoelectricallycontrolledwatertaps,buzzerisusedfornoticingpeopletheendofthewashingprogress.Intheend,throughproteustoachievethewashing,rinsing,dehydrationandotherexpectedresults.Keywords:

fullautomatic

washingmachine;

MCU;

LEDdisplay1.緒論洗衣機作為一款家用電器,在日常生活中得到了廣泛的使用,洗衣機的產(chǎn)生使人們從繁重的家務勞動中解脫出來,而全自動洗衣機的發(fā)明更是洗衣機技術史上的一個重大改革。它不僅能節(jié)省人力,而且還能進一步擴大對機洗衣物的范圍。使用全自動洗衣機洗衣可以根據(jù)衣物的體積、質地,在微電腦控制器上選擇水流的大小和強弱以及時間的長短以及的水量的多少等,能夠實現(xiàn)完整的自動化洗衣過程。現(xiàn)在的洗衣機也越來越高度自動化,衣服只要放入洗衣機,只需簡單的按兩個鍵,系統(tǒng)就會自動注水,通過電腦控制的洗衣機,能夠自動感受衣物的重量,會自動添加適合的水量以及洗滌劑,能自動設置洗滌的時間以及洗滌的力度,洗滌完之后還會自動的漂洗甩干,甚至將衣物烘干,從而大大節(jié)省了時間{1}。單片機又稱微控制器,或稱嵌入式控制器。而現(xiàn)在的智能家電無一例外是采用微控制器來實現(xiàn)的,所以家用電器是單片機應用最多的領域之一。它是家用電器實現(xiàn)智能化的心臟和大腦。由于家用電器體積小,故要求其控制器體積更小以便能嵌入其結構之中。而家用電器品種多,功能差異也大,所以有要求其控制體積更小以便能嵌入其結構之中。而家用品種多,功能差異也大,所以又要求其控制器有靈活的控制功能。單片機以微小的體積和編程的靈活性而產(chǎn)生多種控制功能,完全可以滿足家用電器的需求{2}。對全自動洗衣機而言,一般要求具備如下功能:(1)強弱洗滌功能。要求強洗時正反轉驅動時間各位4s,間歇時間為1s;弱洗時正反轉時間各為3s,間歇時間為2s。(2)4種洗衣工作程序。即標準程序、經(jīng)濟程序、單獨程序和排水程序。標準程序是進水—洗滌—漂洗—排水—脫水。基于單片機的自動洗衣機控制系統(tǒng)具有精度高、功能強、經(jīng)濟性好的特點。無論在提高產(chǎn)品質量還是產(chǎn)品數(shù)量,節(jié)約能源還是改善勞動條件等方面都顯示出無比的優(yōu)越性。單片機的體積小,控制功能靈活,因此,設計出基于單片機的洗衣機控制系統(tǒng)就具有很強的實用性。現(xiàn)在已經(jīng)有廠家開發(fā)出了不需要使用洗滌劑的洗衣機,還有的廠家開發(fā)出了更迷你的旅行洗衣機,小到可以在出外旅行的時候隨身攜帶,為了更方便的操作有的廠家還開發(fā)出了可以遠程控制的洗衣機,將來的洗衣機會朝著使用更方便、更加節(jié)能、更加個性化的方面發(fā)展[5]。2.系統(tǒng)的整體方案設計2.1設計功能要求(1)主要內容:設計一個基于51單片機控制的洗衣機控制器。以單片機為主,擴展必要的外部硬件電路,設計制作一個全自動洗衣機控制器。①掌握單片機的基本概念和原理;②熟悉全自動洗衣機控制器的體系結構、實現(xiàn)方法及其原理;③硬件設計、軟件設計及主要模塊電路設計;④結合程序對所設計的全自動洗衣機控制器電路在Proteus中進行仿真。(2)主要功能:①具有標準洗、經(jīng)濟洗、單獨洗、排水4個程序選擇功能②標準洗衣:洗滌6分鐘;第一次漂洗4分鐘,第二次漂洗2分鐘;脫水2分鐘。經(jīng)濟洗衣:洗滌6分鐘;漂洗4分鐘;脫水2分鐘。單獨洗衣:洗滌6分鐘。排水洗衣:排水1分鐘。③強弱洗功能:強洗時正、反轉驅動時間各為4秒,間歇時間為1秒;弱洗時正、反轉驅動時間各為3秒,間歇時間為2秒。④有啟動/暫停/解除警報鍵控制:第一次按此鍵啟動;工作的時候按此鍵暫停,再按則繼續(xù)工作;當檢測到異常報警時,按此鍵能解除警報。⑤有脫水功能,并且在脫水時,如果打開蓋板則暫停脫水,關上蓋板則繼續(xù)脫水;在除脫水外的其他洗衣程序時,如果打開蓋板,洗衣機不會停止工作。⑥洗滌的時候洗滌狀態(tài)燈閃爍;漂洗的時候漂洗狀態(tài)燈閃爍;脫水的時候脫水狀態(tài)燈閃爍。2.2系統(tǒng)設計方案本次設計我采用的是基于51單片機的控制系統(tǒng)設計方案。單片機輸出驅動信號和顯示信號,是整個系統(tǒng)的核心。經(jīng)過選擇采用AT89C51單片機能夠實現(xiàn)本設計的基本要求,這種單片機的軟件編程自由度大,可以用編程實現(xiàn)各種邏輯控制和算法控制。它從內部的硬件到軟件有一套完整的按位操作系統(tǒng),稱作位處理器,它的處理對象不是字或字節(jié)而是位。它不僅能對片內某些特殊功能寄存器的單片機主控系統(tǒng)單片機主控系統(tǒng)電機控制電路蜂鳴器報警電路電源電路鍵盤電路復位電路時鐘電路顯示電路圖2-1設計總方框圖位進行處理,如傳送、置位、清零、測試等,還能進行位的邏輯運算,其功能十分完備[6]。系統(tǒng)整體設計模擬框圖如圖2-1所示。本系統(tǒng)能實現(xiàn)對洗衣機整個洗衣過程的控制,包括參數(shù)輸入、洗滌、漂洗、排水和脫水等階段??刂葡到y(tǒng)主要由電源電路、單片機控制系統(tǒng)和外部硬件電路組成。電源采用三端集成固定穩(wěn)壓器7805提供+5V電源;單片機控制系統(tǒng)負責控制洗衣機的工作過程,它的核心是AT89C51單片機;外部硬件電路實現(xiàn)進水、排水、電機驅動等功能,主要由電動機、三極管、繼電器、進水電磁閥和排水電磁閥等組成。2.3洗衣工作方式選擇三種洗衣工作方式分為洗滌、漂洗和脫水。洗滌程序的過程是進水→洗滌→排水→進水→漂洗→排水→脫水;漂洗程序與洗滌程序一樣,只是時間比較短。脫水的程序過程是排水→脫水;洗滌程序、漂洗程序和脫水程序是通過按鍵來進行選擇,可單獨進行某一項程序。3.系統(tǒng)的硬件設計3.1關于AT89C51芯片本次設計,選擇使用的單片機芯片是AT89C51。在眾多的51單片機系列中,AT89系列單片機在我國也得到極其廣泛的應用,越來越受到人們的親睞。AT89系列單片機是美國Atmel公司的8位Flash單片機產(chǎn)品。AT89C51它是一種4K的字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器,俗稱單片機[7]。它的最大特點是在片內含有Flash存儲器,F(xiàn)lash存儲器是一種可以電擦除和電寫入的閃速存儲器(簡記為EEPROM),在系統(tǒng)的開發(fā)過程中可以十分容易地進行程序的修改,使開發(fā)調試更為方便。AT89系列單片機以8031為內核,是與8051系列單片機兼容的系列,Atmel89系列單片機有許多型號,可分為標準型號、抵擋型號和高檔型號3類。系統(tǒng)將選用的AT89C51是屬于標準型單片機。標準型89系列單片機是與MCS-51系列單片機兼容的。標準型系列在內部含有4KB或8KB可重復編程的Flash存儲器,可進行1000次擦寫操作。全靜態(tài)工作為0-33MHz,有3級程序存儲器加密鎖定,內部含有128-256字節(jié)的RAM、32條可編程的I/O端口、2個16位定時器/計數(shù)器、6-8級中斷,此外有通用串行接口、低電壓空閑模式及掉電模式。AT89系列標準單片機有4種型號,分別為AT89C51、AT89LV51、AT89C52和AT89L52[8]。其中AT89C51和AT89C52直接與8051系列兼容,相當于將8051、8052中的4KB、8KB的ROM換成相應數(shù)量的Flash存儲器,其結構、供電電壓、引腳數(shù)量及封裝均相同,使用時可直接替換。AT89LV51是AT89C51低電壓型號,可以在2.7-6V的電壓范圍內工作,其他功能和89C51相同。AT89C51的引腳圖如圖3-1所示。AT89C51的引腳功能如下:(1)電源引腳 電源引腳接入單片機的工作電源。①VCC(40引腳):接電源。②VSS(20引腳):接地。(2)時鐘引腳①XTAL1(19引腳):接到外部晶體的一端。該引腳內部是1個反相放大器輸入端,這個反相放大器形成了片內振蕩器。如果采用外接一個晶體振蕩器,此引腳應該接地。②XTAL2(18引腳):接到外部晶體的另外一端。在該引腳的內部接到內部反相放大器輸出端。如果采用外部的時鐘振蕩器的話,此引腳接收時鐘振蕩器發(fā)出的信號,即把這個信號直接連接到內部的時鐘發(fā)生器輸入端[9]。(3)控制引腳圖3-1AT89C51引腳圖①RESET(9引腳):復位信號輸入端,高電平有效。此引腳內部已有一個50-30K的電阻器接地,所以只需接一個電容至+VCC,即可在電源ON時產(chǎn)生開機復位的功能。但是,常會在RESET引腳用一個8.2-10K的電阻接地,以縮短開機復位的時間。如需要,也可在電容兩端并聯(lián)一個常開按鈕,以便按此按鈕時可強迫系統(tǒng)復位。②ALE(30引腳):地址鎖存器輸出端。在系統(tǒng)擴展時,用于控制把P0口輸出的低8位地址送入鎖存器鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的隔離。ALE是以晶振1/6的固定頻率輸出的正脈沖,因此可以作為外部時鐘或外部定時脈沖用。③(29引腳):程序存儲器允許輸出控制端。當CPU想讀取外部ROM的內容時,此引腳會自動產(chǎn)生負脈沖。④(31引腳):內外程序存儲器選擇控制端。當接VCC時,對ROM的讀操作從內部程序存儲器開始,并可延續(xù)到外部ROM。當引腳接地時,內部程序數(shù)據(jù)失效,CPU被迫只能讀取外部的程序存儲器。(4)I/O口引腳①P0口(P0.0-P0.7共8個引腳,即39-32引腳):雙向8位三態(tài)I/O口,此口為地址總線及數(shù)據(jù)總線分時復用口。沒有內部上拉電阻器,輸出電平時,需用戶在引腳上接上外部上拉電阻器。在訪問外部存儲器時,可分時用做低8位地址線和8位數(shù)據(jù)線。P0口做輸出口用時,每只引腳均可驅動8個LSTTL負載。若某引腳想做輸入腳用,則須先將1寫入該引腳。②P1口(P1.0-P1.7共8個引腳,即1-8引腳):8位準雙向I/O口,具有內部上拉電阻器,可驅動4個LSTTL負載。若某引腳想做輸入腳用,則須先將1寫入該引腳。③P2口(P2.0-P2.7共8個引腳,即21-28引腳):8位準雙向I/O口,與地址總線復用。具有內部上拉電阻器,可驅動4個LSTTL負載。在訪問外部存儲器時,它送出高8位地址。④P3口(P3.0-P3.7共8個引腳,即10-17引腳):8位準雙向I/O口,雙功能復用口。具有內部上拉電阻器,可驅動4個LSTTL負載。若某引腳想做輸入腳用,則須先將1寫入該引腳。P3口引腳具有特殊功能。3.2復位電路設計單片機的復位就和計算機的重啟是一樣的概念。任何單片機工作之前都要有個復位的過程[11],復位對于單片機來說,程序還沒有開始執(zhí)行,是在做準備工作,一般的復位只需要5ms的時間。復位電路原理圖如圖3-2所示。復位操作一般有兩種方式:上電自動復位和按鍵手動復位。上電復位是外部的復位電路在系統(tǒng)通上電源后直接使單片機工作,單片機的起停通過電源控制。手動復位是在復位電路中設計按鍵開關觸發(fā)復位電平,控制單片機復位。一般都用上電自動復位電路。圖3-2復位電路復位操作一般有兩種方式:上電自動復位和按鍵手動復位。上電復位是外部的復位電路在系統(tǒng)通上電源后直接使單片機工作,單片機的起停通過電源控制。手動復位是在復位電路中設計按鍵開關觸發(fā)復位電平,控制單片機復位。一般都用上電自動復位電路。上電自動復位原理:通電時,電容的兩端可以看成短路,于是RESET引腳為高電平,接著電源對電容進行充電,RESET端的電壓開始降低,降到一定程度就變成了低電平,單片機開始正常工作。3.3顯示電路設計本次設計采用的是發(fā)光二極管作為顯示電路,用有色的發(fā)光二極管很容易看清電路的高低電平情況,結構簡單,現(xiàn)象明顯。標準、經(jīng)濟、單獨、排水四個洗衣程序顯示燈采用的是紅色LED,強洗、弱洗兩個洗衣方式顯示燈采用的是綠色LED,洗滌、漂洗、脫水三個洗衣狀態(tài)顯示燈采用的是黃色LED。其中洗滌、漂洗、脫水指示燈在系統(tǒng)執(zhí)行相應的程序時的狀態(tài)是閃爍,而其他的燈在系統(tǒng)執(zhí)行與其相對應的程序時的狀態(tài)則是一直亮著。顯示電路原理圖如圖3-3所示。圖3-3顯示電路3.4鍵盤電路設計洗衣機面板上有4個按鈕K1、K2、K3、K4和兩個開關SW1和SW2。按鍵控制原理圖如圖3-4所示。K1用于洗衣程序選擇:默認為標準洗,即全自動;按一下選擇經(jīng)濟洗,按兩下選擇單獨洗,按三下選擇排水。K2用于洗衣方式選擇:默認為強洗,按一下選擇弱洗。K3運行/暫停/解除報警鍵:按一下運行,再按一下暫停;報警時按一下則解除警報。SW1水位開關:進出水閥門控制開關。在實物電路中,它相當于檢測水位的傳感器,水位達到設定要求時開關自動閉合,未達到要求時開關自動打開。SW2蓋開關:脫水時打開蓋板,電機會停止運行,蓋上則繼續(xù)脫水;在其他洗衣過程時打開蓋板不會影響洗衣機工作。圖3-4鍵盤電路3.5時鐘電路設計時鐘電路由晶振元件與單片機內部電路組成,產(chǎn)生的振蕩頻率為單片機提供時鐘信號,供單片機信號定時和計時。在AT89S51單片機內部有一個高增益反相放大器,其輸入端引腳為XTAL1,其輸出端為XTAL2。只要在兩引腳之間跨接晶體振蕩器和微調電容C1、C2,就可以構成一個穩(wěn)定的自激振蕩器。本設計采用圖3-5所示電路。圖3-5時鐘電路圖3-6蜂鳴器報警電路一般地,電容C1和C2取33pf左右;晶體振蕩器,簡稱晶振,頻率范圍是1.2~12MHz。晶振頻率越高,系統(tǒng)的時鐘頻率也就越高,單片機的運行速度也就越快。在通常情況下,使用振蕩頻率為6MHz或12MHz的晶振。如果系統(tǒng)中使用了單片機的串行口通信,則一般使用頻率為11.0592MHz的晶振。而在本次設計中采用的是頻率為11.0592MHz的晶振。3.6蜂鳴器報警電路設計本設計采用蜂鳴器,單片機必須輸出固定頻率的方波信號,其工作電壓范圍寬,4-12V,需要外圍元件少,電壓增益可調范圍為20-200。洗衣機異常時,通過CPU的P2.1輸出低電平來控制蜂鳴器報警。如圖3-6所示。3.7電機控制電路設計(1)L298簡介:L298是SGS公司的產(chǎn)品,內部包4通道邏輯驅動電路,是一種二相和四相電機的專用驅動器,即內含二個H橋的高電壓大電流雙全橋式驅動器,接收標準TTL邏輯電平信號。每橋的低級晶體管的發(fā)射極都連在一起,相對應的接線口與采樣電阻相連,另外一個額外的輸入用于使其工作在合理的低電壓環(huán)境,可驅動46V、2A以下的電機。它的設計可用于標準的三極管邏輯電路,以及驅動如繼電器、螺線管、直流步進電機等負載,兩種輸入信號可作為可獨立驅動和不獨立驅動的輸入信號。L298有四路輸入,四路輸出;有兩個使能端,通常,我們可以直接把EA,EB兩個使能端接高,直接通過控制輸入口(接單片機的I/O口,編程輸出PWM信號)來控制電機,一般用的時候會在前面用上光耦,用于單片機與驅動芯片之間的隔離,且在L298與電機之間加上續(xù)流二極管。L298上也有兩個控制端口,用于調節(jié)。L298引腳圖如圖3-7所示,其引腳功能如下:圖3-7L298引腳圖1、15:電流監(jiān)測端,采樣電阻接地;2、3:輸出端1、輸出端2;4:VS,功率電源電壓,此引腳與地必須連接100nF電容。5、7:輸入1、輸入2,TTL電平兼容;6、11:使能端A、使能端B,TTL電平兼容,低電平禁止輸出;8:GND,接地端;9:VSS,邏輯電源電壓,與地之間必須連接一個100nF電容;10、12:輸入3、輸入4,TTL電平兼容;13、14:輸出端3、輸出端4;(2)電機控制電路電機的狀態(tài)有3種,即正轉、反轉和停止狀態(tài),電機一般工作在這3種狀態(tài)的不斷轉換之中。電機的驅動采用L298芯片,采用這種控制方式,通過對兩個端口高低電平的相互變化可以方便地實現(xiàn)電機的正轉、反轉的變化。電機控制電路原理圖如圖3-8所示,其工組原理為:當P2.4為低電平、P2.5為高電平時,三極管Q4截止,Q5導通,電磁閥RL3接電源,RL4接地,IN1和OUT1為高電平,IN2和OUT2為低電平,電機正轉;反之,當P2.5端口為低電平、P2.4端口為高電平時,三極管Q4導通,Q5截止,電磁閥RL3接地,RL4接電源,IN1和OUT1為低電平,IN2和OUT2為高電平,電機反轉。在程序中設置好正轉、反轉、停的時間,電機在系統(tǒng)的控制下進行正轉、停、反轉的循環(huán)。圖3-8電機控制電路4.軟件設計4.1主程序設計根據(jù)硬件的設計要求來設計主程序,其流程圖如圖4-1所示。首先洗衣機通電后單片機上進行程序初始化和各參數(shù)初始值的設定。默認為標準程序和強洗的方式,然后掃描各個按鍵的狀態(tài)確定洗衣過程,此時洗衣機處在待命狀態(tài)。通過K1和K2可分別改變洗衣工作程序和強/弱洗衣的方式。掃描過程之中如果發(fā)現(xiàn)啟動鍵K4按下,洗衣機則從待命狀態(tài)進入工作狀態(tài)。完成進水、洗滌、漂洗、脫水、排水的循環(huán)過程。開始開始初始化默認為標準程序、強洗方式鍵盤掃描啟動?洗滌程序漂洗程序脫水程序結束YN圖4-1主程序流程圖4.2洗滌程序的設計洗滌是洗衣過程中的主要步驟。洗衣機開始按鍵按下之前,洗滌的工作程序選擇默認為標準洗滌。當進水結束后進入洗衣狀態(tài),洗滌時間為6分鐘,在洗滌時,正向旋轉1分鐘,停止30秒,反向旋轉1分鐘,停止30秒,再正向旋轉,重復前面的過程,直到定時時間到停止。程序流程圖如圖4-2所示。voidXiDi(void)//洗滌程序{ flag_XiDi=1; TR1=1; Timer0_Init(); T_S=T_XiDi;Motor_Init(); while(flag_XiDi); TR1=0; 開始開始洗滌燈閃爍電機正轉電機停止電機反轉電機停止剩余時間=0?洗滌燈滅進入漂洗NY圖4-2洗滌程序流程圖4.3漂洗程序的設計漂洗的目的在于清除衣物上的洗滌液,因此,漂洗過程與洗滌過程的電器動作是相似的,只是時間短一些。漂洗次數(shù)為二次。漂洗程序流程圖如圖4-3所示。4.4脫水程序的設計脫水前先打開排水閥排水1min。然后啟動電動機脫水1min,并保持排水閥開啟,然后停止脫水。接著判斷漂洗次數(shù)的值,若為0則洗衣結束,開蜂鳴器提醒洗衣結束,系統(tǒng)返回初始待命狀態(tài);若不為0,則再次執(zhí)行進水操作,進入下一循環(huán),表示衣物已洗干凈程序流程圖如圖4-4所示。進入脫水洗衣結束開排水閥啟動電機脫水脫水結束?關電機、排水閥進入脫水洗衣結束開排水閥啟動電機脫水脫水結束?關電機、排水閥開蜂鳴器YN開始第二次漂洗第一次漂洗漂洗燈閃爍漂洗完成?進入脫水漂洗結束NY圖4-3漂洗程序流程圖圖4-4脫水程序流程圖5.仿真5.1Proteus簡介Proteus是世界上非常著名的仿真軟件,它已經(jīng)有20多年的歷史,從原理圖布圖、代碼調試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設計,真正實現(xiàn)了從概念到產(chǎn)品的完整設計。它是世界上目前唯一將虛擬模型仿真軟件、PCB設計軟件和電路仿真軟件三合一的設計平臺,它的處理器模型支持PIC10/12/16/18/24/30/DsPIC33、MSP430、HC11、ARM、AVR、8051和8086等,2010年又增加了DSP和Cortex系列處理器,并持續(xù)增加其他系列的處理器模型[13]。Proteus軟件涵蓋了PIC、AVR、MCS8051、68HC11、ARM等微處理器模型,以及多種常用電子元器件,包括74系列、CMOS4000系列集成電路、A/D和D/A轉換器、鍵盤、LCD顯示器,還提供示波器、邏輯分析儀、通信終端、電壓/電流表、I2C/SPI終端等各種虛擬儀表,這些都可以直接用于仿真設計,極大地提高了設計效率和設計水平[14]。在編譯方面,它也支持MPLAB、KEIL和IAR等多種編譯器。5.1系統(tǒng)仿真將寫好的程序整理好用KEIL進行編譯。因為編譯只能檢查是否存在語法錯誤,所以還要看是否存在邏輯錯誤。程序修改好以后,當顯示編譯0錯誤,0警告的時候,這說明已經(jīng)沒有語法錯誤了。然后在PROTEUS中進行仿真看洗衣機是否運轉正常,檢查仿真日志有無錯誤來判斷程序是否有邏輯錯誤?,F(xiàn)象說明:開始仿真,系統(tǒng)默認為標準程序和強洗方式,按下K1和K2可以分別改變洗衣程序和強弱方式。在標準洗和強洗時,標準指示燈D2和強洗指示燈D6亮,按下K3鍵開始運行。開始運行后,控制系統(tǒng)打開水位開關開始注水,進水指示燈D11亮;水位達到系統(tǒng)設定值時,單片機發(fā)送一個信號通知控制系統(tǒng)關閉水位開關,進水指示燈滅,同時啟動電機洗衣,洗滌指示燈D8開始閃爍。電機在系統(tǒng)的控制下進行正轉、停、反轉的循環(huán),通過傳動機構帶動波輪執(zhí)行洗滌程序;洗滌時間終了,控制系統(tǒng)切斷電機電路并打開排水電磁閥開始排水,此時排水指示燈亮;然后打開水位開關再次注水,洗衣機進入漂洗狀態(tài),漂洗指示燈D9閃爍;完成漂洗程序后開始排水,最后進入脫水程序,脫水指示燈D10閃爍,同時排水閥打開排水,排水指示燈D12亮。在運行過程中,如果按下K3鍵,洗衣機會停止運行,再按則繼續(xù)工作;若洗衣機異常報警時按下K3鍵,則可以解除警報。在脫水時打開蓋板電機會停止,蓋上則繼續(xù)運行。圖5-1是在標準程序和強洗方式下,處于洗滌狀態(tài)的仿真圖。由圖可見此時標準指示燈和強洗指示燈亮,而洗滌指示燈閃爍。圖5-2是電機正轉時的仿真截圖,圖5-3是電機反轉時的仿真截圖。它們都是處在標準程序和強洗方式下的洗滌狀態(tài)。如圖5-4所示,這是在標準程序、強洗方式下的脫水仿真圖。脫水的同時打開排水閥排水,此時標準程序指示燈和強洗指示燈亮,排水燈亮,脫水指示燈閃爍。圖5-1洗滌仿真圖圖5-2電機正轉仿真圖圖5-3電機反轉仿真圖圖5-4脫水仿真圖6.總結隨著科學技術的發(fā)展,現(xiàn)代社會對專業(yè)人才的要求越來越高,不僅要有堅實的理論知識,更應該具備豐富的實踐經(jīng)驗和較強的動手能力。

畢業(yè)設計不僅是對前面所學知識的一種綜合檢驗,而且也是對自己能力的一種提高。通過本次畢業(yè)設計,是把學到的理論知識和現(xiàn)場的實際工作經(jīng)驗又一次有機地融合在一起,也使我熟練掌握了工程設計的方法和步驟,進一步提高了對一些軟件的應用。工程設計能力、理論計算能力、實驗研究能力、經(jīng)濟分析能力、外文閱讀能力、計算機應用能力以及文獻查閱和文字表達能力。對于在此次單片機控制系統(tǒng)應用中還存在一些問題,在控制電動機正反轉設計中采用單片機進行控制,存在著一些缺點,例如所選用的單片機不太合理以及調試過程比較麻煩。在控制數(shù)碼管顯示時,數(shù)碼管不能正常顯示,通過查找質料根據(jù)人眼的暫留效應,結果正常顯示。

在設計過程中,我通過網(wǎng)絡查閱大量有關資料,與同學交流經(jīng)驗和自學并向老師請教等方式,使自己學到了不少知識,也經(jīng)歷了不少艱辛,但收獲巨大。

總之,在進行畢業(yè)設計的過程中,我深刻體會到我的基礎功并不是那么的扎實,知識面較為局限,例如我的文字表達能力,以及我的英語水平等,經(jīng)過畢業(yè)設計讓我懂得在日常生活中,我們不能隨便去浪費我們寶貴的時間而是要充分利用時間來學習更多的知識來充實自己。

此外,我還得出一個結論:知識必須通過應用才能實現(xiàn)其價值!參考文獻[1]張明德.基于單片機的全自動洗衣機系統(tǒng)設計[D].安徽大學,2010.[2]張海波.全自動洗衣機控制器的設計[D].南京理工大學,[3]周立功.單片機實驗與實踐教程.北京航空航天大學出版社,2006[4]閆玉德.俞虹.MCS-51單片機原理與應用(C語言版)[M].北京:機械工業(yè)出版社,2003[5]李朝青.單片機原理及接口技術[M].北京:北京航空航天大學出版社,2003[6]劉賀,余成波,張方方.全自動洗衣機的模糊控制分析[N].重慶工學院學報(自然科學版),2009年05期[7]楊杰.基于短信息平臺的家庭安防系統(tǒng)[D].西安科技大學.2009:16[8]王和明,劉嶸.AT89系列單片機及其編程[J].電子技術.1996年09期,18-19[9]張毅剛,彭喜元,董繼成.單片機原理及應用[M].第1版.北京:高等教育出版社,2010.12-15[10]周學昭,唐運才.單片機在全自動洗衣機控制器中的應用[J].家用電器科技,1989,03:15-16.[11]柳建光,李德峰.51單片機幾種實用的復位電路設計[J].數(shù)字技術與應用.2012年03期,129-130[12]張近東.機電一體化示例——洗衣機程序控制器設計[J].輕工機械,1992,03:60-64.[13]Krause,P.H..ThePROTEUSProject[J].TechnologicalForecastingandSocialChange,2002,(5).35-36[14]余桂蘭,左敬龍.創(chuàng)新模式下的高校單片機虛擬實驗室[N].廣東石油化工學院學報,2011年21卷01期[15]張近東.機電一體化示例——洗衣機程序控制器設計[J].輕工機械,1992,03:60-64.[16]周鮮成.智能型洗衣機控制器的設計[J].湖南商學院學報,2001,01:113-115.致謝這大學四年的生活里,在這即將畢業(yè)的時刻,我要感謝學校以及老師們對我的教育和培養(yǎng),在老師的細心教導下,我學到了很多的知識。在此,首先要感謝我的指導老師。他能夠在百忙之中給我指導,耐心解答我的疑難問題。

我學到了許多課外的知識,使我的綜合能力得到了提升。老師嚴謹?shù)闹螌W態(tài)度,一絲不茍的敬業(yè)精神,誨人不倦的高尚師德,為我樹立了做人、做事的楷模,對我今后的人生之旅將產(chǎn)生深遠的影響。

附錄軟件主程序/***************************頭文件***********************/#include <reg51.h>/************************數(shù)據(jù)類型宏定義******************/#define uchar unsignedchar#define uint unsignedint/***********************使能、禁止宏定義*****************/#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 120 //2min*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; //經(jīng)濟程序顯示燈sbit LED_DanDu = P1^2; //單獨程序顯示燈sbit LED_PaiShui = P1^3; //排水程序顯示燈sbit LED_QiangXi = P1^4; //強洗狀態(tài)燈sbit LED_RuoXi = P1^5; //弱洗狀態(tài)燈sbit LED_XiDi = P1^6; //洗滌狀態(tài)燈sbit LED_PiaoXi = P1^7; //漂洗狀態(tài)燈sbit LED_TuoShui = P2^0; //脫水狀態(tài)燈sbit PIN_BaoJing = P2^1; //報警喇叭sbit PIN_JinShui = P2^2; //進水控制sbit PIN_PaiShui = P2^3; //排水控制sbit PIN_Motor_A = P2^4; //電機腳Asbit PIN_Motor_B = P2^5; //電機腳Bsbit 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; //安全開關/************************函數(shù)申明***********************/voidProgramme_PaiShui(void);/*************************數(shù)據(jù)定義***********************/uchar flag_SEL_ChengXu; //默認為標準程序, bit flag_SEl_QiangRuo; //默認為強洗,1為弱洗bit flag_Run; //運行標志,1為運行bit flag_JinShui; //進水標志,1為進水bit flag_PaiShui; //排水標志,1為排水bit flag_XiDi; //置洗滌標志bit flag_PiaoXi; //置漂洗標志bit flag_TuoShui; //脫水標志bit flag_BaoJing; //報警標志uchar _50ms; //每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; //經(jīng)濟程序顯示燈,滅 LED_DanDu = 1; //單獨程序顯示燈,滅 LED_PaiShui = 1; //排水程序顯示燈,滅 LED_QiangXi = 0; //默認為強洗狀態(tài),燈亮 LED_RuoXi = 1; //弱洗狀態(tài)燈,滅 LED_XiDi = 1; //洗滌狀態(tài)燈,運行后燈亮 LED_PiaoXi = 1; //漂洗狀態(tài)燈,運行后燈亮 LED_TuoShui = 1; //脫水狀態(tài)燈,運行后燈亮 PIN_BaoJing = 1; //報警喇叭,不叫 PIN_JinShui = 1; //進水控制,關 PIN_PaiShui = 1; //排水控制,關 PIN_Motor_A = 1; //電機腳A,不走 PIN_Motor_B = 1; //電機腳B,不走}/********************中斷初始化程序********************/voidExInt_Init(void) { IT0 = 1; EX0 = 1; IT1 = 1; EX1 = 1;}/*******************定時器0初始化程序******************/voidTimer0_Init(void) //其中沒ET0是為以后控制暫停用的 { TMOD = TMOD|0X01; //定時方式1 TH0 = 0X3C; //50ms TL0 = 0XB0; TR0 = 1; _50ms = 0; s=0;}/*******************定時器1初始化程序******************/voidTimer1_Init(void) //其中沒ET1是為以后控制暫停用的{ TMOD = TMOD|0X10; //定時方式1 TH1 = 0X3C; //50ms 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); //延時10ms左右,去抖動 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();} //必須加{} }//endelse }//endif(!p32)2 }//endif(!p32)1}/**********************報警程序************************/voidBaoJing(void){ flag_BaoJing=1; //置報警標志 TR0 =0; TR1 =1;}/*******************時間到處理程序*********************/voidOk_Timer(void){ s=0; if(flag_JinShui||flag_PaiShui) //進水中~、排水中~ { BaoJing(); //報警程序 }//endif(flag_JinShui||flag_PaiShui) else { flag_XiDi =0; //清洗滌標志 flag_PiaoXi =0; //清漂洗標志 flag_TuoShui=0; //清脫水標志 Stop(); }//endelse}/********************電機控制程序**********************/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,2,2); break; caseFANZHUAN : FanZhuan(); T_Motor_Ctl(4,3,5); break; default : break; }//end switch }//endif}/*******************定時器0中斷程序********************/voidTimer0(void)interrupt1 { TR0=0; //停止計數(shù) TH0=0X3C; //重裝定時器值 TL0=0XB0; TR0=1; _50ms++; if(_50ms==20) //1s到 { _50ms=0; s++; if(s==T_S) //定時到 Ok_Timer(); if(flag_XiDi||flag_PiaoXi||flag_TuoShui) Motor(); //電機控制程序 }//endif(_50ms==20) }//endTimer0()/**********外部中斷1程序為水位到或者蓋開處理***********/voidint1(void)interrupt2 { if(!p33) { Delay_10ms(1); //延時10ms左右,去抖動 if(!p33) { }//endif(!p33)2 }//endif(!p33)1}/************定時器1中斷程序作為閃爍及報警**************/voidTimer1(void)interrupt3 { staticuchar_50ms; //每50ms加一次的變量 TR1=0; //停止計數(shù) TH1=0X3C; //重裝定時器值 TL1=0XB0; TR1=1; _50ms++; if(_50ms==14) //0.7s到 { _50ms=0; if(flag_XiDi) //洗滌中~ LED_XiDi =~LED_XiDi; //洗滌狀態(tài)燈閃爍 if(flag_PiaoXi) //漂洗中~ LED_PiaoXi =~LED_PiaoXi; //漂洗狀態(tài)燈閃爍 if(flag_TuoShui) //脫水中~ LED_TuoShui=~LED_TuoShui; //脫水狀態(tài)燈閃爍 if(flag_BaoJing) PIN_BaoJing=~PIN_BaoJing; //報警 }//endif(_50ms==14) }/**********************程序選擇程序********************/voidSEL_ChengXU(void) { if(!K_SEL_ChengXu) //程序選擇鍵 { Delay_10ms(1); //延時10ms左右,去抖動 if(!K_SEL_ChengXu) { while(!K_SEL_ChengXu); flag_SEL_ChengXu++; if(flag_SEL_ChengXu==4) 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; }//endswitch }//endif(!K_Sel_ChengXu)2 }//endif(!K_Sel_ChengXu)1 }//END/********************強弱選擇程序**********************/voidSEL_QiangRuo(void) { if(!K_SEL_QiangRuo) //強弱選擇鍵 { Delay_10ms(1); //延時10ms左右,去抖動 if(!K_SEL_QiangRuo) { while(!K_SEL_QiangRuo); flag_SEl_QiangRuo=~flag_SEl_QiangRuo; if(!flag_SEl_QiangRuo) { LED_QiangXi =0; //強洗狀態(tài),燈亮 LED_RuoXi =1; //弱洗狀態(tài)燈,滅 }//endif(!flag_SEl_QiangRuo) else { LED_QiangXi =1; //強洗狀態(tài),燈亮 LED_RuoXi =0; //弱洗狀態(tài)燈,滅 }//endelse }//endif(!K_SEL_QiangRuo)2 }//endif(!K_SEL_QiangRuo)1}/**********************進水程序***********************/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);//延時50s PIN_PaiShui=1; flag_PaiShui=0; }/**********************洗滌程序***********************/voidXiDi(void){ flag_XiDi=1; TR1=1; Timer0_Init

溫馨提示

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

評論

0/150

提交評論