2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  1 緒論</b></p><p>  1.1本課題的研究目的和意義 </p><p>  洗衣機(jī)是人們?nèi)粘I钪谐R姷囊环N家電,已經(jīng)成為人們生活中不可缺少的家用電器。在工業(yè)生產(chǎn)中應(yīng)用也十分廣泛。但是傳統(tǒng)的基于繼電器的控制,已經(jīng)不能滿足人們對洗衣機(jī)的自動化程度的要求了。洗衣機(jī)需要更好地滿足人們的需求,必須借助于自動化技術(shù)的發(fā)展。而隨著單片

2、機(jī)技術(shù)的發(fā)展,用單片機(jī)來作為控制器,就能很好地滿足洗衣機(jī)對自動化的要求,并且控制方式靈活多樣,控制模式可以根據(jù)不同場合的應(yīng)用而有所不同。自動化技術(shù)的飛速發(fā)展使得洗衣機(jī)由初始的半自動式洗衣機(jī)發(fā)展到現(xiàn)在的全自動洗衣機(jī),又正在向智能化洗衣機(jī)方向發(fā)展[1]。</p><p>  單片機(jī)又稱微控制器,或稱嵌入式控制器。而現(xiàn)在的智能家電無一例外是采用微控制器來實現(xiàn)的,所以家用電器是單片機(jī)應(yīng)用最多的領(lǐng)域之一。它是家用電器實現(xiàn)智

3、能化的心臟和大腦。由于家用電器體積小,故要求其控制器體積更小以便能嵌入其結(jié)構(gòu)之中。而家用電器品種多,功能差異也大,所以又要求其控制器有靈活的控制功能。單片機(jī)以微小的體積和編程的靈活性而產(chǎn)生多種控制功能,完全可以滿足家用電器的需求。</p><p>  1.2 洗衣機(jī)的發(fā)展和分類</p><p>  1.2.1 洗衣機(jī)的發(fā)展</p><p>  從古到今,洗衣服都是一

4、項難于逃避的家務(wù)勞動,而在洗衣機(jī)出現(xiàn)以前,對于許多人而言,它并不像田園詩描繪的那樣充滿樂趣,手搓、棒擊、沖刷、甩打……這些不斷重復(fù)的簡單的體力勞動,留給人的感受常常是:辛苦勞累。 </p><p>  1858年,一個叫漢密爾頓·史密斯的美國人在匹茨堡制成了世界上第一臺洗衣機(jī)。該洗衣機(jī)的主件是一只圓桶,桶內(nèi)裝有一根帶有槳狀葉子的直軸。軸是通過搖動和它相連的曲柄轉(zhuǎn)動的。次年在德國出現(xiàn)了一種用搗衣杵作為攪拌

5、器的洗衣機(jī),當(dāng)搗衣杵上下運(yùn)動時,裝有彈簧的木釘便連續(xù)作用于衣服。19世紀(jì)末期的洗衣機(jī)已發(fā)展到一只用手柄轉(zhuǎn)動的八角形洗衣缸,洗衣時缸內(nèi)放入熱肥皂水,衣服洗凈后,由軋液裝置把衣服擠干。</p><p>  1874年,“手洗時代”受到了前所未有的挑戰(zhàn),美國人比爾·布萊克斯發(fā)明了木制手搖洗衣機(jī)。這套裝置的問世,讓那些為提高生活效率而冥思苦想的人士大受啟發(fā),洗衣機(jī)的改進(jìn)過程開始大大加快。</p>

6、<p>  1880年,美國又出現(xiàn)了蒸氣洗衣機(jī),采用了智能水循環(huán)系統(tǒng),可將高濃度洗滌液與高溫蒸氣同時對衣物進(jìn)行雙重噴淋,貫穿全部洗滌過程,實現(xiàn)了全球獨(dú)創(chuàng)性的“蒸汽洗”全新洗滌方式。蒸汽洗衣機(jī)之后,水力洗衣機(jī)、內(nèi)燃機(jī)洗衣機(jī)也相繼出現(xiàn)。</p><p>  1910年,美國的費(fèi)希爾在芝加哥試制成功世界上第一臺電動洗衣機(jī)。電動洗衣機(jī)的問世,標(biāo)志著人類家務(wù)勞動自動化的開端。 </p><p&

7、gt;  1922年,美國瑪塔依格公司改造了洗衣機(jī)的洗滌結(jié)構(gòu),把拖動式改為攪拌式,使洗衣機(jī)的結(jié)構(gòu)固定下來,這也就是第一臺攪拌式洗衣機(jī)的誕生。攪拌式洗衣機(jī)結(jié)構(gòu)科學(xué)合理,受到人們的普遍歡迎。</p><p>  1932年,美國本德克斯航空公司宣布,他們研制成功第一臺前裝式滾筒洗衣機(jī),洗滌、漂洗、脫水在同一個滾筒內(nèi)完成。這意味著電動洗衣機(jī)的型式躍上一個新臺階,朝自動化又前進(jìn)了一大步!</p><p

8、>  第一臺自動洗衣機(jī)于1937年問世。這是一種"前置"式自動洗衣機(jī)。靠一根水平的軸帶動的缸可容納4000克衣服。衣服在注滿水的缸內(nèi)不停地上下翻滾,使之去污除垢。到了40年代便出現(xiàn)了現(xiàn)代的"上置"式自動洗衣機(jī)。</p><p>  隨著工業(yè)化的加速,世界各國也加快了洗衣機(jī)研制的步伐。首先由英國研制并推出了一種噴流式洗衣機(jī),它是靠筒體一側(cè)的運(yùn)轉(zhuǎn)波輪產(chǎn)生的強(qiáng)烈渦流,使衣物

9、和洗滌液一起在筒內(nèi)不斷翻滾,洗凈衣物。</p><p>  1955年,在引進(jìn)英國噴流式洗衣機(jī)的基礎(chǔ)之上,日本研制出獨(dú)具風(fēng)格、并流行至今的波輪式洗衣機(jī)。至此,波輪式、滾筒式、攪拌式在洗衣機(jī)生產(chǎn)領(lǐng)域三分天下的局面初步形成。</p><p>  60年代的日本出現(xiàn)了帶干桶的雙桶洗衣機(jī),人們稱之為“半自動型洗衣機(jī)”。</p><p>  70年代,生產(chǎn)出波輪式套桶全自動洗

10、衣機(jī)。</p><p>  70年代后期,以電腦(實際上微處理器)控制的全自動洗衣機(jī)在日本問世,開創(chuàng)了洗衣機(jī)發(fā)展史的新階段。</p><p>  80年代,“模糊控制”的應(yīng)用使得洗衣機(jī)操作更簡便,功能更完備,洗衣程序更隨人意,外觀造型更為時尚。</p><p>  90年代,由于電機(jī)調(diào)速技術(shù)的提高,洗衣機(jī)實現(xiàn)了寬范圍的轉(zhuǎn)速變換與調(diào)節(jié),誕生了許多新水流洗衣機(jī)。此后,隨

11、著電機(jī)驅(qū)動技術(shù)的發(fā)展與提高,日本生產(chǎn)出了電機(jī)直接驅(qū)動式洗衣機(jī),省去了齒輪傳動和變速機(jī)構(gòu),引發(fā)了洗衣機(jī)驅(qū)動方式的巨大革命。 之后,隨著科技的進(jìn)一步發(fā)展,滾筒洗衣機(jī)已經(jīng)成了大家耳濡目染的產(chǎn)品。伴隨著科技的進(jìn)一步發(fā)展,相信新型更適合人們使用的洗衣機(jī)會給我們的生活帶來新的方式[2]。</p><p>  1.2.2 洗衣機(jī)種類</p><p>  家用洗衣機(jī)的種類很多,按其結(jié)構(gòu)原理可以分為以下幾類

12、:</p><p>  1、波輪式洗衣機(jī):這種洗衣機(jī)的主要優(yōu)點是洗滌時間短,洗凈度較高,水位可調(diào),品種多,適宜于洗滌棉、麻、纖和混紡等織物。缺點是易使衣物纏繞,影響洗凈的均勻性,磨損率也較高。新穎的大波輪、新水流洗衣機(jī),其性能有明顯的改善。</p><p>  2、滾筒式洗衣機(jī):其優(yōu)點是洗滌動作比較柔和,對衣物的磨損小,用水量和洗滌劑都比較省,適合洗滌毛料織物。但機(jī)器結(jié)構(gòu)復(fù)雜,洗凈度低,耗

13、電量大,售價較高。</p><p>  3、攪拌式洗衣機(jī):這種洗衣機(jī)好似手工洗滌的揉搓,衣物受力均勻,衣物磨損小,洗滌容量大。缺點是洗滌時間長,結(jié)構(gòu)比較復(fù)雜,售價高。</p><p>  4、噴流式洗衣機(jī):其特點是洗滌時間短,污垢容易洗掉,機(jī)器結(jié)構(gòu)簡單,故障較少。但由于水流激烈,衣物容易擰絞在一起,因而洗滌不均,對衣物損傷較重,洗滌時洗滌液容易飛濺[3]。</p><p

14、>  除此之外還有波輪攪拌式洗衣機(jī)、噴淋漂洗洗衣機(jī)、振動式洗衣機(jī)、超聲波洗衣機(jī)等等。</p><p>  1.3 課題研究方向</p><p>  洗衣機(jī)的洗滌原理是由模擬人工洗滌衣物發(fā)展而來的,即通過翻滾、摩擦、水的沖刷等機(jī)械作用以及洗滌劑的表面活化作用,將附著在衣物上的污垢除掉,以達(dá)到洗凈衣物的目的。 現(xiàn)今,大多數(shù)的洗衣機(jī)都使用以單片機(jī)為核心的控制電路來控制電動機(jī)、數(shù)碼顯示管、進(jìn)

15、水閥、排水閥及蜂鳴器的電壓輸出,使洗衣機(jī)根據(jù)程序運(yùn)轉(zhuǎn)。 </p><p>  本設(shè)計在設(shè)計洗衣機(jī)的控制系統(tǒng)時,洗衣機(jī)通過控制系統(tǒng)設(shè)定洗衣程序,在內(nèi)桶(洗滌脫水桶)自動完成注水、洗滌、漂洗、浸泡、排水和脫水全過程。洗衣時,控制系統(tǒng)打開進(jìn)水電磁閥,開始注水;當(dāng)洗滌脫水桶內(nèi)的水位達(dá)到系統(tǒng)設(shè)定值時,水位檢測器向單片機(jī)發(fā)送一個低電平,通知控制系統(tǒng)關(guān)閉進(jìn)水電磁閥,同時啟動電機(jī)洗衣。電機(jī)在系統(tǒng)的控制下進(jìn)行正轉(zhuǎn)、停、反轉(zhuǎn),通過傳

16、動機(jī)構(gòu)帶動波輪執(zhí)行洗滌程序;當(dāng)洗滌時間終了,控制系統(tǒng)切斷電機(jī)電路,打開排水電磁閥,開始排水;然后再次注水,洗衣機(jī)進(jìn)入漂洗狀態(tài),完成漂洗程序(通常為2次漂洗),再注水進(jìn)行浸泡;浸泡完,開始排水,同時,排水電磁鐵的動作帶動減速離合器制動臂,使離合器棘輪與棘爪分離,制動帶松開,為脫水程序作好準(zhǔn)備;排水結(jié)束后,系統(tǒng)控制電機(jī)單方向高速運(yùn)轉(zhuǎn),完成脫水程序;當(dāng)脫水程序終了,系統(tǒng)控制排水電磁鐵和電機(jī)斷電,排水閥和減速離合器的制動臂復(fù)位,同時蜂鳴器奏響音

17、樂,通知用戶整個洗衣程序結(jié)束[4]。</p><p>  本設(shè)計要實現(xiàn)的功能有:</p><p> ?。?)用戶參數(shù)的輸入:用戶根據(jù)衣物的數(shù)量和質(zhì)地確定洗滌時間、漂洗次數(shù)、脫水時間,然后通過按鍵輸入具體的參數(shù)。</p><p>  (2)參數(shù)和時間的顯示:靈活地運(yùn)用數(shù)碼顯示管會帶來許多方便,它可以用來顯示用戶實時所處的洗衣功能狀態(tài)以及所剩時間。</p>

18、<p> ?。?)實時控制的實現(xiàn):單片機(jī)在獲取了用戶輸入的參數(shù)后,對其進(jìn)行分析處理,然后按照計算結(jié)果對洗衣過程進(jìn)行實時控制。</p><p> ?。?)水位檢測的實現(xiàn):水位的高低影響著整個洗衣過程的進(jìn)行,因此需要水位檢測器將水位的變化發(fā)送給單片機(jī),單片機(jī)根據(jù)水位的情況確定下一步應(yīng)該做什么。</p><p> ?。?)洗衣過程的實現(xiàn):一般的洗衣過程包括注水、洗滌、漂洗、排水和脫水

19、這些步驟。在洗衣過程中,系統(tǒng)主要控制進(jìn)水電磁閥、排水電磁閥的打開和關(guān)閉,電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)和停止。</p><p> ?。?)洗衣完畢的通知:當(dāng)洗衣過程結(jié)束后,蜂鳴器就報警通知用戶洗衣完畢。</p><p>  2 硬件設(shè)計基本介紹</p><p><b>  2.1 總體方案</b></p><p>  本設(shè)計以MCS

20、-51單片機(jī)為核心,設(shè)計由電源、數(shù)字控制電路和機(jī)械控制電路三大模塊構(gòu)成的控制系統(tǒng),實現(xiàn)對洗衣機(jī)整個洗衣過程的控制。洗衣過程主要包括洗滌過程、漂洗過程、脫水過程。根據(jù)洗衣過程的要求,控制程序設(shè)計主要包括主程序、內(nèi)部定時中斷服務(wù)程序、外部服務(wù)中斷程序的設(shè)計。</p><p>  根據(jù)設(shè)計要求,其基本系統(tǒng)組成框圖如2.1所示。</p><p>  2.2 器件及原理簡介</p>&

21、lt;p>  采用51系列單片機(jī)作為控制核心,主要包括電源部分、功能設(shè)置及控制電路、洗衣機(jī)狀態(tài)顯示及輸出控制電路。主要組成部件有:單片機(jī)、74LS138譯碼器、指示燈、LED顯示器、電動機(jī)、蜂鳴器、電磁閥以及按鍵等。</p><p>  根據(jù)洗衣機(jī)的基本功能,硬件電路設(shè)計需要考慮洗衣機(jī)的進(jìn)水、洗滌、漂洗、排</p><p>  圖2.1 系統(tǒng)組成框圖</p><p

22、>  水、脫水等問題,及時間設(shè)定長短、工作時間或剩余時間的顯示、工作過程中的暫停、啟動、復(fù)位、洗完后的報警等問題[5]。</p><p>  通過單片機(jī)的P0口連接數(shù)碼管發(fā)送段碼,P2.4~P7口通過三極管擴(kuò)大電流去控制數(shù)碼管的位,顯示時采用動態(tài)掃描方式,輪流循環(huán)掃描。通過P1.6口連接蜂鳴器實現(xiàn)報警電路。通過P1.0~P1.5口作為按鍵輸入,并通過二極管連接到單片機(jī)的中斷入口引腳,當(dāng)有鍵按下,就會產(chǎn)生中斷

23、,執(zhí)行相關(guān)按鍵的功能。</p><p>  根據(jù)系統(tǒng)框圖可設(shè)計出系統(tǒng)原理圖,見附錄A。</p><p><b>  3 軟件設(shè)計</b></p><p>  單片機(jī)應(yīng)用系統(tǒng)的軟件設(shè)計是系統(tǒng)設(shè)計中最基本而且工作量較大的任務(wù)。與系統(tǒng)機(jī)上操作系統(tǒng)支持下的純軟件不同,單片機(jī)的軟件設(shè)計是在裸機(jī)的條件下進(jìn)行的,而且隨應(yīng)用系統(tǒng)的不同而不同。在軟件中一般需考

24、慮以下幾個方面:</p><p>  1) 根據(jù)要求確定軟件的具體任務(wù)細(xì)節(jié),然后確定合理的軟件結(jié)構(gòu)。一般系統(tǒng)軟件的主程序和若干個子程序及中斷服務(wù)程序組成,詳細(xì)劃分主程序、子程序和中斷服務(wù)程序的具體任務(wù),確定各個中斷的優(yōu)先級。主程序是一個順序執(zhí)行的無限循環(huán)的程序,不停地順序查詢各種軟件標(biāo)志,以完成對事務(wù)的處理。在子程序和中斷服務(wù)程序中,要考慮現(xiàn)場的保護(hù)和恢復(fù),以及它們和主程序之間的信息交換方法。</

25、p><p>  2) 程序的結(jié)構(gòu)用模塊化結(jié)構(gòu),即把監(jiān)控程序分解為若干個功能相對獨(dú)立的較小的程序模塊分別設(shè)計,以便于調(diào)試。具體設(shè)計時可采用自底向上或自頂向下的方法。</p><p>  3) 在進(jìn)行程序設(shè)計時,先根據(jù)問題的定義描述出各個輸入變量和輸出變量之間的數(shù)學(xué)關(guān)系,即建立數(shù)學(xué)模型,然后繪制流程圖,再根據(jù)流程圖用匯編語言進(jìn)行具體程序的編寫。</p><p

26、>  4) 在程序設(shè)計完成后,利用相應(yīng)的開發(fā)工具和軟件進(jìn)行程序的匯編,生成程序的機(jī)器碼[6]。</p><p>  本設(shè)計中系統(tǒng)軟件是采用C51編寫的.在研制單片機(jī)應(yīng)用系統(tǒng)時,匯編語言是一種常用的軟件工具,具有簡單的語法結(jié)構(gòu)和強(qiáng)大的處理功能,具有運(yùn)行速度快、編譯效率高,移植性好和可讀性強(qiáng)等多種優(yōu)點,可以實現(xiàn)對系統(tǒng)便件的直接操作。用C語言來編寫目標(biāo)系統(tǒng)軟件,可以大大縮短開發(fā)周期,且明顯地增加軟件的可

27、讀性,便于改進(jìn)和擴(kuò)充,從而開發(fā)出大規(guī)模、高性能的應(yīng)用系統(tǒng)[7]。</p><p><b>  3.1 主程序設(shè)計</b></p><p>  系統(tǒng)的主程序設(shè)計主要完成系統(tǒng)初始化、中斷優(yōu)先級設(shè)定,以及調(diào)用其它各模塊程序,即主要實現(xiàn)各模塊程序的鏈接。</p><p>  系統(tǒng)上電復(fù)位初始化后,首先進(jìn)行系統(tǒng)初始化,包括中斷的選擇及設(shè)置,定時器的選擇,

28、定時時間,及其相關(guān)設(shè)置,初始化后,單片機(jī)進(jìn)入主程序,在這“主程序”中不停的循環(huán)運(yùn)行,除非有其它中斷。主程序流程圖如圖3.1所示。編寫主程序如下:</p><p>  void main()</p><p><b>  { </b></p><p>  initialize(); //初始化設(shè)置</p><p><

29、b>  while(1)</b></p><p><b>  { </b></p><p>  display(); //顯示程序 調(diào)用</p><p>  calculate(); // 顯示數(shù)據(jù)的計算程序調(diào)用</p><p><b>  }</b></p>&

30、lt;p><b>  }</b></p><p>  圖3.1 軟件主流程圖</p><p>  3.2 水位檢測程序設(shè)計</p><p>  水位檢測程序的原理是在洗衣機(jī)水箱中的適當(dāng)高度放置兩個水位檢測器,當(dāng)水位達(dá)到某一高度時,相應(yīng)的水位探測器的開關(guān)接通,把電信號送入單片機(jī)的I/O口,經(jīng)過單片機(jī)的處理,可以得到已經(jīng)加好水或水放完,可以開

31、始以下操作。</p><p>  本設(shè)計用單片機(jī)P2.2~P2.3接口接兩個水位傳感器,在自動模式下,當(dāng)水位到達(dá)某個傳感器時,相應(yīng)的傳感器輸出一個低電平到單片機(jī)的引腳,單片機(jī)通過引腳的電平高低來判斷水位的高低。基本流程是當(dāng)最低點和最高點的兩個檢測點都顯示低電平時說明洗衣機(jī)已經(jīng)放滿水;當(dāng)檢測到最高點從低電平變?yōu)楦唠娖剑?jīng)過一段時間后最低點也由低電平變?yōu)楦唠娖綍r說明此時洗衣機(jī)放水完畢。</p><

32、p>  3.3 洗滌程序設(shè)計</p><p>  啟動開關(guān),進(jìn)水閥通電,向洗衣機(jī)供水,當(dāng)供水達(dá)到預(yù)定水位時,水位開關(guān)接通,進(jìn)水閥斷電關(guān)閉,停止供水。洗滌電動機(jī)接通電源,帶動波輪或桶?旋轉(zhuǎn),產(chǎn)生各種形式的水流攪動衣物進(jìn)行洗滌。通過電動機(jī)不停的正轉(zhuǎn)、停、反轉(zhuǎn)、反復(fù)循環(huán),形成洗滌水對洗滌物產(chǎn)生強(qiáng)烈的翻滾作用。</p><p>  程序流程圖如圖3.2所示。</p><p

33、>  圖3.2 洗滌過程程序流程圖</p><p>  3.4 脫水、漂洗程序設(shè)計</p><p>  脫水前先打開排水閥排水,然后啟動電動機(jī)脫水,并保持排水閥開啟,然后停止脫水。接著判斷漂洗次數(shù)的值,若次數(shù)變?yōu)?則洗衣結(jié)束,開蜂鳴器提醒洗衣結(jié)束,系統(tǒng)返回初始待命狀態(tài),若次數(shù)不為0,則再次執(zhí)行進(jìn)水操作,進(jìn)入下一循環(huán)。</p><p>  程序流程圖如圖3.3所

34、示:</p><p>  3.5 顯示程序設(shè)計</p><p>  在本系統(tǒng)的設(shè)計中作為人機(jī)對話的一個重要部分就是顯示器,本設(shè)計要顯示定時時間,洗滌時間,還有其它指示燈的狀態(tài)顯示,為了節(jié)省單片機(jī)的I/O口,把8個狀態(tài)指示燈按照數(shù)碼管的方式連接,即8個狀態(tài)指示燈相當(dāng)于一個數(shù)碼管,這樣硬件電路中相當(dāng)于使用四位共陽LED作為系統(tǒng)的顯示器。數(shù)碼管要正常顯示,就要用驅(qū)動電</p>&l

35、t;p>  圖3.3?脫水、漂洗程序流程圖</p><p>  路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類[9]。</p><p>  靜態(tài)顯示驅(qū)動:靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一</p><p>  個段碼都由一個單片機(jī)的I/O端口進(jìn)行驅(qū)動,或者使用如BCD碼為十進(jìn)制譯碼

36、器譯碼進(jìn)行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多。</p><p>  動態(tài)顯示驅(qū)動:數(shù)碼管動態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃“a,b,c,d,e,f,g,dp”的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼

37、管會顯示出字形,取決于單片機(jī)對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動[10]。</p><p>  系統(tǒng)定期的掃描每個數(shù)碼管,借助于人的視覺殘留效應(yīng),使的數(shù)字得以正確顯示,顯示電路采用數(shù)碼管動態(tài)掃描電路,占用單片機(jī)I/O口資源少,顯示電路成本比較低,與靜態(tài)

38、掃描電路相比較,電路簡單,成本低。硬件電路相對簡單,在編寫程序時,需要考慮循環(huán)掃描的時間。</p><p>  要顯示的數(shù)據(jù)采用的查表法。查表法只需把轉(zhuǎn)換結(jié)果按序編成表,連續(xù)存放在ROM中,用查表指令即可實現(xiàn)轉(zhuǎn)換,查表法編程方便且程序量小,執(zhí)行速度快,修正起來方便。</p><p>  本設(shè)計顯示系統(tǒng)包括時間顯示和次數(shù)顯示。常用的顯示器件有:液晶點陣(LCD)顯示,數(shù)碼管(LED)顯示。根

39、據(jù)本課題的設(shè)計要求,顯示部分采用動態(tài)顯示方法,用3位數(shù)碼管,和8個LED指示燈顯示?;痉椒ㄊ牵喊?個指示燈當(dāng)作一個數(shù)碼管,這樣一共是4位數(shù)碼管。單片機(jī)的I/O口發(fā)送數(shù)碼管的段碼,接口P2.4~P2.7通過三極管擴(kuò)大電流去控制數(shù)碼管的位,顯示時采用動態(tài)掃描方式,輪流循環(huán)掃描。8個LED指示燈依次代表著自動?/手動,運(yùn)行/停止,強(qiáng)洗,標(biāo)準(zhǔn)洗,弱洗,洗滌狀態(tài),漂洗狀態(tài),脫水狀態(tài)。另外三位數(shù)碼管指示時間和次數(shù),前兩位指示時間,后一位指示次數(shù)。

40、顯示子程序流程圖如圖3.4所示:</p><p>  圖3.4 顯示子程序流程圖</p><p>  /*******************************</p><p>  功能:數(shù)碼管顯示 </p><p><b>  說明: </b></p><p>  /**********

41、********************/</p><p>  void display()</p><p>  { P0=LEDnumber[0]; //送入第一位要顯示的數(shù)據(jù)</p><p>  LED0=0; //打開該位的控制,使其顯示</p><p>  Delayms(5); //使該位顯示5ms</p&g

42、t;<p>  LED0=1; //關(guān)閉該位的控制,使其不顯示 </p><p>  P0=dis_8[LEDnumber[1]]; //送入第一位要顯示的數(shù)據(jù)</p><p>  LED1=0; //打開該位的控制,使其顯示</p><p>  Delayms(5); //使該位顯示5ms</p><p>

43、  LED1=1; //關(guān)閉該位的控制,使其不顯示</p><p>  P0=dis_8[LEDnumber[2]]; //送入第一位要顯示的數(shù)據(jù)</p><p>  LED2=0; //打開該位的控制,使其顯示</p><p>  Delayms(5); //使該位顯示5ms</p><p>  LED2=1;

44、 //左第三位 定時的個位</p><p>  P0=dis_8[LEDnumber[3]]; //送入第一位要顯示的數(shù)據(jù)</p><p>  LED3=0; //打開該位的控制,使其顯示</p><p>  Delayms(5); //使該位顯示5ms</p><p>  LED3=1; //關(guān)閉該位的控制,使其不

45、顯示</p><p><b>  } </b></p><p>  3.6 按鍵程序設(shè)計</p><p>  按鍵電路的作用是設(shè)置一些功能,一般按鍵電路有按鍵查詢式,CPU不斷的檢測是否有按鍵按下,這樣將會耗費(fèi)大量的CPU時間,且反應(yīng)速度實時性不強(qiáng);還有一種是中斷式按鍵,只有當(dāng)有按鍵按下時,單片機(jī)產(chǎn)生中斷,開始處理按鍵的輸入功能,沒有鍵按

46、下時單片機(jī)處理其他,不需要不停地查詢按鍵是否按下。這樣采用中斷使按鍵反應(yīng)速度快,同時減少單片機(jī)處理時間,本設(shè)計采用中斷擴(kuò)展式電路[11]。</p><p>  工作原理如下:沒有按鍵時,相關(guān)的I/O口為高電平,單片機(jī)的INT0也為高電平,當(dāng)有鍵按下時,5V電壓經(jīng)過所按鍵上的電阻流向GND,這時由于按鍵閉合,按鍵上的低電平送入單片機(jī)的I/O口,同時與按鍵相連的二極管導(dǎo)通,由于二極管導(dǎo)通時,電壓大約為0.7V,相當(dāng)于

47、低電平,這個低電平送入單片機(jī)的INT0產(chǎn)生中斷,在中斷里檢查哪個I/O口為低電平,就可以判斷是哪個按鍵按下,執(zhí)行相關(guān)的那個按鍵的功能[12]。</p><p>  本設(shè)計中單片機(jī)P1.0~P1.5作為按鍵輸入,并通過二極管連接到單片機(jī)的中斷入口引腳,當(dāng)有鍵按下,就會產(chǎn)生中斷,執(zhí)行相關(guān)按鍵的功能。</p><p>  按鍵程序流程圖如圖3.5所示:</p><p> 

48、 圖3.5 按鍵程序流程圖</p><p>  本設(shè)計中一共用到六個按鍵,通過連接單片機(jī)的P1.0~P1.5口來實現(xiàn)按鍵的功能,按鍵1的作用是調(diào)節(jié)自動或者手動,按鍵2的作用是調(diào)節(jié)洗衣的強(qiáng)度,按鍵3的作用是調(diào)節(jié)洗衣功能,按鍵4的作用是設(shè)置時間,按鍵5的作用是設(shè)置次數(shù),按鍵6的作用是控制洗衣機(jī)的運(yùn)行與停止。</p><p><b>  具體電路如下圖:</b></p

49、><p>  根據(jù)硬件的設(shè)計方法,編寫程序如下:</p><p>  /*****************************</p><p><b>  功能:按鍵輸入 </b></p><p>  說明:用到中斷0, P2.0~P2.5</p><p>  /*****************

50、***********/</p><p>  void inkey_int0() interrupt 0 </p><p>  { uchar input;</p><p>  P2=P1|0x3f; </p><p>  input=P1; </p><p>  switch(

51、input&0x3f) </p><p>  {case 0x3e: //111110最右邊 </p><p><b>  //按鍵1功能</b></p><p>  break; </p><p>  case 0x3d: //111101 </p>&

52、lt;p>  //按鍵1功能 </p><p>  case 0x3b: //111011 </p><p><b>  //按鍵1功能 </b></p><p>  case 0x37: //110111 </p><p>  //按鍵1功能</p><p&

53、gt;<b>  break; </b></p><p>  case 0x2f: //101111 </p><p>  //按鍵1功能</p><p>  break; </p><p>  case 0x1f: //011111 最左邊 </p><p><

54、;b>  //按鍵1功能</b></p><p><b>  break; </b></p><p>  default: break; </p><p><b>  } </b></p><p><b>  }</b></p&g

55、t;<p>  3.7 定時程序設(shè)計</p><p>  MCS-51單片機(jī)內(nèi)部有兩個可編程的16位定時器T0和T1。通過編程,可以設(shè)定為定時器和外部計數(shù)方式。T1還可以作MCS-51串行口的波特率發(fā)生器。定時器T0由特殊功能寄存器TL0和TH0構(gòu)成,定時器T1由特殊功能寄存器TL1和TH1構(gòu)成。特殊功能寄存器TMOD控制定時器的工作方式,TCON控制其運(yùn)行,TCON還包含了定時器T0和T1的溢出標(biāo)

56、志。定時器的中斷由中斷允許寄存器IE、中斷優(yōu)先級寄存器IP中的相應(yīng)位進(jìn)行控制。定時器T0的中斷入口地址為000BH,T1的中斷入口地址為001BH[13]。 </p><p>  定時器的編程包括; </p><p> ?。╨)置工作方式。 </p><p>  (2)置計數(shù)初值。 </p><p><b> ?。?)中斷設(shè)置。 &

57、lt;/b></p><p> ?。?)啟動定時器。 </p><p>  由于MCS-51的定時器采用加1計數(shù),因此,計數(shù)初值應(yīng)根據(jù)計數(shù)器長度及計數(shù)值來決定。對于同樣的計數(shù)值,在采用13位計數(shù)器、16位計數(shù)器及8位計數(shù)器時,其計數(shù)初值各不相同。此外,方式0、1、3均不能自動恢復(fù)初值,如果要求重復(fù)計數(shù)必須在每次計數(shù)溢出后重新裝入計數(shù)初值。 </p><p> 

58、 除了編寫以上程序外,還要設(shè)置中斷的開關(guān),用定時器時還要計算定時時間,內(nèi)部計數(shù)器用作定時器時,是對機(jī)器周期計數(shù)。每個機(jī)器周期的長度是12個振蕩器周期。因為實驗系統(tǒng)的晶振是12MHz,所以定時常數(shù)的設(shè)置可按以下方法計算:</p><p>  機(jī)器周期=12÷12MHz=1μS</p><p>  (65536-定時常數(shù))*1μS=50mS</p><p> 

59、 定時常數(shù)TH0=0X3C; TL0=0XB0[14];</p><p>  本設(shè)計中在洗衣時需要設(shè)置洗衣時間,這部分程序設(shè)計采用單片機(jī)內(nèi)部的定時器,用來倒計時。洗衣機(jī)定時系統(tǒng)采用單片機(jī)的定時器0,工作方式1,當(dāng)設(shè)定洗滌、漂洗和脫水時,單片機(jī)的定時器開始倒計時,前兩位數(shù)碼管顯示設(shè)定好的時間每秒減,當(dāng)剩余時間為0時第三位數(shù)碼管顯示的次數(shù)就減一,直至洗衣次數(shù)完全執(zhí)行完。</p><p>  定

60、時程序流程圖如圖3.6所示:</p><p>  圖3.6 定時程序流程圖</p><p>  倒計時編程采用定時器0,方式1。</p><p>  //定時器0 //用于到計時</p><p>  void timer0() interrupt 1 using 0</p><p><b>  {&l

61、t;/b></p><p>  TH0=0X3C; TL0=0XB0; //賦初值值50ms定時 </p><p><b>  cont1s++;</b></p><p>  if(cont1s==20) //cont1s==20 秒 </p><p><b>  {</b&g

62、t;</p><p>  //LEDnumber[0]++;if(LEDnumber[0]>8) LEDnumber[0]=0; </p><p><b>  timer--;</b></p><p>  if(!timer){TR0=0;} //如果到計時結(jié)束停止計時 </p><p><b>

63、  cont1s=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  4 軟件調(diào)試</b></p><p>  軟件調(diào)試就是檢查系統(tǒng)軟件中的錯誤。常見的軟件錯誤有程序失控、中斷錯誤(不響應(yīng)中斷或循

64、環(huán)響應(yīng)中斷)、輸入/輸出錯誤和處理結(jié)果錯誤等類型。要把各個程序模塊分別進(jìn)行調(diào)試,調(diào)試通過后再組合到一起進(jìn)行綜合調(diào)試,達(dá)到預(yù)定的功能技術(shù)指標(biāo)后即可將軟件固化。系統(tǒng)的調(diào)試過程要結(jié)合具體的仿真器進(jìn)行[15]。</p><p>  對于一個新設(shè)計的電路板,調(diào)試起來往往會遇到一些困難,特別是當(dāng)板比較大、元件比較多時,往往無從下手。但如果掌握好一套合理的調(diào)試方法,調(diào)試起來將會事半功倍。單片機(jī)系統(tǒng)的硬件調(diào)試和軟件調(diào)試是不能分開

65、的,許多硬件錯誤是在軟件調(diào)試中被發(fā)現(xiàn)和糾正的。但通常是先排除明顯的硬件故障以后,再和軟件結(jié)合起來調(diào)試以進(jìn)一步排除故障??梢娪布恼{(diào)試是基礎(chǔ),如果硬件調(diào)試不通過,軟件設(shè)計則是無從做起。</p><p>  硬件電路焊接好后,就可以編寫相關(guān)的程序調(diào)試電路了,由于電路復(fù)雜,不可能一步全部完成,一般方法是,一邊寫軟件一邊調(diào)試,這樣可以及時發(fā)現(xiàn)是硬件問題還是軟件問題,也方便及時改正。首先應(yīng)該確認(rèn)電源電壓是否正常。用電壓表測

66、量接地引腳跟電源引腳之間的電壓,看是否是電源電壓,例如常用的5V。接下來就是檢查復(fù)位引腳電壓是否正常。分別測量按下復(fù)位按鈕和放開復(fù)位按鈕的電壓值,看是否正確。然后再檢查晶振是否起振了,一般用示波器來看晶振引腳的波形,注意應(yīng)該使用示波器探頭的“×10”檔。另一個辦法是測量復(fù)位狀態(tài)下的I/O口電平,按住復(fù)位鍵不放,然后測量I/O口(沒接外部上拉的P0口除外)的電壓,看是否是高電平,如果不是高電平,則多半是因為晶振沒有起振。另外還要

67、注意的地方是,如果使用片內(nèi)ROM的話(大部分情況下如此,現(xiàn)在已經(jīng)很少有用外部擴(kuò)ROM的了),一定要將EA引腳拉高,否則會出現(xiàn)程序亂跑的情況。有時用仿真器可以,而燒入片子不行,往往是因為EA引腳沒拉高的緣故(當(dāng)然,晶振沒起振也是原因只一)。經(jīng)過上面幾點的檢查,一般即可排除故障了。如果系統(tǒng)不穩(wěn)定的話,有時是因為電源濾波不好導(dǎo)致的。在單片機(jī)的電源引腳跟地引腳之間</p><p>  其次顯示器部分的調(diào)試也很重要,要避免

68、顯示器接觸不良而導(dǎo)致故障,一般顯示器調(diào)試通過后,鍵盤調(diào)試就比較簡單,完全可以借助于顯示器,利用程序進(jìn)行調(diào)試。利用開發(fā)裝置對程序進(jìn)行設(shè)置斷點,通過斷點可以檢查程序在斷點前后的鍵值變化,這樣可知鍵盤工作是否正常。</p><p><b>  結(jié) 論</b></p><p>  本設(shè)計以MCS-51單片機(jī)為核心,設(shè)計由電源電路、數(shù)字控制電路和機(jī)械控制電路三大模塊構(gòu)成的控制

69、系統(tǒng),實現(xiàn)對洗衣機(jī)整個洗衣過程的控制。洗衣過程主要包括洗滌過程、漂洗過程、脫水過程。根據(jù)洗衣過程的要求,控制程序設(shè)計主要包括主程序、內(nèi)部定時中斷服務(wù)程序、外部服務(wù)中斷程序的設(shè)計。本設(shè)計側(cè)重于軟件的設(shè)計,采用C語言編程,通過程序?qū)崿F(xiàn)洗衣機(jī)的自動完成注水、洗滌、漂洗、和脫水全過程,洗衣過程通過控制電機(jī)的正轉(zhuǎn)、停、反轉(zhuǎn)來實現(xiàn)強(qiáng)洗、標(biāo)準(zhǔn)、弱洗,用數(shù)碼管來顯示洗衣各功能的剩余時間以及實時所處的洗衣狀態(tài),最終通過蜂鳴器的報警來通知用戶整個洗衣程序的

70、結(jié)束。</p><p>  本設(shè)計已基本實現(xiàn)洗衣機(jī)的各種功能,但是由于自身水平有限等原因,本設(shè)計中沒有設(shè)計電源電路,直接用5V直流電源取代,同時在信號輸出方面做的還不夠,所以本設(shè)計還存在一些不足,有待改進(jìn)。</p><p><b>  致 謝</b></p><p>  經(jīng)過一個學(xué)期的努力,我和我的同組人黃金金同學(xué)已基本將我們的畢業(yè)設(shè)計--基

71、于MCS-51單片機(jī)的洗衣機(jī)控制系統(tǒng)設(shè)計完成。</p><p>  首先最要感謝的是我們的指導(dǎo)老師--xx老師。在本次設(shè)計任務(wù)中我們遇到了好多困難,是xx老師在我們不知所措的時候給了我們精心指導(dǎo),xx老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、對科研工作的執(zhí)著追求、謙遜和藹的風(fēng)范對自己產(chǎn)生的深遠(yuǎn)影響,使自己受益終生。在他的嚴(yán)格要求下,我們的設(shè)計有了很大的進(jìn)展,每次的指導(dǎo)我們都會從中獲得豐富的理論知識同時也會提高實踐能力,這對我將來進(jìn)一步

72、學(xué)習(xí)電子方面的知識有著極大的幫助。</p><p>  同時還要感謝我的同組人黃金金同學(xué),在與他和合作中他給了我很大的幫助,與他的討論和交流給了自己很多有益的啟迪,對自己掌握學(xué)科知識、完成設(shè)計任務(wù)和論文寫作給予了很大幫助。</p><p>  同時,還要感謝學(xué)校為我們安排了這個教學(xué)環(huán)節(jié),也感謝在此次設(shè)計過程中給與我極大幫助和理解班主任和輔導(dǎo)員。</p><p>&l

73、t;b>  參 考 文 獻(xiàn)</b></p><p>  1 王琰.基于MCS-51單片機(jī)的洗衣機(jī)控制系統(tǒng)設(shè)計[J]自動化與儀器儀表, 2008,(04) .</p><p>  2 向騫.全自動洗衣機(jī)原理與維修[M].福建:福建科學(xué)技術(shù)出版社,2000.6.</p><p>  3 李華.MCS-51系列單片機(jī)實用接口技術(shù).2001年5月,第

74、一版,人民郵電出版社,648</p><p>  4 趙旭.趙慎嚴(yán).波輪式洗衣機(jī)洗滌模式與優(yōu)缺點的研究[J].西北輕工業(yè)學(xué)院學(xué)報,2001,1:70-73</p><p>  5 魯建國.曹敏.GB/T 4288-2003《家用電動洗衣機(jī)》的修訂與我國洗衣機(jī)的發(fā)展[J]. 家電科技,2003(7):75-78</p><p>  6 姜寶港.智能家用電器原理與

75、維修[M].北京:機(jī)械工業(yè)出版社,2002.5. </p><p>  7 曾璐,李明.基于AT89C52單片機(jī)的洗衣機(jī)智能控制系統(tǒng)[J]. 家電科技, 2007,(02)</p><p>  8 克強(qiáng).用AT89C2051單片機(jī)制作洗衣機(jī)控制電路[J]電子世界, 2001,(03)</p><p>  9 孫運(yùn)生等.現(xiàn)代洗衣機(jī)維修電路圖集[M].北京:機(jī)械工

76、業(yè)出版社,2002.1.</p><p>  10 文哲雄.PIC單片機(jī)在家用電器中的應(yīng)用[J].機(jī)電一體化,2003(1):69-72.</p><p>  11 王幸之,鐘愛琴,王雷,王閃.AT89S系列單片機(jī)原理與接口技術(shù)[M].北京:航空航天大學(xué)出版社,2004.5.</p><p>  12 劉光斌,劉冬,姚志成.單片機(jī)系統(tǒng)實用抗干擾技術(shù)[M].北京:人民

77、郵電出版社, 2003.10.</p><p>  13 萬福君,潘松峰.單片微機(jī)原理系統(tǒng)設(shè)計與應(yīng)用[M].合肥:中國科學(xué)技術(shù)大學(xué)出版社,2001.8.</p><p>  14 朱經(jīng)利,蔣玉亮.海爾家用洗衣機(jī)原理與維修[M].北京:人民郵電出版社,1999.2.</p><p>  15 王曉明.電動機(jī)的單片機(jī)控制[M].北京:航天航空大學(xué)出版社,2002.5:1

78、3-18.</p><p>  16 劉午平,幸坤濤.小家電與洗衣機(jī)修理從入門到精通[M].北京:國防工業(yè)出版社,2004.6.</p><p><b>  附錄A 硬件原理圖</b></p><p><b>  附錄B元件清單</b></p><p><b>  附錄C 源程序</

79、b></p><p>  #include <REG51F.H> </p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  sbit DQ=P1^0;</p><p>  sbit

80、LED0=P2^7; // 控制顯示數(shù)碼管的位 </p><p>  sbit LED1=P2^6;</p><p>  sbit LED2=P2^5;</p><p>  sbit LED3=P2^4;</p><p>  sbit alarm=P1^6;</p><p>  sbit water=P1^7;&l

81、t;/p><p>  bit alarm_bit =0;</p><p>  bit auto_c = 0; //1自動 0 手動 </p><p>  bit on_off =0; // 0停止 1運(yùn)行 </p><p>  uchar data cont1s=0 ;</p><p>  uchar

82、 data alarm_cont=0; //</p><p>  uchar data timer=30; // 設(shè)置時的定時時間 </p><p>  uchar data timer_led =30; //顯示的 定時時間 </p><p>  uchar data cyc = 1; // 循環(huán)次數(shù) </p><p>  uch

83、ar data k3reg=0; //k3中的變量寄存器 </p><p>  uchar data k4reg=0; //k4中的變量寄存器 </p><p>  uchar code dis_8[ 11 ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; </p><p>  //0,1

84、,2,3,4,5,6,7,8,9, 熄滅 - a,b,c,d,e,f,g,dp, 對應(yīng)p0.0~p0.7</p><p>  uchar code dis_led[ 9 ]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; </p><p>  uchar data LEDnumber[4]={219,1,2,3}; //存放LED指

85、示燈 要顯示的數(shù)據(jù) {251,1,2,3};</p><p>  /***************************** </p><p><b>  功能:延時程序 </b></p><p>  /****************************/</p><p>  void Delayms

86、(int t) //1ms延時函數(shù) </p><p>  {uint i ,j;</p><p>  for(i=0;i<t;i++)</p><p>  for(j=0;j<120;j++) </p><p><b>  ;</b></p><p><b>  }

87、</b></p><p>  /*****************11us延時函數(shù)*************************/</p><p><b>  /*</b></p><p>  void delay(uint i) //delay 延時子程序</p><p><b>

88、;  {</b></p><p>  while(i--);</p><p><b>  }</b></p><p><b>  */</b></p><p>  void initialize(void)</p><p><b>  {</b&g

89、t;</p><p>  IT0=1;EX0=1; // EA=1; //中斷 0 </p><p>  IT1=1; EX1=1; // EA=1; //中斷1</p><p>  SCON=0x00; //串行口初始化 </p><p>  TH0=0X3C; TL0=0XB0; //50ms定時 </p

90、><p>  TH1=0x3c;TL1=0xb0; //報警定時 </p><p>  TMOD=0x11;ET0=1;TR0=0; // 按鍵中 設(shè)置運(yùn)行 </p><p>  ET1=1;TR1=1;</p><p><b>  EA=1;</b></p><p><b>

91、;  } </b></p><p>  void calculate()</p><p><b>  {</b></p><p>  LEDnumber[1]=timer_led/10;</p><p>  LEDnumber[2]=timer_led%10;</p><p>  L

92、EDnumber[3]=cyc;</p><p><b>  }</b></p><p>  /*******************************</p><p>  功能:數(shù)碼管顯示 </p><p><b>  說明: </b></p><p>  /***

93、***************************/</p><p>  void display()</p><p>  { P0=LEDnumber[0]; LED0=0; Delayms(5); LED0=1; //左第一位 指示燈 </p><p>  P0=dis_8[LEDnumber[1]]; LED1=0;Delayms(5); LE

94、D1=1; //左第二位定時的十位</p><p>  P0=dis_8[LEDnumber[2]]; LED2=0;Delayms(5); LED2=1; //左第三位 定時的個位</p><p>  P0=dis_8[LEDnumber[3]]; LED3=0;Delayms(5); LED3=1; //左第四位 循環(huán)的次數(shù) </p><p>

95、;<b>  } </b></p><p>  /*****************************</p><p><b>  功能:按鍵輸入 </b></p><p>  說明:用到中斷0,P2.0~P2.3</p><p>  /*************************

96、***/</p><p>  void inkey_int0() interrupt 0 // 暫時用于 測試 </p><p>  { uchar input;</p><p>  // EX0=0;</p><p>  Delayms(5) ;</p><p>  //a

97、larm_bit=1 ;alarm=0;</p><p>  P1=P1|0x3f; </p><p>  input=P1; </p><p>  switch(input&0x3f) </p><p>  {case 0x3e: //111110最左邊 K1自動/手動 </p>&l

98、t;p>  if(on_off==0) //停止運(yùn)行時才可以設(shè)置 </p><p>  {auto_c = !auto_c;</p><p>  if(auto_c) { LEDnumber[0]&=0xfe;cyc=3; } //自動默認(rèn)3次 </p><p>  else LEDnumber[0]|=0x01; </p>

99、<p><b>  }</b></p><p>  break; </p><p>  case 0x3d: //111101 K2 弱/標(biāo)準(zhǔn)/強(qiáng) </p><p>  if(on_off==0) //停止運(yùn)行時才可以設(shè)置 </p><p>  { k3reg++;if(k3r

100、eg>2) k3reg=0;</p><p>  if(k3reg==0) {LEDnumber[0]|=0x1c; LEDnumber[0]&=0xfb; }</p><p>  if(k3reg==1) {LEDnumber[0]|=0x1c; LEDnumber[0]&=0xf7; }</p><p>  if(k3reg==2) {L

101、EDnumber[0]|=0x1c; LEDnumber[0]&=0xef; }</p><p><b>  }</b></p><p>  break; </p><p>  case 0x3b: //111011 K3 洗滌/漂洗/脫水 </p><p>  if(on_off

102、==0) //停止運(yùn)行時才可以設(shè)置 </p><p>  { k4reg++;if(k4reg>2) k4reg=0;</p><p>  if(k4reg==0) {LEDnumber[0]|=0xe0; LEDnumber[0]&=0xdf; }</p><p>  if(k4reg==1) {LEDnumber[0]|=0xe0; LED

103、number[0]&=0xbf; }</p><p>  if(k4reg==2) {LEDnumber[0]|=0xe0; LEDnumber[0]&=0x7f; }</p><p><b>  }</b></p><p>  break; </p><p>  case 0x37: //

104、110111 K4 時間設(shè)置 </p><p>  if(on_off==0) { timer_led=timer_led+5; </p><p>  if (timer_led>99) timer_led=0;</p><p><b>  } </b></p><p><b>  br

105、eak; </b></p><p>  case 0x2f: //101111 K5 次數(shù)設(shè)置 </p><p>  if(on_off==0) { cyc++;</p><p>  if(cyc>9)cyc=1;</p><p><b>  }</b></p><

106、p>  break; </p><p>  case 0x1f: //011111 K6 運(yùn)行/停止 </p><p>  on_off=!on_off; </p><p>  if(on_off==0) {LEDnumber[0]|=0x02; TR0=0;} //停止 </p><p>  els

107、e {LEDnumber[0]&=0xfd; timer=timer_led;</p><p>  if(auto_c==0) TR0=1;</p><p>  else cyc=3;</p><p>  //如果自動 默認(rèn)循環(huán)3次(洗滌/漂洗/脫水 ) </p><p>  } //運(yùn)行 </p><p

108、><b>  break; </b></p><p>  default: break; </p><p><b>  }</b></p><p>  // EX0=1; </p><p><b>  }</b></p><

109、;p>  //定時器0 //用于到計時 </p><p>  void timer0() interrupt 1</p><p><b>  {</b></p><p>  TH0=0X3C; TL0=0XB0; //50ms定時 </p><p><b>  cont1s++;</b&

110、gt;</p><p>  if(cont1s==10) //cont1s==20 秒 </p><p><b>  {</b></p><p>  timer_led--;</p><p>  if(!timer_led){if(!(LEDnumber[0]&0x01)) //如果是自動

111、 洗滌/漂洗/脫水各一次 </p><p>  { timer_led=timer;cyc--;</p><p>  if(cyc==2) </p><p>  {LEDnumber[0]|=0xe0; LEDnumber[0]&=0xbf; }</p><p>  if(cyc==1) </p><p>

112、;  {LEDnumber[0]|=0xe0; LEDnumber[0]&=0x7f; }</p><p>  if(cyc==0)</p><p>  {LEDnumber[0]|=0xe0; LEDnumber[0]&=0xdf;</p><p>  LEDnumber[0]|=0x02; </p><p>  time

113、r_led=timer;LEDnumber[0]|=0x01; </p><p>  //清除自動/運(yùn)行指示燈 </p><p>  TR0=0; alarm_bit=1 ;alarm=0;</p><p>  //停止倒計時 并且報警 </p><p>  on_off=0; //清除按鍵標(biāo)記 </p><p>  

114、auto_c=0;// 清除自動標(biāo)記 不檢測水位 </p><p>  cyc=1; //自動結(jié)束后 設(shè)置循環(huán)次數(shù)為1</p><p><b>  }</b></p><p><b>  }</b></p><p>  else { //如果手動 </p><p>

115、  timer_led=timer;cyc--;</p><p>  if(cyc==0)</p><p>  {LEDnumber[0]|=0x02; timer_led=timer;</p><p>  on_off=0; //清除按鍵標(biāo)記 </p><p>  cyc=1; //手動結(jié)束后 設(shè)置次數(shù)為1</p><p

116、>  TR0=0; alarm_bit=1 ;alarm=0;}//停止倒計時 并且報警 </p><p><b>  }</b></p><p>  } //如果到計時結(jié)束停止計時 </p><p><b>  cont1s=0;</b></p><p><b>  }<

117、;/b></p><p><b>  } </b></p><p>  //定時器1 // 用于蜂鳴器定時 </p><p>  void timer1() interrupt 3</p><p><b>  {</b></p><p>  TH1=0X3C;

118、 TL1=0XB0; //50ms定時 </p><p>  if(alarm_bit) {alarm_cont++ ;</p><p>  if(alarm_cont==30) {alarm_cont=0; alarm_bit=0 ;alarm=1;}</p><p><b>  }</b></p><p><

溫馨提示

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

最新文檔

評論

0/150

提交評論