版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 1 緒論</b></p><p> 1.1本課題的研究目的和意義 </p><p> 洗衣機是人們?nèi)粘I钪谐R姷囊环N家電,已經(jīng)成為人們生活中不可缺少的家用電器。在工業(yè)生產(chǎn)中應(yīng)用也十分廣泛。但是傳統(tǒng)的基于繼電器的控制,已經(jīng)不能滿足人們對洗衣機的自動化程度的要求了。洗衣機需要更好地滿足人們的需求,必須借助于自動化技術(shù)的發(fā)展。而隨著單片
2、機技術(shù)的發(fā)展,用單片機來作為控制器,就能很好地滿足洗衣機對自動化的要求,并且控制方式靈活多樣,控制模式可以根據(jù)不同場合的應(yīng)用而有所不同。自動化技術(shù)的飛速發(fā)展使得洗衣機由初始的半自動式洗衣機發(fā)展到現(xiàn)在的全自動洗衣機,又正在向智能化洗衣機方向發(fā)展[1]。</p><p> 單片機又稱微控制器,或稱嵌入式控制器。而現(xiàn)在的智能家電無一例外是采用微控制器來實現(xiàn)的,所以家用電器是單片機應(yīng)用最多的領(lǐng)域之一。它是家用電器實現(xiàn)智
3、能化的心臟和大腦。由于家用電器體積小,故要求其控制器體積更小以便能嵌入其結(jié)構(gòu)之中。而家用電器品種多,功能差異也大,所以又要求其控制器有靈活的控制功能。單片機以微小的體積和編程的靈活性而產(chǎn)生多種控制功能,完全可以滿足家用電器的需求。</p><p> 1.2 洗衣機的發(fā)展和分類</p><p> 1.2.1 洗衣機的發(fā)展</p><p> 從古到今,洗衣服都是一
4、項難于逃避的家務(wù)勞動,而在洗衣機出現(xiàn)以前,對于許多人而言,它并不像田園詩描繪的那樣充滿樂趣,手搓、棒擊、沖刷、甩打……這些不斷重復(fù)的簡單的體力勞動,留給人的感受常常是:辛苦勞累。 </p><p> 1858年,一個叫漢密爾頓·史密斯的美國人在匹茨堡制成了世界上第一臺洗衣機。該洗衣機的主件是一只圓桶,桶內(nèi)裝有一根帶有槳狀葉子的直軸。軸是通過搖動和它相連的曲柄轉(zhuǎn)動的。次年在德國出現(xiàn)了一種用搗衣杵作為攪拌
5、器的洗衣機,當搗衣杵上下運動時,裝有彈簧的木釘便連續(xù)作用于衣服。19世紀末期的洗衣機已發(fā)展到一只用手柄轉(zhuǎn)動的八角形洗衣缸,洗衣時缸內(nèi)放入熱肥皂水,衣服洗凈后,由軋液裝置把衣服擠干。</p><p> 1874年,“手洗時代”受到了前所未有的挑戰(zhàn),美國人比爾·布萊克斯發(fā)明了木制手搖洗衣機。這套裝置的問世,讓那些為提高生活效率而冥思苦想的人士大受啟發(fā),洗衣機的改進過程開始大大加快。</p>
6、<p> 1880年,美國又出現(xiàn)了蒸氣洗衣機,采用了智能水循環(huán)系統(tǒng),可將高濃度洗滌液與高溫蒸氣同時對衣物進行雙重噴淋,貫穿全部洗滌過程,實現(xiàn)了全球獨創(chuàng)性的“蒸汽洗”全新洗滌方式。蒸汽洗衣機之后,水力洗衣機、內(nèi)燃機洗衣機也相繼出現(xiàn)。</p><p> 1910年,美國的費希爾在芝加哥試制成功世界上第一臺電動洗衣機。電動洗衣機的問世,標志著人類家務(wù)勞動自動化的開端。 </p><p&
7、gt; 1922年,美國瑪塔依格公司改造了洗衣機的洗滌結(jié)構(gòu),把拖動式改為攪拌式,使洗衣機的結(jié)構(gòu)固定下來,這也就是第一臺攪拌式洗衣機的誕生。攪拌式洗衣機結(jié)構(gòu)科學(xué)合理,受到人們的普遍歡迎。</p><p> 1932年,美國本德克斯航空公司宣布,他們研制成功第一臺前裝式滾筒洗衣機,洗滌、漂洗、脫水在同一個滾筒內(nèi)完成。這意味著電動洗衣機的型式躍上一個新臺階,朝自動化又前進了一大步!</p><p
8、> 第一臺自動洗衣機于1937年問世。這是一種"前置"式自動洗衣機。靠一根水平的軸帶動的缸可容納4000克衣服。衣服在注滿水的缸內(nèi)不停地上下翻滾,使之去污除垢。到了40年代便出現(xiàn)了現(xiàn)代的"上置"式自動洗衣機。</p><p> 隨著工業(yè)化的加速,世界各國也加快了洗衣機研制的步伐。首先由英國研制并推出了一種噴流式洗衣機,它是靠筒體一側(cè)的運轉(zhuǎn)波輪產(chǎn)生的強烈渦流,使衣物
9、和洗滌液一起在筒內(nèi)不斷翻滾,洗凈衣物。</p><p> 1955年,在引進英國噴流式洗衣機的基礎(chǔ)之上,日本研制出獨具風(fēng)格、并流行至今的波輪式洗衣機。至此,波輪式、滾筒式、攪拌式在洗衣機生產(chǎn)領(lǐng)域三分天下的局面初步形成。</p><p> 60年代的日本出現(xiàn)了帶干桶的雙桶洗衣機,人們稱之為“半自動型洗衣機”。</p><p> 70年代,生產(chǎn)出波輪式套桶全自動洗
10、衣機。</p><p> 70年代后期,以電腦(實際上微處理器)控制的全自動洗衣機在日本問世,開創(chuàng)了洗衣機發(fā)展史的新階段。</p><p> 80年代,“模糊控制”的應(yīng)用使得洗衣機操作更簡便,功能更完備,洗衣程序更隨人意,外觀造型更為時尚。</p><p> 90年代,由于電機調(diào)速技術(shù)的提高,洗衣機實現(xiàn)了寬范圍的轉(zhuǎn)速變換與調(diào)節(jié),誕生了許多新水流洗衣機。此后,隨
11、著電機驅(qū)動技術(shù)的發(fā)展與提高,日本生產(chǎn)出了電機直接驅(qū)動式洗衣機,省去了齒輪傳動和變速機構(gòu),引發(fā)了洗衣機驅(qū)動方式的巨大革命。 之后,隨著科技的進一步發(fā)展,滾筒洗衣機已經(jīng)成了大家耳濡目染的產(chǎn)品。伴隨著科技的進一步發(fā)展,相信新型更適合人們使用的洗衣機會給我們的生活帶來新的方式[2]。</p><p> 1.2.2 洗衣機種類</p><p> 家用洗衣機的種類很多,按其結(jié)構(gòu)原理可以分為以下幾類
12、:</p><p> 1、波輪式洗衣機:這種洗衣機的主要優(yōu)點是洗滌時間短,洗凈度較高,水位可調(diào),品種多,適宜于洗滌棉、麻、纖和混紡等織物。缺點是易使衣物纏繞,影響洗凈的均勻性,磨損率也較高。新穎的大波輪、新水流洗衣機,其性能有明顯的改善。</p><p> 2、滾筒式洗衣機:其優(yōu)點是洗滌動作比較柔和,對衣物的磨損小,用水量和洗滌劑都比較省,適合洗滌毛料織物。但機器結(jié)構(gòu)復(fù)雜,洗凈度低,耗
13、電量大,售價較高。</p><p> 3、攪拌式洗衣機:這種洗衣機好似手工洗滌的揉搓,衣物受力均勻,衣物磨損小,洗滌容量大。缺點是洗滌時間長,結(jié)構(gòu)比較復(fù)雜,售價高。</p><p> 4、噴流式洗衣機:其特點是洗滌時間短,污垢容易洗掉,機器結(jié)構(gòu)簡單,故障較少。但由于水流激烈,衣物容易擰絞在一起,因而洗滌不均,對衣物損傷較重,洗滌時洗滌液容易飛濺[3]。</p><p
14、> 除此之外還有波輪攪拌式洗衣機、噴淋漂洗洗衣機、振動式洗衣機、超聲波洗衣機等等。</p><p> 1.3 課題研究方向</p><p> 洗衣機的洗滌原理是由模擬人工洗滌衣物發(fā)展而來的,即通過翻滾、摩擦、水的沖刷等機械作用以及洗滌劑的表面活化作用,將附著在衣物上的污垢除掉,以達到洗凈衣物的目的。 現(xiàn)今,大多數(shù)的洗衣機都使用以單片機為核心的控制電路來控制電動機、數(shù)碼顯示管、進
15、水閥、排水閥及蜂鳴器的電壓輸出,使洗衣機根據(jù)程序運轉(zhuǎn)。 </p><p> 本設(shè)計在設(shè)計洗衣機的控制系統(tǒng)時,洗衣機通過控制系統(tǒng)設(shè)定洗衣程序,在內(nèi)桶(洗滌脫水桶)自動完成注水、洗滌、漂洗、浸泡、排水和脫水全過程。洗衣時,控制系統(tǒng)打開進水電磁閥,開始注水;當洗滌脫水桶內(nèi)的水位達到系統(tǒng)設(shè)定值時,水位檢測器向單片機發(fā)送一個低電平,通知控制系統(tǒng)關(guān)閉進水電磁閥,同時啟動電機洗衣。電機在系統(tǒng)的控制下進行正轉(zhuǎn)、停、反轉(zhuǎn),通過傳
16、動機構(gòu)帶動波輪執(zhí)行洗滌程序;當洗滌時間終了,控制系統(tǒng)切斷電機電路,打開排水電磁閥,開始排水;然后再次注水,洗衣機進入漂洗狀態(tài),完成漂洗程序(通常為2次漂洗),再注水進行浸泡;浸泡完,開始排水,同時,排水電磁鐵的動作帶動減速離合器制動臂,使離合器棘輪與棘爪分離,制動帶松開,為脫水程序作好準備;排水結(jié)束后,系統(tǒng)控制電機單方向高速運轉(zhuǎn),完成脫水程序;當脫水程序終了,系統(tǒng)控制排水電磁鐵和電機斷電,排水閥和減速離合器的制動臂復(fù)位,同時蜂鳴器奏響音
17、樂,通知用戶整個洗衣程序結(jié)束[4]。</p><p> 本設(shè)計要實現(xiàn)的功能有:</p><p> (1)用戶參數(shù)的輸入:用戶根據(jù)衣物的數(shù)量和質(zhì)地確定洗滌時間、漂洗次數(shù)、脫水時間,然后通過按鍵輸入具體的參數(shù)。</p><p> ?。?)參數(shù)和時間的顯示:靈活地運用數(shù)碼顯示管會帶來許多方便,它可以用來顯示用戶實時所處的洗衣功能狀態(tài)以及所剩時間。</p>
18、<p> ?。?)實時控制的實現(xiàn):單片機在獲取了用戶輸入的參數(shù)后,對其進行分析處理,然后按照計算結(jié)果對洗衣過程進行實時控制。</p><p> ?。?)水位檢測的實現(xiàn):水位的高低影響著整個洗衣過程的進行,因此需要水位檢測器將水位的變化發(fā)送給單片機,單片機根據(jù)水位的情況確定下一步應(yīng)該做什么。</p><p> ?。?)洗衣過程的實現(xiàn):一般的洗衣過程包括注水、洗滌、漂洗、排水和脫水
19、這些步驟。在洗衣過程中,系統(tǒng)主要控制進水電磁閥、排水電磁閥的打開和關(guān)閉,電機的正轉(zhuǎn)、反轉(zhuǎn)和停止。</p><p> ?。?)洗衣完畢的通知:當洗衣過程結(jié)束后,蜂鳴器就報警通知用戶洗衣完畢。</p><p> 2 硬件設(shè)計基本介紹</p><p><b> 2.1 總體方案</b></p><p> 本設(shè)計以MCS
20、-51單片機為核心,設(shè)計由電源、數(shù)字控制電路和機械控制電路三大模塊構(gòu)成的控制系統(tǒng),實現(xiàn)對洗衣機整個洗衣過程的控制。洗衣過程主要包括洗滌過程、漂洗過程、脫水過程。根據(jù)洗衣過程的要求,控制程序設(shè)計主要包括主程序、內(nèi)部定時中斷服務(wù)程序、外部服務(wù)中斷程序的設(shè)計。</p><p> 根據(jù)設(shè)計要求,其基本系統(tǒng)組成框圖如2.1所示。</p><p> 2.2 器件及原理簡介</p>&
21、lt;p> 采用51系列單片機作為控制核心,主要包括電源部分、功能設(shè)置及控制電路、洗衣機狀態(tài)顯示及輸出控制電路。主要組成部件有:單片機、74LS138譯碼器、指示燈、LED顯示器、電動機、蜂鳴器、電磁閥以及按鍵等。</p><p> 根據(jù)洗衣機的基本功能,硬件電路設(shè)計需要考慮洗衣機的進水、洗滌、漂洗、排</p><p> 圖2.1 系統(tǒng)組成框圖</p><p
22、> 水、脫水等問題,及時間設(shè)定長短、工作時間或剩余時間的顯示、工作過程中的暫停、啟動、復(fù)位、洗完后的報警等問題[5]。</p><p> 通過單片機的P0口連接數(shù)碼管發(fā)送段碼,P2.4~P7口通過三極管擴大電流去控制數(shù)碼管的位,顯示時采用動態(tài)掃描方式,輪流循環(huán)掃描。通過P1.6口連接蜂鳴器實現(xiàn)報警電路。通過P1.0~P1.5口作為按鍵輸入,并通過二極管連接到單片機的中斷入口引腳,當有鍵按下,就會產(chǎn)生中斷
23、,執(zhí)行相關(guān)按鍵的功能。</p><p> 根據(jù)系統(tǒng)框圖可設(shè)計出系統(tǒng)原理圖,見附錄A。</p><p><b> 3 軟件設(shè)計</b></p><p> 單片機應(yīng)用系統(tǒng)的軟件設(shè)計是系統(tǒng)設(shè)計中最基本而且工作量較大的任務(wù)。與系統(tǒng)機上操作系統(tǒng)支持下的純軟件不同,單片機的軟件設(shè)計是在裸機的條件下進行的,而且隨應(yīng)用系統(tǒng)的不同而不同。在軟件中一般需考
24、慮以下幾個方面:</p><p> 1) 根據(jù)要求確定軟件的具體任務(wù)細節(jié),然后確定合理的軟件結(jié)構(gòu)。一般系統(tǒng)軟件的主程序和若干個子程序及中斷服務(wù)程序組成,詳細劃分主程序、子程序和中斷服務(wù)程序的具體任務(wù),確定各個中斷的優(yōu)先級。主程序是一個順序執(zhí)行的無限循環(huán)的程序,不停地順序查詢各種軟件標志,以完成對事務(wù)的處理。在子程序和中斷服務(wù)程序中,要考慮現(xiàn)場的保護和恢復(fù),以及它們和主程序之間的信息交換方法。</
25、p><p> 2) 程序的結(jié)構(gòu)用模塊化結(jié)構(gòu),即把監(jiān)控程序分解為若干個功能相對獨立的較小的程序模塊分別設(shè)計,以便于調(diào)試。具體設(shè)計時可采用自底向上或自頂向下的方法。</p><p> 3) 在進行程序設(shè)計時,先根據(jù)問題的定義描述出各個輸入變量和輸出變量之間的數(shù)學(xué)關(guān)系,即建立數(shù)學(xué)模型,然后繪制流程圖,再根據(jù)流程圖用匯編語言進行具體程序的編寫。</p><p
26、> 4) 在程序設(shè)計完成后,利用相應(yīng)的開發(fā)工具和軟件進行程序的匯編,生成程序的機器碼[6]。</p><p> 本設(shè)計中系統(tǒng)軟件是采用C51編寫的.在研制單片機應(yīng)用系統(tǒng)時,匯編語言是一種常用的軟件工具,具有簡單的語法結(jié)構(gòu)和強大的處理功能,具有運行速度快、編譯效率高,移植性好和可讀性強等多種優(yōu)點,可以實現(xiàn)對系統(tǒng)便件的直接操作。用C語言來編寫目標系統(tǒng)軟件,可以大大縮短開發(fā)周期,且明顯地增加軟件的可
27、讀性,便于改進和擴充,從而開發(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ù)位初始化后,首先進行系統(tǒng)初始化,包括中斷的選擇及設(shè)置,定時器的選擇,
28、定時時間,及其相關(guān)設(shè)置,初始化后,單片機進入主程序,在這“主程序”中不停的循環(huá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> 水位檢測程序的原理是在洗衣機水箱中的適當高度放置兩個水位檢測器,當水位達到某一高度時,相應(yīng)的水位探測器的開關(guān)接通,把電信號送入單片機的I/O口,經(jīng)過單片機的處理,可以得到已經(jīng)加好水或水放完,可以開
31、始以下操作。</p><p> 本設(shè)計用單片機P2.2~P2.3接口接兩個水位傳感器,在自動模式下,當水位到達某個傳感器時,相應(yīng)的傳感器輸出一個低電平到單片機的引腳,單片機通過引腳的電平高低來判斷水位的高低?;玖鞒淌钱斪畹忘c和最高點的兩個檢測點都顯示低電平時說明洗衣機已經(jīng)放滿水;當檢測到最高點從低電平變?yōu)楦唠娖?,?jīng)過一段時間后最低點也由低電平變?yōu)楦唠娖綍r說明此時洗衣機放水完畢。</p><
32、p> 3.3 洗滌程序設(shè)計</p><p> 啟動開關(guān),進水閥通電,向洗衣機供水,當供水達到預(yù)定水位時,水位開關(guān)接通,進水閥斷電關(guān)閉,停止供水。洗滌電動機接通電源,帶動波輪或桶?旋轉(zhuǎn),產(chǎn)生各種形式的水流攪動衣物進行洗滌。通過電動機不停的正轉(zhuǎn)、停、反轉(zhuǎn)、反復(fù)循環(huán),形成洗滌水對洗滌物產(chǎn)生強烈的翻滾作用。</p><p> 程序流程圖如圖3.2所示。</p><p
33、> 圖3.2 洗滌過程程序流程圖</p><p> 3.4 脫水、漂洗程序設(shè)計</p><p> 脫水前先打開排水閥排水,然后啟動電動機脫水,并保持排水閥開啟,然后停止脫水。接著判斷漂洗次數(shù)的值,若次數(shù)變?yōu)?則洗衣結(jié)束,開蜂鳴器提醒洗衣結(jié)束,系統(tǒng)返回初始待命狀態(tài),若次數(shù)不為0,則再次執(zhí)行進水操作,進入下一循環(huán)。</p><p> 程序流程圖如圖3.3所
34、示:</p><p> 3.5 顯示程序設(shè)計</p><p> 在本系統(tǒng)的設(shè)計中作為人機對話的一個重要部分就是顯示器,本設(shè)計要顯示定時時間,洗滌時間,還有其它指示燈的狀態(tài)顯示,為了節(jié)省單片機的I/O口,把8個狀態(tài)指示燈按照數(shù)碼管的方式連接,即8個狀態(tài)指示燈相當于一個數(shù)碼管,這樣硬件電路中相當于使用四位共陽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> 個段碼都由一個單片機的I/O端口進行驅(qū)動,或者使用如BCD碼為十進制譯碼
36、器譯碼進行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多。</p><p> 動態(tài)顯示驅(qū)動:數(shù)碼管動態(tài)顯示接口是單片機中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃“a,b,c,d,e,f,g,dp”的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼
37、管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動[10]。</p><p> 系統(tǒng)定期的掃描每個數(shù)碼管,借助于人的視覺殘留效應(yīng),使的數(shù)字得以正確顯示,顯示電路采用數(shù)碼管動態(tài)掃描電路,占用單片機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指示燈顯示。基本方法是:把8個指示燈當作一個數(shù)碼管,這樣一共是4位數(shù)碼管。單片機的I/O口發(fā)送數(shù)碼管的段碼,接口P2.4~P2.7通過三極管擴大電流去控制數(shù)碼管的位,顯示時采用動態(tài)掃描方式,輪流循環(huán)掃描。8個LED指示燈依次代表著自動?/手動,運行/停止,強洗,標準洗,弱洗,洗滌狀態(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不斷的檢測是否有按鍵按下,這樣將會耗費大量的CPU時間,且反應(yīng)速度實時性不強;還有一種是中斷式按鍵,只有當有按鍵按下時,單片機產(chǎn)生中斷,開始處理按鍵的輸入功能,沒有鍵按
46、下時單片機處理其他,不需要不停地查詢按鍵是否按下。這樣采用中斷使按鍵反應(yīng)速度快,同時減少單片機處理時間,本設(shè)計采用中斷擴展式電路[11]。</p><p> 工作原理如下:沒有按鍵時,相關(guān)的I/O口為高電平,單片機的INT0也為高電平,當有鍵按下時,5V電壓經(jīng)過所按鍵上的電阻流向GND,這時由于按鍵閉合,按鍵上的低電平送入單片機的I/O口,同時與按鍵相連的二極管導(dǎo)通,由于二極管導(dǎo)通時,電壓大約為0.7V,相當于
47、低電平,這個低電平送入單片機的INT0產(chǎn)生中斷,在中斷里檢查哪個I/O口為低電平,就可以判斷是哪個按鍵按下,執(zhí)行相關(guān)的那個按鍵的功能[12]。</p><p> 本設(shè)計中單片機P1.0~P1.5作為按鍵輸入,并通過二極管連接到單片機的中斷入口引腳,當有鍵按下,就會產(chǎn)生中斷,執(zhí)行相關(guān)按鍵的功能。</p><p> 按鍵程序流程圖如圖3.5所示:</p><p>
48、 圖3.5 按鍵程序流程圖</p><p> 本設(shè)計中一共用到六個按鍵,通過連接單片機的P1.0~P1.5口來實現(xiàn)按鍵的功能,按鍵1的作用是調(diào)節(jié)自動或者手動,按鍵2的作用是調(diào)節(jié)洗衣的強度,按鍵3的作用是調(diào)節(jié)洗衣功能,按鍵4的作用是設(shè)置時間,按鍵5的作用是設(shè)置次數(shù),按鍵6的作用是控制洗衣機的運行與停止。</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單片機內(nèi)部有兩個可編程的16位定時器T0和T1。通過編程,可以設(shè)定為定時器和外部計數(shù)方式。T1還可以作MCS-51串行口的波特率發(fā)生器。定時器T0由特殊功能寄存器TL0和TH0構(gòu)成,定時器T1由特殊功能寄存器TL1和TH1構(gòu)成。特殊功能寄存器TMOD控制定時器的工作方式,TCON控制其運行,TCON還包含了定時器T0和T1的溢出標
56、志。定時器的中斷由中斷允許寄存器IE、中斷優(yōu)先級寄存器IP中的相應(yīng)位進行控制。定時器T0的中斷入口地址為000BH,T1的中斷入口地址為001BH[13]。 </p><p> 定時器的編程包括; </p><p> (l)置工作方式。 </p><p> (2)置計數(shù)初值。 </p><p><b> (3)中斷設(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ù)器用作定時器時,是對機器周期計數(shù)。每個機器周期的長度是12個振蕩器周期。因為實驗系統(tǒng)的晶振是12MHz,所以定時常數(shù)的設(shè)置可按以下方法計算:</p><p> 機器周期=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è)計采用單片機內(nèi)部的定時器,用來倒計時。洗衣機定時系統(tǒng)采用單片機的定時器0,工作方式1,當設(shè)定洗滌、漂洗和脫水時,單片機的定時器開始倒計時,前兩位數(shù)碼管顯示設(shè)定好的時間每秒減,當剩余時間為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é)果錯誤等類型。要把各個程序模塊分別進行調(diào)試,調(diào)試通過后再組合到一起進行綜合調(diào)試,達到預(yù)定的功能技術(shù)指標后即可將軟件固化。系統(tǒng)的調(diào)試過程要結(jié)合具體的仿真器進行[15]。</p><p> 對于一個新設(shè)計的電路板,調(diào)試起來往往會遇到一些困難,特別是當板比較大、元件比較多時,往往無從下手。但如果掌握好一套合理的調(diào)試方法,調(diào)試起來將會事半功倍。單片機系統(tǒng)的硬件調(diào)試和軟件調(diào)試是不能分開
65、的,許多硬件錯誤是在軟件調(diào)試中被發(fā)現(xiàn)和糾正的。但通常是先排除明顯的硬件故障以后,再和軟件結(jié)合起來調(diào)試以進一步排除故障??梢娪布恼{(diào)試是基礎(chǔ),如果硬件調(diào)試不通過,軟件設(shè)計則是無從做起。</p><p> 硬件電路焊接好后,就可以編寫相關(guān)的程序調(diào)試電路了,由于電路復(fù)雜,不可能一步全部完成,一般方法是,一邊寫軟件一邊調(diào)試,這樣可以及時發(fā)現(xiàn)是硬件問題還是軟件問題,也方便及時改正。首先應(yīng)該確認電源電壓是否正常。用電壓表測
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)很少有用外部擴ROM的了),一定要將EA引腳拉高,否則會出現(xiàn)程序亂跑的情況。有時用仿真器可以,而燒入片子不行,往往是因為EA引腳沒拉高的緣故(當然,晶振沒起振也是原因只一)。經(jīng)過上面幾點的檢查,一般即可排除故障了。如果系統(tǒng)不穩(wěn)定的話,有時是因為電源濾波不好導(dǎo)致的。在單片機的電源引腳跟地引腳之間</p><p> 其次顯示器部分的調(diào)試也很重要,要避免
68、顯示器接觸不良而導(dǎo)致故障,一般顯示器調(diào)試通過后,鍵盤調(diào)試就比較簡單,完全可以借助于顯示器,利用程序進行調(diào)試。利用開發(fā)裝置對程序進行設(shè)置斷點,通過斷點可以檢查程序在斷點前后的鍵值變化,這樣可知鍵盤工作是否正常。</p><p><b> 結(jié) 論</b></p><p> 本設(shè)計以MCS-51單片機為核心,設(shè)計由電源電路、數(shù)字控制電路和機械控制電路三大模塊構(gòu)成的控制
69、系統(tǒng),實現(xiàn)對洗衣機整個洗衣過程的控制。洗衣過程主要包括洗滌過程、漂洗過程、脫水過程。根據(jù)洗衣過程的要求,控制程序設(shè)計主要包括主程序、內(nèi)部定時中斷服務(wù)程序、外部服務(wù)中斷程序的設(shè)計。本設(shè)計側(cè)重于軟件的設(shè)計,采用C語言編程,通過程序?qū)崿F(xiàn)洗衣機的自動完成注水、洗滌、漂洗、和脫水全過程,洗衣過程通過控制電機的正轉(zhuǎn)、停、反轉(zhuǎn)來實現(xiàn)強洗、標準、弱洗,用數(shù)碼管來顯示洗衣各功能的剩余時間以及實時所處的洗衣狀態(tài),最終通過蜂鳴器的報警來通知用戶整個洗衣程序的
70、結(jié)束。</p><p> 本設(shè)計已基本實現(xiàn)洗衣機的各種功能,但是由于自身水平有限等原因,本設(shè)計中沒有設(shè)計電源電路,直接用5V直流電源取代,同時在信號輸出方面做的還不夠,所以本設(shè)計還存在一些不足,有待改進。</p><p><b> 致 謝</b></p><p> 經(jīng)過一個學(xué)期的努力,我和我的同組人黃金金同學(xué)已基本將我們的畢業(yè)設(shè)計--基
71、于MCS-51單片機的洗衣機控制系統(tǒng)設(shè)計完成。</p><p> 首先最要感謝的是我們的指導(dǎo)老師--xx老師。在本次設(shè)計任務(wù)中我們遇到了好多困難,是xx老師在我們不知所措的時候給了我們精心指導(dǎo),xx老師嚴謹?shù)闹螌W(xué)態(tài)度、對科研工作的執(zhí)著追求、謙遜和藹的風(fēng)范對自己產(chǎn)生的深遠影響,使自己受益終生。在他的嚴格要求下,我們的設(shè)計有了很大的進展,每次的指導(dǎo)我們都會從中獲得豐富的理論知識同時也會提高實踐能力,這對我將來進一步
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> 參 考 文 獻</b></p><p> 1 王琰.基于MCS-51單片機的洗衣機控制系統(tǒng)設(shè)計[J]自動化與儀器儀表, 2008,(04) .</p><p> 2 向騫.全自動洗衣機原理與維修[M].福建:福建科學(xué)技術(shù)出版社,2000.6.</p><p> 3 李華.MCS-51系列單片機實用接口技術(shù).2001年5月,第
74、一版,人民郵電出版社,648</p><p> 4 趙旭.趙慎嚴.波輪式洗衣機洗滌模式與優(yōu)缺點的研究[J].西北輕工業(yè)學(xué)院學(xué)報,2001,1:70-73</p><p> 5 魯建國.曹敏.GB/T 4288-2003《家用電動洗衣機》的修訂與我國洗衣機的發(fā)展[J]. 家電科技,2003(7):75-78</p><p> 6 姜寶港.智能家用電器原理與
75、維修[M].北京:機械工業(yè)出版社,2002.5. </p><p> 7 曾璐,李明.基于AT89C52單片機的洗衣機智能控制系統(tǒng)[J]. 家電科技, 2007,(02)</p><p> 8 克強.用AT89C2051單片機制作洗衣機控制電路[J]電子世界, 2001,(03)</p><p> 9 孫運生等.現(xiàn)代洗衣機維修電路圖集[M].北京:機械工
76、業(yè)出版社,2002.1.</p><p> 10 文哲雄.PIC單片機在家用電器中的應(yīng)用[J].機電一體化,2003(1):69-72.</p><p> 11 王幸之,鐘愛琴,王雷,王閃.AT89S系列單片機原理與接口技術(shù)[M].北京:航空航天大學(xué)出版社,2004.5.</p><p> 12 劉光斌,劉冬,姚志成.單片機系統(tǒng)實用抗干擾技術(shù)[M].北京:人民
77、郵電出版社, 2003.10.</p><p> 13 萬福君,潘松峰.單片微機原理系統(tǒng)設(shè)計與應(yīng)用[M].合肥:中國科學(xué)技術(shù)大學(xué)出版社,2001.8.</p><p> 14 朱經(jīng)利,蔣玉亮.海爾家用洗衣機原理與維修[M].北京:人民郵電出版社,1999.2.</p><p> 15 王曉明.電動機的單片機控制[M].北京:航天航空大學(xué)出版社,2002.5:1
78、3-18.</p><p> 16 劉午平,幸坤濤.小家電與洗衣機修理從入門到精通[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運行 </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è)置運行 </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) //停止運行時才可以設(shè)置 </p><p> {auto_c = !auto_c;</p><p> if(auto_c) { LEDnumber[0]&=0xfe;cyc=3; } //自動默認3次 </p><p> else LEDnumber[0]|=0x01; </p>
99、<p><b> }</b></p><p> break; </p><p> case 0x3d: //111101 K2 弱/標準/強 </p><p> if(on_off==0) //停止運行時才可以設(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) //停止運行時才可以設(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 運行/停止 </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> //如果自動 默認循環(huán)3次(洗滌/漂洗/脫水 ) </p><p> } //運行 </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> //清除自動/運行指示燈 </p><p> TR0=0; alarm_bit=1 ;alarm=0;</p><p> //停止倒計時 并且報警 </p><p> on_off=0; //清除按鍵標記 </p><p>
114、auto_c=0;// 清除自動標記 不檢測水位 </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; //清除按鍵標記 </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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機洗衣控制系統(tǒng)--畢業(yè)設(shè)計
- 單片機與智能洗衣機畢業(yè)設(shè)計
- 畢業(yè)設(shè)計----基于單片機控制的智能洗衣機控制器
- 畢業(yè)設(shè)計----基于單片機的全自動洗衣機的控制
- 基于單片機全自動洗衣機畢業(yè)設(shè)計
- 基于單片機全自動洗衣機畢業(yè)設(shè)計
- 單片機畢業(yè)設(shè)計--汽車轉(zhuǎn)彎燈單片機控制
- 單片機畢業(yè)設(shè)計---單片機控制交通燈
- 基于單片機的洗衣機控制電路設(shè)計畢業(yè)設(shè)計論文
- 全自動洗衣機機電控制系統(tǒng)設(shè)計(單片機)畢業(yè)設(shè)計
- 學(xué)士基于單片機全自動洗衣機畢業(yè)設(shè)計
- 單片機控制水位畢業(yè)設(shè)計
- 全自動洗衣機機電控制系統(tǒng)設(shè)計(單片機)_畢業(yè)設(shè)計
- 基于單片機的洗衣機智能控制系統(tǒng)畢業(yè)設(shè)計
- 單片機畢業(yè)設(shè)計--單片機控制的led點陣顯示
- 畢業(yè)設(shè)計(論文)基于單片機的全自動洗衣機控制系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計----基于單片機全自動洗衣機設(shè)計
- 畢業(yè)設(shè)計---單片機恒溫控制
- 單片機的溫度控制畢業(yè)設(shè)計
- 單片機畢業(yè)設(shè)計---基于單片機控制的模擬電梯顯示
評論
0/150
提交評論