




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、36基于單片機(jī)的洗衣機(jī)控制系統(tǒng)設(shè)計(jì)羅遠(yuǎn)強(qiáng) 指導(dǎo)老師:吳宇摘要 單片機(jī)是計(jì)算機(jī)家庭的一個(gè)重要分支,它具有體積小、價(jià)格低、面向控制的特點(diǎn),適用于各種工業(yè)控制、儀器儀表裝置,在人類生產(chǎn)和生活的各個(gè)領(lǐng)域都有極為廣泛應(yīng)用。 本洗衣機(jī)控制系統(tǒng),采用目前常用的89C51單片機(jī),用匯編語言的編程方法,完成對洗衣機(jī)洗衣全過程的自動控制,并采用LED數(shù)碼顯示洗衣過程代碼和洗衣剩余時(shí)間,洗衣完成后能自動報(bào)警。使全自動洗衣機(jī)的使用更加簡單、直觀和方便。本設(shè)計(jì)取材容易,結(jié)構(gòu)簡潔,易于制作,具有一定的實(shí)用價(jià)值。關(guān)鍵字:單片機(jī)、匯編語言、動態(tài)掃描目錄第一章 緒論1.1 設(shè)計(jì)目標(biāo) 1.2 設(shè)計(jì)意義第二章
2、 硬件和軟件的設(shè)計(jì)方法 2.1 洗衣機(jī)的工作過程 2.2 全自動洗衣機(jī)控制系統(tǒng)硬件的選擇 2.3 單片機(jī)編程軟件的選用第二章 全自動洗衣機(jī)控制系統(tǒng)的設(shè)計(jì)原理 3.1 控制系統(tǒng)方框圖3.2 控制板電路原理(附整機(jī)原理圖)3.3 控制功能及過程 第四章 洗衣機(jī)控制系統(tǒng)的軟件系統(tǒng)4.1 洗衣機(jī)控制系統(tǒng)軟件的編程思路4.2 主程序及子程序流程圖4.2 洗衣機(jī)控制系統(tǒng)的源程序參考文獻(xiàn)附錄 AT89C51技術(shù)手冊 MCS-51系列單片機(jī)指令系統(tǒng)表第一章: 緒論 在生產(chǎn)和生活的各個(gè)領(lǐng)域中,凡是有自動控制要求的地方都會有單片機(jī)的出現(xiàn)。單片機(jī)的應(yīng)用有利于產(chǎn)品的小型化、多功能化和智能化,而且抗干擾能力強(qiáng)
3、,可在各種惡劣的環(huán)境下可靠地工作,成本也較低。所以單片機(jī)的應(yīng)用已極為廣泛,它在工業(yè)自動化、工業(yè)測控、智能儀器儀表、家用電器、信息與通信、軍事裝備等方面都在發(fā)揮著“微電腦控制”的作用。11 設(shè)計(jì)目標(biāo)用51系列單片機(jī)89C51控制全自動洗衣機(jī)的運(yùn)行,使其能自動地完成進(jìn)水、洗滌、漂洗、脫水等功能。不同的衣物,洗滌、漂洗、脫水和洗衣電機(jī)正反轉(zhuǎn)所用的時(shí)間不同,要求設(shè)計(jì)能夠?qū)崿F(xiàn)過程選擇,并在LED顯示屏上顯示過程代碼。在運(yùn)行的時(shí)候能顯示完成整個(gè)過程的剩余時(shí)間。為了節(jié)省單片機(jī)的IO端口,以及使硬件連接能盡可能的簡單,在LED顯示過程中我們使用了動態(tài)掃描的方法。軟件編程使用匯編語言,燒錄好單片機(jī)后能實(shí)現(xiàn)上電運(yùn)
4、行。還應(yīng)該具有相當(dāng)?shù)姆€(wěn)定性,以保證全自動洗衣機(jī)的正常工作。以此體會單片機(jī)系統(tǒng)的設(shè)計(jì)、開發(fā)過程。12 設(shè)計(jì)意義l l 進(jìn)一步了解8051單片機(jī)。l l 熟悉單片機(jī)控制系統(tǒng)開發(fā)流程。l l 深入學(xué)習(xí)計(jì)算機(jī)匯編語言的編程方法。l l 對計(jì)算機(jī)的工作原理有進(jìn)一步的認(rèn)識。l
5、 l 增強(qiáng)個(gè)人動手能力。第二章 硬件和軟件的設(shè)計(jì)方法在進(jìn)行系統(tǒng)設(shè)計(jì)前,我們必須知道所設(shè)計(jì)的項(xiàng)目要完成什么任務(wù),達(dá)到什么樣的要求,并根據(jù)所完成的任務(wù)和要求來選擇相應(yīng)的硬件設(shè)備和軟件編程方法。在設(shè)計(jì)前我們先了解一下洗衣機(jī)的工作過程和單片機(jī)的工作原理,確立算法模型,再選擇相應(yīng)的軟件編程語言2.1洗衣機(jī)的工作過程目前常用的波輪洗衣機(jī)分為全自動和雙缸洗衣機(jī),它們都是依靠電機(jī)拖動波輪帶動洗衣筒中的水來回旋轉(zhuǎn),而使衣物洗干凈的。在雙缸洗衣機(jī)中,電機(jī)的正轉(zhuǎn)和反轉(zhuǎn)及洗滌時(shí)間控制是由機(jī)械定時(shí)器開關(guān)來完成的,而全自動洗衣機(jī)是靠電路來
6、完成,對洗滌來說,效果相同;所不同的是雙缸洗衣機(jī)在完成洗滌后,需要打開排水開關(guān)排水,拿出衣物放到脫水桶中脫水,脫水完成后又要將衣物放回洗衣機(jī)桶中洗滌,一次洗衣要進(jìn)行幾次洗滌,就要完成幾次這樣相同的動作,在完成洗衣的全過程中必須要有人工干預(yù),很不方便,而全自動洗衣機(jī)中,洗衣過程中的進(jìn)水、洗滌、排水、脫水、再進(jìn)水、洗滌是自動進(jìn)行的,只在洗衣前需人工放進(jìn)衣物,洗衣完成后自動報(bào)警,再由人工取出衣物,中間過程不需要人工干預(yù),使用要比雙缸洗衣機(jī)簡便的多。完成這樣的順序控制功能,也可以由數(shù)字邏輯電路來進(jìn)行,但實(shí)現(xiàn)這樣的控制比較困難,電路結(jié)構(gòu)也很復(fù)雜,成本高,控制系統(tǒng)不能智能化,如不容易實(shí)現(xiàn)單獨(dú)脫水、單獨(dú)洗滌
7、這樣的功能選擇。而使用單片機(jī),采用軟件編程的方法可以輕易實(shí)現(xiàn)這樣的控制,而且電路簡單,成本低,洗衣機(jī)能夠智能化,容易操作。綜合考慮,我們選擇了價(jià)格低廉,容易買到,比較可靠的89C51單片機(jī)來設(shè)計(jì)全自動洗衣機(jī)的控制系統(tǒng)。2.2 全自動洗衣機(jī)控制系統(tǒng)硬件的選擇單片機(jī)系統(tǒng)的是一個(gè)軟硬件結(jié)合的系統(tǒng),不能孤立地只談一個(gè)方向,脫離了硬件來講軟件編程是毫無意義的,同樣沒有軟件,單片機(jī)的硬件也無法正常工作。(1) 單片機(jī)89C51(2) AT89C51是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含4k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和128 bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采
8、用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,內(nèi)置功能強(qiáng)大的微型計(jì)算機(jī)的AT89C51提供了高性價(jià)比的解決方案。AT89C51是一個(gè)低功耗高性能單片機(jī),40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,AT89C51可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。 主要功能特性: l l &
9、#160; 兼容MCS51指令系統(tǒng) · 4k可反復(fù)擦寫(>1000次)Flash ROM l l 32個(gè)雙向I/O口 · 可編程UARL通道 l l 兩個(gè)16位可編程定時(shí)/計(jì)數(shù)器 · 全靜態(tài)操作0-24MHz l l 1個(gè)串行中斷 · 128x8bit內(nèi)部RAM l l
10、0; 兩個(gè)外部中斷源 · 共6個(gè)中斷源 l l 低功耗空閑和掉電模式 l l 軟件設(shè)置睡眠和喚醒功能(2)可控硅 洗衣機(jī)的幾個(gè)關(guān)鍵動作,如進(jìn)水、排水、電機(jī)正轉(zhuǎn)、電機(jī)反轉(zhuǎn),是通過單片機(jī)的IO端口,輸出控制信號,控制可控硅的通斷來實(shí)現(xiàn)的。在這里我們用了4個(gè)雙向可控硅擔(dān)任控制系統(tǒng)的執(zhí)行部件。 (3)LED顯示器及各開關(guān) 為了顯示所選功能及剩余時(shí)間,完成良好的人機(jī)交互
11、,我們選用了共陽的8段LED顯示器做顯示輸出。為了節(jié)省端口,采用了掃描的顯示方法(下章具體介紹),采用了三個(gè)開關(guān),分別做為安全開關(guān)、水位開關(guān)(進(jìn)水是否達(dá)到要求的傳感器)和控制開關(guān)(選擇洗衣程序和啟動暫停等動作的輸入按鈕)2.3單片機(jī)編程軟件的選用 單片機(jī)89C51可以用匯編語言和C語言來進(jìn)行編程,在選用編程語言前,我們先來比較兩者之間的特點(diǎn)。l l 匯編語言:匯編語言是用符號(助記符)表示的機(jī)器操作指令,它是對機(jī)器語言的改進(jìn)。但是機(jī)器語言還是面向機(jī)器的低級語言,它仍要求開發(fā)人員必須精通所用的單片機(jī)硬件系統(tǒng)和指令系統(tǒng)不便于記憶和使用。但
12、是它相比機(jī)器語言提供了高一層次的機(jī)器操作抽象,更加接近人類語言,這讓它成為單片機(jī)系統(tǒng)開發(fā)中最常用的開發(fā)語言之一。l l C語言:C語言正在成為單片機(jī)應(yīng)用系統(tǒng)開發(fā)的主流,它既具有高級語言的簡潔、便于理解記憶、通用性好、表達(dá)能力強(qiáng)等特點(diǎn),又具有低級語言的對計(jì)算機(jī)硬件進(jìn)行操作功能。C語言不是面面俱到的語言,也不是專為某一特殊應(yīng)用領(lǐng)域設(shè)計(jì)的語言。它本身不能執(zhí)行操作(如輸入/輸出),這些操作都由標(biāo)準(zhǔn)庫提供支持。正是因?yàn)檫@些操作都與語言無關(guān),所以C語言可以適用于任何平臺。Cx51是專為8051設(shè)計(jì),完全符合ANSI C標(biāo)準(zhǔn)1??梢葬槍?051生成
13、緊湊、高效的代碼。 在洗衣機(jī)的控制系統(tǒng)中,由于是面向控制的設(shè)計(jì),使用匯編語言方便一些,占用單片機(jī)內(nèi)的ROM空間也較小,并且在匯編語言中,我們可以精確地知道每條指令所占用的時(shí)鐘周期,能夠精確定時(shí),所以在本設(shè)計(jì)中我們采用了匯編語言編程的方法,源程序編好后,由編程軟件轉(zhuǎn)換為機(jī)器代碼,再由編程器輸入到單片機(jī)的RAM中去。第三章 全自動洗衣機(jī)控制系統(tǒng)的設(shè)計(jì)原理3.1 控制系統(tǒng)圖洗衣機(jī)要實(shí)現(xiàn)衣服的洗滌、漂洗和脫水,離不開進(jìn)水、電機(jī)正轉(zhuǎn)、電機(jī)反轉(zhuǎn)和排水這四個(gè)動作。上述四個(gè)動作,是通過單片機(jī)的P0端口,做輸出端口,去控制雙向可控硅通斷來實(shí)現(xiàn)的,如下圖所示。同時(shí)加上輸入開關(guān)的按鈕、數(shù)碼管顯示器、蜂鳴按警器和欠壓
14、檢測保護(hù)電路等,就可以形成完整的單片機(jī)控制系統(tǒng)。通過軟件編程達(dá)到對整個(gè)洗衣過程進(jìn)行控制、檢測以及與用戶交互。單片機(jī)89C51進(jìn)水電磁閥排水電磁閥電機(jī)正轉(zhuǎn)電機(jī)反轉(zhuǎn)顯示屏蜂鳴器 水位開關(guān) 安全開關(guān) 程序選擇/啟動/暫停 可控硅X 4個(gè)220V 洗衣機(jī)單片機(jī)控制系統(tǒng)方框圖3.2 控制板電路原理(附控制板整機(jī)原理圖)參閱洗衣機(jī)單片機(jī)控制系統(tǒng)原理圖,控制板電路使用ATMEL公司的AT89C51芯片,時(shí)鐘電路采用6MHZ晶振。組成的輸入信號有:安全開關(guān)(即洗衣機(jī)桶蓋的打開與閉合)、水位壓力開關(guān)(即水位的高低)、啟動、暫停按鈕,低電壓檢測信號; 輸出控制信號包括:兩個(gè)8位LED數(shù)碼動態(tài)顯示(剩余時(shí)間)和蜂鳴
15、器鳴叫、進(jìn)水閥、正反轉(zhuǎn)洗滌電機(jī)、排水閥的控制信號。交流220V電壓經(jīng)變壓、整流、濾波后,其中一路接至低電壓保護(hù)電路,另一路經(jīng)過CW7805進(jìn)行穩(wěn)壓,提供穩(wěn)定的5V電壓供應(yīng)給控制板各元件。當(dāng)?shù)碗妷罕Wo(hù)電路檢測到低電壓時(shí),將向單片機(jī)的INT0引腳產(chǎn)生中斷,單片機(jī)將響應(yīng)該中斷;關(guān)閉各輸出端口,以保護(hù)執(zhí)行部件如電機(jī)等設(shè)備不因欠壓而損壞。3.3 控制功能及過程洗衣機(jī)動作代碼表動作名稱進(jìn)水洗滌排水脫水動作代碼ABCD本次動作預(yù)設(shè)時(shí)間2分鐘1596或2分鐘2分秒30秒(2D+T秒)53或是分鐘(包括30秒間隙脫水)洗衣機(jī)功能選擇代碼表過程代碼過程名稱完成整個(gè)過程所需時(shí)間(分)所需動作代碼及時(shí)間01浸泡洗滌5
16、9A(B1停2)*5B15CD2AB2CD2AB2CD502強(qiáng)力洗滌42AB15CD2AB2CD2AB2CD203標(biāo)準(zhǔn)洗滌42AB15CD2AB2CD2AB2CD504輕柔洗滌34AB9CD2AB2CD2AB2CD305快速洗滌24AB5CD2AB2CD306單獨(dú)洗滌17AB1507漂洗脫水25CD2AB2CD2AB2CD508單獨(dú)脫水8CD509留水停機(jī)34AB15CD2AB2CD2AB2(大寫字母后的數(shù)字為動作所需的時(shí)間)洗衣機(jī)的三大功能是實(shí)現(xiàn)衣服的洗滌、漂洗和脫水,加上進(jìn)水,我們把這四個(gè)洗衣機(jī)動作編排成4個(gè)代碼,而這四個(gè)動作的組合可形成9個(gè)過程(或更多),見動作代碼表。選擇哪一個(gè)過程來執(zhí)
17、行洗衣程序是在進(jìn)入洗衣前由用戶通過開始、暫停按鈕來選擇的,如:單獨(dú)進(jìn)行脫水可選擇過程08。打開電源開關(guān),洗衣機(jī)將進(jìn)入洗衣過程選擇狀態(tài),此時(shí)數(shù)碼管顯示00,用戶按啟動、暫停鍵可以顯示不同的過程代碼(在0109之間循環(huán)顯示以指示選擇不同的洗衣過程)。3秒內(nèi)若無按鍵動作,蜂鳴器開始鳴叫6下(時(shí)間長度共3秒)以提醒用戶;開始進(jìn)入相應(yīng)過程的洗衣程序,此后啟動暫停按鈕只起暫停或繼續(xù)洗衣程序執(zhí)行作用,數(shù)碼管顯示完成本次洗衣的剩余時(shí)間。三大功能中的漂洗實(shí)際上是由洗滌和脫水功能組成的,如一次標(biāo)準(zhǔn)洗滌過程(過程代碼)中,漂洗功能包括了時(shí)間均為2分鐘的脫水、洗滌、脫水、洗滌。因此,在編寫控制程序?qū)崿F(xiàn)三大功能時(shí)只需編
18、寫洗滌和脫水功能的代碼,然后作為子程序調(diào)用即可。完成一次洗衣過程所需的動作有:(1) 進(jìn)水動作進(jìn)行洗滌時(shí),盛水桶內(nèi)的水量必須到水位設(shè)定要求。而水位的高低可以通過調(diào)節(jié)水位開關(guān)來實(shí)現(xiàn)。洗衣機(jī)的進(jìn)水和水位判斷是由水位開關(guān)和進(jìn)水閥的開合來進(jìn)行控制的。當(dāng)桶內(nèi)沒有水或水量達(dá)不到設(shè)定水位時(shí),單片機(jī)程序?qū)⒖刂七M(jìn)水閥閉合,開始注水;當(dāng)桶內(nèi)的水位達(dá)到設(shè)定水位時(shí)。水位開關(guān)受壓閉合;程序就可進(jìn)入下一步(洗滌)處理。若打開進(jìn)水閥后20分鐘內(nèi)不能進(jìn)水,則將出錯(cuò)報(bào)警,用戶只能關(guān)閉洗衣機(jī)電源進(jìn)行相關(guān)檢查后方能重新開機(jī)。(2) 排水動作進(jìn)入脫水動作前應(yīng)先排水。為了避免空排水造成時(shí)間浪費(fèi)以及排水不完而帶水脫水造成對電機(jī)的損害,洗
19、衣機(jī)能夠根據(jù)實(shí)際水量(由水位開關(guān)決定)對排水時(shí)間進(jìn)行動態(tài)控制。設(shè)排水開始至水位壓力開關(guān)斷開時(shí)所需的時(shí)間為D,則總的排水時(shí)間為2DT(T取60秒,總的排水時(shí)間不應(yīng)大于190秒)。因此,在開始排水時(shí),控制程序?qū)⑼瑫r(shí)啟動計(jì)時(shí)器,在D秒后若收到水位壓力開關(guān)斷開的信號,則再排水DT時(shí)間后,就可以結(jié)束排水進(jìn)入脫水動作。若D大于65秒,說明排水系統(tǒng)有故障;洗衣機(jī)將停止動作并蜂鳴報(bào)警,提醒用戶排除故障(安全開關(guān)打開又閉合認(rèn)為是一次故障詯處理)后再繼續(xù)。需要注意的是:排水結(jié)束后排水開關(guān)還是打開的。(3)洗滌動作洗滌動作指的是電機(jī)周期性的“正轉(zhuǎn)停止反轉(zhuǎn)停止”。不同的洗衣過程,控制電機(jī)執(zhí)行“正轉(zhuǎn)停止反轉(zhuǎn)停止”的時(shí)間
20、是不同的,標(biāo)準(zhǔn)洗滌過程可?。赫D(zhuǎn)1.6秒0.56秒反轉(zhuǎn)1.6秒停止0.56秒。對于輕柔洗滌和強(qiáng)力洗滌過程,這個(gè)時(shí)間要作相應(yīng)調(diào)整。洗滌過程中若遇水位開關(guān)斷開或用戶要求補(bǔ)水(重新選擇水位),則要停止洗滌動作并打開進(jìn)水閥進(jìn)水直至水位滿足要求再繼續(xù)。此外,洗滌動作的最后15秒,電機(jī)還要進(jìn)行快速的停止正轉(zhuǎn)停止反轉(zhuǎn)停止處理,以避衣服擰成一團(tuán)。程序流程見洗滌子程序(4)脫水動作排水結(jié)束后進(jìn)入脫水動作,脫水是通過電機(jī)的正轉(zhuǎn)來實(shí)現(xiàn)的,同時(shí)要求排水閥一直打開,也正是由于排水閥的打開,才使脫水時(shí)的電機(jī)正轉(zhuǎn)速度不同于洗滌時(shí)的電機(jī)正轉(zhuǎn)速度。(通過機(jī)械裝置實(shí)現(xiàn))。脫水分間隙脫水和長脫水,間隙脫水時(shí)間為30秒,電機(jī)按“正轉(zhuǎn)
21、停止”的周期循環(huán)動作,時(shí)間為“正轉(zhuǎn)4秒停止3秒”。長脫水時(shí)電機(jī)將一直調(diào)整正轉(zhuǎn),所需時(shí)間由用戶選擇的過程決定,一般有3分鐘和5分鐘的長脫水時(shí)間。進(jìn)入脫水前若洗衣機(jī)桶蓋是打開的,則進(jìn)行鳴叫、顯示告警,直至用戶合上桶蓋后,才繼續(xù)進(jìn)行脫水。脫水結(jié)束后,再經(jīng)過30秒延遲后關(guān)閉排水閥。脫水時(shí)若遇暫停,則重啟時(shí)需延時(shí)5秒后再進(jìn)行電機(jī)動作,目的是用于同步機(jī)械動作的滯后。程序流程見脫水子程序流程圖。(5)脫水不平衡修正進(jìn)行脫水處理,電機(jī)要進(jìn)行高速單向正轉(zhuǎn),若此時(shí)衣物偏向于一邊,脫水會因?yàn)殡x心力作用,在很短時(shí)間內(nèi)碰撞安全形狀裝置,使安全形狀產(chǎn)生瞬時(shí)的關(guān)閉和斷開,此時(shí)要進(jìn)行脫水不平衡修正。進(jìn)行脫水不平衡修正,洗衣機(jī)
22、將停止脫水,并自動插入“進(jìn)水洗滌分鐘排水”動作。通過這一插入動作,衣服將調(diào)整到洗衣桶中心位置。在同一脫水過程中如果連續(xù)修正3次仍達(dá)不到脫水平衡,則進(jìn)行報(bào)警,待用戶人工打開洗衣機(jī)將衣物放置均勻再蓋上桶蓋,方可繼續(xù)進(jìn)行脫水(即安全開關(guān)打開安全開關(guān)閉合動作)。在漂洗功能的第一次脫水動作時(shí)不進(jìn)行脫水不平衡修正,在第二次脫水動作時(shí)則要進(jìn)行脫水不平衡修正。 (6)LED的顯示89C51對可以分為靜態(tài)和動態(tài)兩種。靜態(tài)顯示的特點(diǎn)是各LED管能穩(wěn)定地同時(shí)顯示各自的字形;動態(tài)顯示是指各LED輪流地一遍一遍顯示各自字符,人們由于視覺器官的惰性,從而版的是各LED似乎在同時(shí)顯示不同字形。為了減少硬件開銷,提高系統(tǒng)可靠
23、性,并降低成本,我們在這里采用動態(tài)掃描的方法進(jìn)行代碼的顯示。在這里由之P2口推動LED的a、b、c、d、e、f、g、SP,稱為字形口,由P3.0、P3.1選擇所顯示的字位,稱為字位口,動態(tài)顯示采用軟件法把欲顯示的代碼符號轉(zhuǎn)換為相應(yīng)的字形碼,故它通常需要在RAM區(qū)建立一個(gè)顯示緩沖區(qū)。顯示緩沖區(qū)內(nèi)包含的存儲單元個(gè)數(shù)常和系統(tǒng)中LED顯示器的個(gè)數(shù)相等。顯示緩沖區(qū)的起始地址很重要,它決定了顯示緩沖區(qū)在RAM中的位置。顯示緩沖區(qū)中的每個(gè)存儲單元用于存放相應(yīng)LED顯示管欲顯示字符的字形碼地址偏移量,故CPU可以根據(jù)這個(gè)地址偏移量通過查字形碼表的方法找出所需顯示字符的字形碼,以便送到字形口顯示。(字形碼表見下
24、表)在這里我選用了2位共陽LED數(shù)碼顯示器LED數(shù)碼顯示器的字形(段)碼表顯示字形字形碼(共陽極)字形碼(共陰極)0C0H3FH1F9H06H2A4H5BH3B0H4FH499H66H592H6DH682H7DH7F8H07H880H7FH990H6FHA88H77HB83H7CHCC6H39HDA1H5EHE86H79HF8EH71H熄滅FFH00H(7)其它動作為了有更好的人機(jī)交互,進(jìn)行洗衣時(shí)數(shù)碼管要顯示剩余時(shí)間(單位為分鐘),并且以1秒的頻率不停地閃爍。此時(shí)如果按下暫停按鈕,則時(shí)間顯示不閃爍。隨著洗衣過程的進(jìn)行,顯示時(shí)間將不斷減少直至洗衣程序完成后顯示“0”。剩余時(shí)間的獲得可以通過如下方
25、法:根據(jù)用戶所選的過程代碼可以獲得包含這一過程的所有動作(9個(gè)過程所包含的動作需要的時(shí)間見功能選擇代碼表),由于相應(yīng)的動作有預(yù)設(shè)的時(shí)間(動作對應(yīng)的代碼和預(yù)設(shè)時(shí)間見表動作代碼表),因此,根據(jù)本次過程余下的動作可以通過查表的方式獲取剩余時(shí)間。洗衣過程中的各種出錯(cuò)報(bào)警的顯示代碼見出錯(cuò)代碼表,在顯示的同時(shí)蜂鳴器將鳴叫6下用以提醒。洗衣過程結(jié)束后,蜂鳴器將鳴叫6下用以提醒用戶可以取走衣服并關(guān)掉洗衣機(jī)的電源。故障名稱顯示值不能排水E1不能進(jìn)入脫水E2不能平衡修正E3不能進(jìn)水E4實(shí)現(xiàn)一次洗衣過程的控制流程圖以標(biāo)準(zhǔn)洗滌(代碼03)為例,洗衣機(jī)是按以下動作進(jìn)行的:開始進(jìn)水洗滌排水脫水進(jìn)水洗滌排水脫水進(jìn)水洗滌排水
26、脫水結(jié)束。在此過程中,三大功能中的洗滌功能是指:進(jìn)水洗滌動作;漂洗功能是指排水脫水進(jìn)水洗滌排水脫水進(jìn)水洗滌(兩次洗滌和兩次時(shí)間均為2分鐘的脫水)動作;脫水功能是指:排水脫水動作。第四章 洗衣機(jī)控制系統(tǒng)的軟件系統(tǒng)4.1 洗衣機(jī)控制系統(tǒng)軟件的編程思路匯編語言程序設(shè)計(jì)并不很難,但要編出質(zhì)量高,可讀性好且執(zhí)行速度快的優(yōu)秀程序并不容易,欲達(dá)此目的,除應(yīng)嫻熟掌握所依托的指令系統(tǒng)外,還應(yīng)掌握程序設(shè)計(jì)的基本方法和技巧,熟悉匯編語言源程序的分類方法和特點(diǎn)。 洗衣機(jī)的一次洗衣過程控制過程比較簡單,主要為順序控制,如先進(jìn)水、洗滌(電機(jī)正轉(zhuǎn)反轉(zhuǎn))、再排水脫水,難點(diǎn)在于過程選擇,如不同的衣物所用的洗滌、漂洗、電機(jī)正轉(zhuǎn)反
27、轉(zhuǎn)時(shí)間不同,如果為每個(gè)過程單獨(dú)編一套指令,則指令系統(tǒng)變得很龐大,效率低,為此,我們把脫水、洗滌、進(jìn)水單獨(dú)編為一個(gè)子程序,由主程序根據(jù)過程選擇,不斷調(diào)用,由些減少源程序的長度,不同的洗衣過程,三大動作的時(shí)間不同,這可以通過建立數(shù)據(jù)表格,通過查表的方式獲得每個(gè)洗衣過程所需時(shí)間。此外,還需編出顯示子程序,延時(shí)子程序供主程序不斷調(diào)用。4.2 主程序及子程序流程圖(見下圖) 洗衣機(jī)控制系統(tǒng)主程序流程圖開始用戶選擇洗衣過程是否洗滌結(jié)束進(jìn)水洗滌排水2D7秒進(jìn)水是否漂洗是否脫水置注水漂洗標(biāo)志置最后脫水標(biāo)志間歇脫水最后長脫水是否為最后脫水結(jié)束鳴響中間長脫水洗滌是否為注水漂洗置注水漂洗標(biāo)志洗滌動作子程序流程圖開始
28、根據(jù)過程代碼獲取電機(jī)正轉(zhuǎn)-停止-反轉(zhuǎn)-停止的時(shí)間周期電機(jī)動作進(jìn)水處理是否進(jìn)水快速洗標(biāo)志?時(shí)間到否?是否暫停重啟否設(shè)定快速洗時(shí)間和電機(jī)正轉(zhuǎn)停止反轉(zhuǎn)停止周期清標(biāo)志暫停處理結(jié)束 是 否 否 是 否 是 否 是 是 否脫水子程序流程圖延時(shí)5秒電機(jī)動作暫停處理安全開關(guān)是否斷開脫水時(shí)間到否安全開關(guān)斷開暫停不平衡修正報(bào)警重置修正次數(shù)是否暫停是否暫停開始安全開關(guān)是否斷開延時(shí)30秒,關(guān)閉排水閥是否瞬間斷開不平衡修正3次脫水不平衡修正安全開關(guān)是否閉合顯示鳴叫報(bào)警結(jié)束 是否否是是否否是是否否是是4.3全自動洗衣機(jī)控制系統(tǒng)匯編語言源程序ORG 0000HLJMP MAINORG 0030H;延遲10ms程序;使用R0
29、, R1DELAY10MS:MOV R0, #100D;DELAY10MS02:MOV R1, #23DDELAY10MS01:DJNZ R1, DELAY10MS01DJNZ R0, DELAY10MS02RET;顯示子程序;20H.0閃爍標(biāo)志位:=0不閃爍,=1在1s內(nèi)亮滅一次;20H.1程序開始標(biāo)志:=1開始, =0選擇;顯示緩沖:50H;經(jīng)過的時(shí)間:53H,52H,51H=分鐘,秒,20ms的次數(shù);總時(shí)間:TOTALTIME=40HTOTALTIME EQU 40HDISPLAY:PUSH ACCPUSH PSWSETB RS0JNB 20H.1, DISPLAY01MOV A, 50
30、H ;高位是否為零CJNE A, #0AH, DISPLAY05DISPLAY05:JNC DISPLAY06XRL A, #0F0H;高位為零不顯示MOV 50H, ADISPLAY06:JNB 20H.0, DISPLAY01;是否需閃爍MOV A, 51HCJNE A, #25D, DISPLAY02;DISPLAY02:JC DISPLAY01MOV 50H, #0FFH;暗顯示(不亮)DISPLAY01:MOV A, 50H;顯示低位ANL A, #0FH;MOV DPTR, #DISPLAYTAB;MOVC A, A+DPTR;MOV P2, A;SETB P0.6CLR P0.7
31、LCALL DELAY10MSMOV A, 50H;顯示高位SWAP AANL A, #0FH;MOV DPTR, #DISPLAYTAB;MOVC A, A+DPTR;MOV P2, A;CLR P0.6SETB P0.7LCALL DELAY10MSINC 51H;累計(jì)時(shí)間MOV A, #50D;XRL A, 51H;JNZ DISPLAY03;50次的20ms未到MOV 51H, A;INC 52H;1sMOV A, #60D;XRL A, 52H;JNZ DISPLAY03MOV 52H, A;INC 53H;1minDISPLAY03:JNB 20H.0, DISPLAY04;MOV
32、 A, TOTALTIME;計(jì)算剩余時(shí)間CLR CSUBB A, 53H;MOV B, #10D ;16進(jìn)制轉(zhuǎn)換到10進(jìn)制DIV ABSWAP AXRL A, B;MOV 50H, A;DISPLAY04:POP PSWPOP ACCRETDISPLAYTAB: ;共陽數(shù)碼管反向編碼DB 03H, 9FH, 25H, 0DH, 99H;01234DB 49H, 41H, 1FH, 01H, 09H;56789DB 11H, 0C1H, 63H, 85H, 61H;ABCDEDB 0FFH;暗;重算時(shí)間;入口數(shù)據(jù):總時(shí)間(分)CALUTIME:MOV TOTALTIME, ACLR AMOV 5
33、2H, A;秒MOV 53H, A;經(jīng)過的分鐘RET;鳴叫一下, 時(shí)長120msPLAY:SETB P1.6MOV R0, #12D;PLAY1:LCALL DISPLAYDJNZ R0, PLAY1CLR P1.6RET;鳴叫六下, 時(shí)長240ms*12ALARM:SETB P1.6MOV R1, #11D;ALARM2:MOV R0, #12D;ALARM3:LCALL DISPLAYDJNZ R0, ALARM3CPL P1.6DJNZ R1, ALARM2RET;洗滌用子程序;洗滌時(shí)暫停按鍵XDPAUSE:JB P0.0, XDPS01LCALL DISPLAYJB P0.0, XDP
34、S01PUSH 52HPUSH 53HCLR 20H.0;不閃爍MOV A, P1PUSH ACCMOV P1, #00HLCALL PLAYXDPS02:LCALL DISPLAYJNB P0.0, XDPS02;等待按鍵釋放XDPS03:LCALL DISPLAYJB P0.0, XDPS03LCALL DISPLAYJB P0.0, XDPS03LCALL PLAYXDPS04:LCALL DISPLAYJNB P0.0, XDPS04;等待按鍵釋放POP ACCMOV P1, ACCSETB 20H.0POP 53HPOP 52HXDPS01:RET;洗滌時(shí)延遲0.32sDELAY32
35、0MS:MOV R2, #14D;SJMP XDELAY01;洗滌時(shí)延遲0.56sXDELAY560MS:MOV R2, #28DSJMP XDELAY01;洗滌時(shí)延遲1sXDELAY1S:MOV R2, #50DSJMP XDELAY01;洗滌時(shí)延遲1.6sDELAY1600MS:MOV R2, #80DXDELAY01:LCALL DISPLAYLCALL XDPAUSE;暫停按鍵LCALL IFINWATER;水位開關(guān)DJNZ R2, XDELAY01RET;洗滌前進(jìn)水子程序INWATER:JNB P0.2, PI1;SETB P1.2MOV A, 53H;ADD A, #20D;MOV
36、 59H, A; PI3:MOV A, 53H;XRL A, 59H;JNZ PI2LCALL ERRORE4SJMP INWATER PI2:JNB P0.2, PI4;LCALL DISPLAYLCALL XDPAUSESJMP PI3 PI4:CLR P1.2 PI1:RET;洗滌時(shí)是否再進(jìn)水IFINWATER:JNB P0.2, IF1;MOV A, P1;PUSH ACCMOV P1, #00H;LCALL INWATER;進(jìn)水POP ACCMOV P1, A;IF1:RET;不能進(jìn)水報(bào)警ERRORE4:PUSH 52HPUSH 53HCLR 20H.0MOV A, P1;PUSH
37、ACCMOV P1, #00H;MOV 50H, #0E4HLCALL ALARME4PK2:LCALL DISPLAYJNB P0.1, E4PK2;LCALL DISPLAYJNB P0.1, E4PK2E4PK3:LCALL DISPLAYJB P0.1, E4PK3LCALL DISPLAYJB P0.1, E4PK3SETB 20H.0POP ACCMOV P1, ACC;POP 53HPOP 52HRET;排水時(shí)延遲1sDELAY1000MS:MOV R2, #50D;DLY51:LCALL DISPLAYLCALL XDPAUSE;暫停按鍵DJNZ R2, DLY51;RET;排
38、水子程序OUTWATER:CLR ASETB P1.3JB P0.2, OUTW1MOV R7, #60DOUTW2:LCALL DELAY1000MSJB P0.2, OUTW4DJNZ R7, OUTW2LCALL ERRORE1SJMP OUTWATEROUTW4:CLR CMOV A, #60DSUBB A, R7OUTW1:ADD A, #60DMOV R7, AOUTW3:LCALL DELAY1000MSDJNZ R7, OUTW3RET;不能排水報(bào)警ERRORE1:PUSH 52HPUSH 53HCLR 20H.0MOV A, P1;PUSH ACCMOV P1, #00H;M
39、OV 50H, #0E1HLCALL ALARME1PK2:LCALL DISPLAYJNB P0.1, E1PK2;LCALL DISPLAYJNB P0.1, E1PK2E1PK3:LCALL DISPLAYJB P0.1, E1PK3LCALL DISPLAYJB P0.1, E1PK3SETB 20H.0POP ACCMOV P1, ACC;POP 53HPOP 52HRET;脫水時(shí)暫停按鍵TPKEY:JB P0.0, TPK1;LCALL DISPLAYJB P0.0, TPK1;PUSH 52HPUSH 53HCLR 20H.0LCALL PLAYMOV A, P1;PUSH AC
40、CJNB ACC.0, TPK6CLR P1.0MOV R0, #250;延遲秒TPK5:LCALL DISPLAYDJNZ R0, TPK5TPK6:MOV P1, #00H;TPK2:LCALL DISPLAYJNB P0.0, TPK2;TPK3:LCALL DISPLAYJB P0.0, TPK3LCALL DISPLAYJB P0.0, TPK3LCALL PLAYSETB 20H.0SETB P1.3MOV R0, #250;延遲秒TPK4:LCALL DISPLAYDJNZ R0, TPK4POP ACCMOV P1, ACC;POP 53HPOP 52HTPK1:RET;脫水時(shí)
41、開蓋, 脫水時(shí)安全報(bào)警IFOPEN:ERRORE2:JNB P0.1, TTPK1;LCALL DISPLAYJNB P0.1, TTPK1;PUSH 52HPUSH 53HCLR 20H.0MOV A, P1;PUSH ACC;LCALL ALARMJNB ACC.0, TTPK6CLR P1.0MOV R0, #250;延遲秒TTPK5:LCALL DISPLAYDJNZ R0, TTPK5TTPK6:MOV P1, #00H;MOV 50H, #0E2HTTPK2:LCALL DISPLAYJB P0.1, TTPK2;TTPK3:LCALL DISPLAYJB P0.1, TTPK2L
42、CALL DISPLAY;JB P0.1, TTPK3SETB 20H.0SETB P1.3MOV R0, #250;延遲秒TTPK4:LCALL DISPLAYDJNZ R0, TPK4POP ACCMOV P1, ACC;POP 53HPOP 52HTTPK1:RET;脫水時(shí)延遲4sDELAY4S:MOV R2, #200D; DLY431:LCALL DISPLAYLCALL TPKEY;暫停按鍵LCALL IFOPEN;安全開關(guān)DJNZ R2, DLY431;RET;脫水時(shí)延遲3sDELAY3S:MOV R2, #150D;DLY321:LCALL DISPLAYLCALL TPKEY
43、;暫停按鍵LCALL IFOPEN;安全開關(guān)DJNZ R2, DLY321;RET;主程序開始;選擇程序:30H, 程序開始20H.1=1MAIN:MOV SP, #60H;CLR 20H.0CLR 20H.1MOV A, #00H;MOV P1, A;MOV 50H, A;MOV 51H, A;MOV 52H, A;MOV 53H, A;MOV 30H, A;LP1:;有無按鍵LCALL DISPLAYJB P0.0, LP1;LCALL DISPLAY;按鍵去抖動JB P0.0, LP1;LP3:INC 30HMOV A, #0AH ;共有九種可選擇XRL A, 30H;JNZ LP2MO
44、V 30H, #01H;LP2:LCALL PLAYMOV 50H, 30H;LP4:LCALL DISPLAYJNB P0.0, LP4;等待按鍵釋放CLR AMOV 52H, A;LP5:LCALL DISPLAYMOV A, 52H;XRL A, #03H ;3秒延遲到否JZ START;開始洗衣JB P0.0, LP5;SJMP LP3;重選洗衣程序;START:LCALL ALARMSETB 20H.1CLR AMOV 52H, A;MOV A, 30H;DEC AMOV B, #03H;MUL ABMOV DPTR, #PROCTAB;JMP A+DPTRPROCTAB:LJMP
45、PROC1;洗衣程序LJMP PROC2;洗衣程序LJMP PROC3;洗衣程序LJMP PROC4;洗衣程序LJMP PROC5;洗衣程序LJMP PROC6;洗衣程序LJMP PROC7;洗衣程序LJMP PROC8;洗衣程序LJMP PROC9;洗衣程序PROC1:MOV A, #59DLCALL CALUTIMESETB 20H.0LCALL INWATER;進(jìn)水MOV A, #57DLCALL CALUTIME;洗滌3分鐘MOV R7, #42D;XIDI0:SETB P1.0LCALL DELAY1600MSCLR P1.0LCALL XDELAY560MSSETB P1.1LCA
46、LL DELAY1600MSCLR P1.1LCALL XDELAY560MSDJNZ R7, XIDI0MOV R6, #01D;共4次*3分鐘=12分鐘?4XIDI02:MOV R7, #30D;停2分鐘?120XIDI01:LCALL XDELAY1SDJNZ R7, XIDI01MOV R7, #14D;洗滌1分鐘XIDI03:SETB P1.0LCALL DELAY1600MSCLR P1.0LCALL XDELAY560MSSETB P1.1LCALL DELAY1600MSCLR P1.1LCALL XDELAY560MSDJNZ R7, XIDI03DJNZ R6, XIDI0
47、2MOV R7, #30D;停2分鐘?120XIDI04:LCALL XDELAY1SDJNZ R7, XIDI04LJMP PROC3;以下同過程PROC2:;(待完成)LJMP over;PROC3:MOV A, #42DLCALL CALUTIMESETB 20H.0LCALL INWATER;進(jìn)水MOV A, #40DLCALL CALUTIME;洗滌15分鐘MOV R7, #8D;?208XIDI:SETB P1.0LCALL DELAY1600MSCLR P1.0LCALL XDELAY560MSSETB P1.1LCALL DELAY1600MSCLR P1.1LCALL XDELAY560MSDJNZ R7, XIDI;快速
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生產(chǎn)線轉(zhuǎn)讓合同范本
- 2025年糖果制品供應(yīng)合同
- 2025年合作商店經(jīng)營合同規(guī)范文本
- 持續(xù)戰(zhàn)略發(fā)展管理顧問合同2025
- 2025年住宅小區(qū)共有部位買賣合同樣本
- 2025年化工原料采購協(xié)議合同
- 2025年中央空調(diào)系統(tǒng)冷卻塔填料訂購合同
- 2025年兼職歷史教師聘用合同
- 2025年發(fā)電廠建設(shè)合同
- 2025年信息資源訂購年協(xié)議書
- 人教版小學(xué)英語單詞表(按首字母排列)
- GB/T 45006-2024風(fēng)電葉片用纖維增強(qiáng)復(fù)合材料拉擠板材
- 婦科常見病的護(hù)理常規(guī)
- 《銀行案件防控培訓(xùn)》課件
- 邏輯思維訓(xùn)練500題(帶答案)
- 炎癥性腸病共識2024
- 《單片機(jī)應(yīng)用技術(shù)》課件第1章
- 幼兒園小班美術(shù)活動《飛舞的彩帶》課件
- AR婚禮策劃分析
- 餐飲人員責(zé)任心培訓(xùn)
- 《中等強(qiáng)國視域下韓國的“新南方政策”研究》
評論
0/150
提交評論