[信息與通信]基于單片機(jī)的全自動(dòng)洗衣機(jī)控制系統(tǒng)設(shè)計(jì)
《[信息與通信]基于單片機(jī)的全自動(dòng)洗衣機(jī)控制系統(tǒng)設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《[信息與通信]基于單片機(jī)的全自動(dòng)洗衣機(jī)控制系統(tǒng)設(shè)計(jì)(40頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 基于單片機(jī)的全自動(dòng)洗衣機(jī)控制系統(tǒng)設(shè)計(jì) 河南工業(yè)職業(yè)技術(shù)學(xué)院 畢 業(yè) 論 文 題目:基于單片機(jī)的全自動(dòng)洗衣機(jī)控制系統(tǒng)設(shè)計(jì) 專(zhuān)業(yè)(系別):機(jī)電一體化 姓 名:肖 向 前 班 級(jí):機(jī)電0905班 學(xué) 號(hào):0202090521 指 導(dǎo) 老 師 : 李 仁 摘要 該系統(tǒng)是《基于單片機(jī)的全自動(dòng)洗衣機(jī)控制系統(tǒng)設(shè)計(jì)》。系統(tǒng)采用AT89C51單片機(jī)作為核心控制芯片。并且輔以必要的外圍器件和電路,通過(guò)I/O
2、口輸出控制電動(dòng)機(jī)運(yùn)行和停止,通過(guò)AT89C51單片機(jī)內(nèi)部定時(shí)器中斷來(lái)記錄洗衣時(shí)間和進(jìn)水時(shí)間,通過(guò)按鍵來(lái)進(jìn)行洗衣參數(shù)設(shè)置。通過(guò)AT89C51單片機(jī)驅(qū)動(dòng)數(shù)碼管顯示洗衣機(jī)的工作時(shí)間,LED指示燈用作洗衣機(jī)的工作狀態(tài)顯示,用兩個(gè)電控水龍頭進(jìn)行加水和放水,通過(guò)蜂鳴器提示洗衣結(jié)束。通過(guò)外部中斷來(lái)控制進(jìn)水和放水。論文重點(diǎn)闡述單片機(jī)和控制系統(tǒng)模塊的設(shè)計(jì)。 關(guān)鍵詞:?jiǎn)纹瑱C(jī),全自動(dòng)洗衣機(jī),數(shù)碼管,蜂鳴器,中斷,定時(shí)器 Summary The system i
3、s <
4、 internal timer interrupt to record the laundry time and water time, through the key parameters for laundry. AT89C51 microcontroller driven by digital display washing machine working hours, LED indicator for status display of washing machines work, carried out by two electronically controlled tap wa
5、ter and turn on the water, laundry tips by the end of the buzzer. Water through an external interrupt to control and turn on the water. Paper focuses on the single-chip module design and control system. keywords: MCU ,Automatic washing machine, LE Buzzer ,Interrupt ,Timer
6、 35 目錄 緒論 2 第一章 系統(tǒng)整體設(shè)計(jì) 5 1.1設(shè)計(jì)功能要求 5 1.2系統(tǒng)設(shè)計(jì)方案 5 1.3芯片選擇 6 1.3.1什么是單片機(jī) 6 1.3.2單片機(jī)的應(yīng)用領(lǐng)域 6 1.3.3單片機(jī)的確定 7 1.4單片機(jī)的結(jié)構(gòu) 8 1.4.1 AT89C51單片機(jī)的引腳功能 8 1.4.2電源 9 1.4.3時(shí)鐘 9 1.4.4控制信號(hào)引腳線 9 1.4.5輸入/輸出引腳(I/O口線) 10 1.5 繼電器的選擇 11 第二章 系統(tǒng)硬件設(shè)計(jì) 12 2.1 電源電路設(shè)計(jì) 12 2.2 保護(hù)電路設(shè)計(jì) 12 2.3 顯示電路設(shè)計(jì)
7、13 2.4 按鍵控制設(shè)計(jì) 14 2.5 狀態(tài)指示電路設(shè)計(jì) 14 2.6 硬件總體電路設(shè)計(jì) 15 第三章 系統(tǒng)軟件設(shè)計(jì) 17 3.1 軟件整體結(jié)構(gòu)設(shè)計(jì) 17 3.2主程序結(jié)構(gòu)設(shè)計(jì)與分析 17 3.3子程序結(jié)構(gòu)設(shè)計(jì)與分析 26 3.3.1 定時(shí)器中斷1子程序 27 3.3.2 外部中斷0子程序 28 3.3.3 定時(shí)器中斷0子程序 30 3.3.4 外部中斷1子程序 31 3.3.5 數(shù)碼管顯示子程序 31 總結(jié) 33 致謝 34 參考文獻(xiàn) 35 緒論 1.全自動(dòng)洗衣機(jī)的發(fā)展過(guò)程 隨著社會(huì)的進(jìn)步和生活水平的提高,洗衣機(jī)是一種在家庭中不可
8、缺少的家用電器,全自動(dòng)式洗衣機(jī)因使用方便得到大家的青睞,全自動(dòng)即進(jìn)水、洗滌、摔干等一系列過(guò)程自動(dòng)完成。家用洗衣機(jī)從發(fā)明到現(xiàn)在已經(jīng)經(jīng)歷了一個(gè)多世紀(jì),經(jīng)歷以下一些發(fā)展階段: 世界上第一臺(tái)洗衣機(jī)實(shí)在1874年由美國(guó)的比爾.布萊克斯通(Bill Blackstone)研制成功的。1910年前后,第一臺(tái)臥軸滾筒式電動(dòng)洗衣機(jī)問(wèn)世,標(biāo)志著人類(lèi)家務(wù)勞動(dòng)自動(dòng)化的開(kāi)始。20世紀(jì)20年代,第一臺(tái)立軸攪拌式洗衣機(jī)再美國(guó)試制成功,由此,洗衣機(jī)開(kāi)始了“立軸”與“臥軸”之分。50年代中葉,日本三洋公司推出單桶波輪式洗衣機(jī)。開(kāi)始確定了滾筒式、攪拌式和波輪式三種工作方式。60年代,日本推出了帶甩干桶半自動(dòng)洗衣機(jī),并且大量應(yīng)用
9、塑料,使洗衣機(jī)的發(fā)展進(jìn)入一個(gè)新的階段。70年代,日本推出波輪式套桶全自動(dòng)洗衣機(jī),從此開(kāi)始有了“全自動(dòng)”洗衣機(jī)的概念。70年代后期,日本推出了微電腦控制的全自動(dòng)洗衣機(jī)。完成了由機(jī)械—電動(dòng)程序控制到電腦控制的過(guò)渡,開(kāi)始了電腦控制時(shí)代。這時(shí),洗衣機(jī)在發(fā)達(dá)國(guó)家已進(jìn)入飽和期,而在亞太地區(qū)發(fā)展中國(guó)家開(kāi)始進(jìn)入普及期。80年代后期,“模糊控制”洗衣機(jī)開(kāi)始出現(xiàn),實(shí)現(xiàn)了家電器控制方式上的高度自動(dòng)化。出現(xiàn)“白色家電”的概念。90年代,隨著變頻技術(shù)的發(fā)展,日本最先推出了電動(dòng)機(jī)直接驅(qū)動(dòng)洗衣機(jī),實(shí)現(xiàn)了洗衣機(jī)驅(qū)動(dòng)方式上的革命。今后洗衣機(jī)將以高可靠性,完善的功能,節(jié)水省電,降噪省時(shí)以及規(guī)格品種多樣化為發(fā)展方向。 2.洗衣機(jī)
10、的發(fā)展前景及待解決的問(wèn)題 ①?lài)?guó)外先進(jìn)技術(shù)及開(kāi)發(fā)前景: 當(dāng)今世界是技術(shù)、知識(shí)大爆炸的年代,只要人們有需要,就有可能生產(chǎn)出某種產(chǎn)品來(lái)滿(mǎn)足人們的需要。洗衣機(jī)的發(fā)展正是這樣,人們?cè)谏钪邪l(fā)現(xiàn)了它的某些不便,就會(huì)在實(shí)際中不斷地改進(jìn)和完善它,新型的洗衣機(jī)正是在這種情況下誕生的。 (1)超聲波洗衣機(jī)超聲振動(dòng)產(chǎn)生空穴現(xiàn)象,在洗滌中通過(guò)氣泡的生產(chǎn)和消失的運(yùn)動(dòng),產(chǎn)生強(qiáng)水壓,再加入小量洗衣劑,振動(dòng)纖維,超聲乳化,去污,水中氣泡上升,產(chǎn)生了從洗滌桶中央向外側(cè)翻動(dòng)的水流,使衣服之間相互摩擦,并與洗滌劑充分接觸產(chǎn)生很有效的洗滌作用。這種洗衣機(jī)洗滌桶小,桶內(nèi)無(wú)運(yùn)動(dòng)部件,無(wú)機(jī)械電氣故障,修理方便。不纏繞,不傷布料,洗衣
11、效果好,省水,省電。 (2)電磁洗衣機(jī)這種洗衣機(jī)洗滌桶內(nèi)有4個(gè)洗滌頭,上面各有有個(gè)夾子,把衣物伸展夾住,每個(gè)洗滌頭上有有個(gè)電磁線圈,接通電源發(fā)生2500次/秒的微擊振動(dòng),使衣物在洗滌液中洗滌。因不用電機(jī)驅(qū)動(dòng),無(wú)噪聲,省水50%,省電75%。 (3)高溫泡沫洗衣機(jī)日本大阪大研制的一種不用水用高溫泡沫來(lái)洗凈衣物的洗衣機(jī)。洗滌劑罐于洗衣機(jī)低部,放衣物后撥動(dòng)開(kāi)關(guān),開(kāi)始鼓風(fēng),將空氣送入罐中產(chǎn)生泡沫,由加熱到70C高溫泡沫洗凈衣物,然后進(jìn)入洗衣桶旁邊的消泡裝置,一般洗5~10分鐘/次,21L/1kg干衣。 (4)真空洗衣機(jī)原蘇聯(lián)研制的不用洗衣粉或洗滌劑的洗衣機(jī),真空泵將洗衣桶內(nèi)吸成真空狀態(tài),桶中水運(yùn)
12、動(dòng)產(chǎn)生氣泡爆破并去污。洗凈度高,不損衣、無(wú)噪聲、造價(jià)高。實(shí)際上是采用冷沸騰洗滌原理,在幾秒鐘內(nèi)從洗滌桶的上部那空氣抽空出。稀薄空氣與水如沸騰壯,衣物在泡沫旋渦鐘攪動(dòng),1.5~2分鐘就能洗凈衣物,一般洗衣服7~10分鐘即可完成全過(guò)程。 (5)噴射式洗衣機(jī)意大利扎努西公司研制一種將洗滌劑不斷噴向衣物的洗衣機(jī),似乎無(wú)水,可以省水20%,省洗滌劑30%,省能35%,省時(shí)間10%。這種洗衣機(jī)完全不同于前裝式滾筒洗衣機(jī),安裝在噴淋系統(tǒng)內(nèi)的噴射裝置持續(xù)不斷地將水和洗滌劑噴淋在衣物上進(jìn)行洗滌,并在不銹鋼桶內(nèi)攪動(dòng)衣物。衣物在液體中不停地?cái)噭?dòng),就像桶內(nèi)根本沒(méi)有水一樣。然而水卻滲透過(guò)衣物流入位于滾筒底部的一個(gè)儲(chǔ)水
13、槽中。在槽中,水被從新加熱再次循環(huán)噴射到衣物上去,洗滌桶做周期性脫水,以排去水和污物,隨后漂洗3次,最后脫水洗完。 ②洗衣機(jī)待解決的一些問(wèn)題: 由于我國(guó)洗衣機(jī)廠起步晚,加上技術(shù)方面的一些問(wèn)題,不可避免的在現(xiàn)有的機(jī)型中出現(xiàn)一些弊端。主要弊端有:噪聲大,耗水、耗電,進(jìn)水不暢或進(jìn)水不止或排水不暢,工作周期不平穩(wěn)、振動(dòng)大,損傷洗滌物,洗滌效果不佳,脫水桶自動(dòng)性不佳,脫水不良,重量大,容量不合理。具體來(lái)說(shuō),洗衣機(jī)的問(wèn)題存在于結(jié)構(gòu)、質(zhì)量、原材料和模具及管理方面 (1)結(jié)構(gòu)類(lèi)型方面我國(guó)洗衣機(jī)多屬波輪式。今后波輪式仍然是主要型式。為了適應(yīng)國(guó)外市場(chǎng)的不同需求,要適當(dāng)?shù)厣a(chǎn)些新型式的滾筒式和攪拌式洗衣機(jī),進(jìn)
14、而生產(chǎn)具有波輪式、攪拌式兩種洗衣機(jī)優(yōu)點(diǎn)的新機(jī)型。為了使波輪式洗衣機(jī)洗滌更合理,應(yīng)努力將全自動(dòng)洗衣機(jī)提高到電腦型的水平。雙桶洗衣機(jī)再提高漂洗的條件下,以重點(diǎn)生產(chǎn)全自動(dòng)型噴淋式洗衣機(jī)為宜。同時(shí)要注意避免新水流洗衣機(jī)一味地提高波輪式的轉(zhuǎn)數(shù)極其轉(zhuǎn)動(dòng)時(shí)間或增高波輪筋高的傾向,以免損傷衣率和纏繞率回升增高,降低了新水流洗衣機(jī)的優(yōu)越性。 (2)質(zhì)量方面我國(guó)洗衣機(jī)的質(zhì)量問(wèn)題,具體反映再功能、外觀和可靠性三方面,與國(guó)外存在再較大的差距。國(guó)內(nèi)外洗衣機(jī)相比較:從功能、電源插頭、面板裝飾、旋鈕結(jié)合,塑料件的光整度(光潔、毛刺和變形),外箱和螺絲釘?shù)某尚渭胺冷P,皮帶的耐磨及噪音,進(jìn)排水閥和水位開(kāi)關(guān)質(zhì)量,電腦控制各種功
15、能的能力,電腦的抗電壓波動(dòng)、抗干擾防靜電的能力,以及傳感器的靈敏度等方面,很容易看出整體質(zhì)量的好壞。再加上裝配工藝較落后,致使我國(guó)洗衣機(jī)的質(zhì)量穩(wěn)定性差,出口有一定的困難。目前我國(guó)洗衣機(jī)無(wú)故障運(yùn)行水平約為250~500小時(shí),而國(guó)外同類(lèi)產(chǎn)品達(dá)1500~2000小時(shí),即十年不需修理。因此提高洗衣機(jī)的質(zhì)量要從提高零部件的質(zhì)量入手。關(guān)鍵電器件和傳動(dòng)件應(yīng)組織專(zhuān)業(yè)分工,制定標(biāo)準(zhǔn),組織攻關(guān),進(jìn)行認(rèn)證,在改進(jìn)功能方面、外觀質(zhì)量和可靠性三方面,進(jìn)行全面整理,提高水平。 綜合以上分析介紹,全自動(dòng)洗衣機(jī)由于具有對(duì)衣物的磨損小、洗滌量大、節(jié)約水電等特點(diǎn),越來(lái)越得到廣大家庭的青睞。由于人們對(duì)全自動(dòng)洗衣機(jī)在價(jià)格低廉的基礎(chǔ)
16、上也提出了功能齊全、操作簡(jiǎn)單、不纏繞、不傷布料、洗衣效果好、性能可靠、工作效率高、便于維修等更高的要求。為滿(mǎn)足人們這種需求,特設(shè)計(jì)出這種有微控制器控制的全自動(dòng)洗衣機(jī)控制系統(tǒng)。 第一章 系統(tǒng)整體設(shè)計(jì) 在進(jìn)行系統(tǒng)設(shè)計(jì)之前,首先應(yīng)根據(jù)對(duì)系統(tǒng)的功能要求及其應(yīng)用環(huán)境等確定合理的、具體的功能和技術(shù)指標(biāo),對(duì)應(yīng)用系統(tǒng)的可靠性、通用性、先進(jìn)性、可維護(hù)性、以及成本等進(jìn)行綜合考慮,以盡量合理并符合相應(yīng)的標(biāo)準(zhǔn)。然后根據(jù)市場(chǎng)上各種單片機(jī)的貨源情況和單片機(jī)的性能及開(kāi)發(fā)工具等因素選擇合適的機(jī)型。接下來(lái)要根據(jù)系統(tǒng)中遇到
17、的重要器件進(jìn)行選擇,使之符合系統(tǒng)在精度、速度和可靠性等方面的要求。最后確定硬件和軟件的功能劃分。由于在系統(tǒng)設(shè)計(jì)中某些功能用硬件和軟件都能實(shí)現(xiàn),在設(shè)計(jì)中應(yīng)綜合考慮研制周期和成本等因素具體劃分軟硬件功能。 1.1設(shè)計(jì)功能要求 (1)通過(guò)按鍵控制洗衣機(jī)的工作方式,并且相應(yīng)工作方式的指示燈亮。 (2)數(shù)碼管用于顯示相應(yīng)工作方式的剩余時(shí)間 (3)洗衣機(jī)具有強(qiáng)洗(電動(dòng)機(jī)正轉(zhuǎn))和弱洗(電動(dòng)機(jī)正,反交替運(yùn)行) (4)打開(kāi)電源洗衣機(jī)自動(dòng)在強(qiáng)洗模式(并且可調(diào)整強(qiáng)洗和弱洗) (5)當(dāng)洗衣時(shí)間或脫水時(shí)間到蜂鳴器響 (6)通過(guò)延時(shí)控制洗衣機(jī)的進(jìn)水水位 1.2系統(tǒng)設(shè)計(jì)方案 通過(guò)設(shè)對(duì)計(jì)要求的分析,主控制系
18、統(tǒng)運(yùn)用的是AT89C51單片機(jī),控制對(duì)象包括:按鍵、電控水龍頭1(進(jìn)水閥)、電控水龍頭2(出水閥)、電動(dòng)機(jī)、數(shù)碼管顯示、LED指示燈、蜂鳴器等。這些被控對(duì)象需要根據(jù)不同的洗衣程序來(lái)設(shè)定他們的工作狀態(tài)和工作時(shí)間,電控水龍頭1(進(jìn)水閥)和電控水龍頭2(出水閥)來(lái)控制進(jìn)水和出水,同時(shí)需要LED指示燈和數(shù)碼管顯示不同的工作狀態(tài)和剩余時(shí)間,按鍵 用來(lái)控制程序運(yùn)行和設(shè)置洗衣模式,蜂鳴器用來(lái)提示洗衣完成提示。按照上述的系統(tǒng)方案得到的系統(tǒng)整體構(gòu)架如圖1-1: 圖1-1系統(tǒng)整體構(gòu)架 1.3芯片選擇 1.3.1什么是單片機(jī) 單片機(jī)即單片微型計(jì)算機(jī)。(Single-Chip Microcomput
19、er ),是 集CPU 、RAM 、ROM 、定時(shí)器、計(jì)數(shù)器和多種接口于一體的微控制器。這樣所組成的芯片級(jí)芯片級(jí)微型計(jì)算機(jī)稱(chēng)為單片微型計(jì)算機(jī)(Single-Chip Microcomputer ),簡(jiǎn)稱(chēng)位單片微機(jī)或單片機(jī)。他體積小,成本低,功能強(qiáng),廣泛應(yīng)用于智能產(chǎn)品和工業(yè)自動(dòng)化上。由于單片機(jī)的硬件結(jié)構(gòu)與指令系統(tǒng)都是按工業(yè)控制要求設(shè)計(jì)的,常用于工業(yè)的檢測(cè)、控制裝置中,因而也稱(chēng)為微控制器或嵌入式控制器。單片機(jī)按用途可分為通用型和專(zhuān)用型兩大類(lèi),按內(nèi)部數(shù)據(jù)通道的寬度又可分為4位、8位、16位及32位。而51 單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。 1.3.2單片機(jī)的應(yīng)用領(lǐng)域 單片機(jī)廣泛應(yīng)用
20、于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專(zhuān)用設(shè)備的智能化管理及過(guò)程控制等領(lǐng)域,大致可分為如下幾個(gè)范疇: (一)在智能儀器儀表的應(yīng)用 單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同類(lèi)型的傳感器,可實(shí)現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長(zhǎng)度、硬度、元素、壓力等物理量的測(cè)量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。例如精密的測(cè)量設(shè)備(功率計(jì),示波器,各種分析儀)。 (2) 在家用電器中的應(yīng)用 可以這樣說(shuō),現(xiàn)在的家用電器基本上都采用了單片機(jī)控制,從電飯煲、洗衣機(jī)、電
21、冰箱、空調(diào)機(jī)、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門(mén),無(wú)所不在。 (三)在工業(yè)控制中的應(yīng)用 用單片機(jī)可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報(bào)警系統(tǒng),與計(jì)算機(jī)聯(lián)網(wǎng)構(gòu)成二級(jí)控制系統(tǒng)等。 (四)在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用 現(xiàn)代的單片機(jī)普遍具備通信接口,可以很方便地與計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信,為在計(jì)算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實(shí)現(xiàn)了單片機(jī)智能控制,從手機(jī)、電話機(jī)、小型程控交換機(jī)、樓宇自動(dòng)通信呼叫系統(tǒng)、列車(chē)無(wú)線通信、再到日常工作中隨處可見(jiàn)的移動(dòng)電話,集群移動(dòng)通信,無(wú)線電對(duì)講機(jī)等。 (五)單片
22、機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用 單片機(jī)在醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛,例如醫(yī)用呼吸機(jī),各種分析儀,監(jiān)護(hù)儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。 此外,單片機(jī)在工商、金融、科研、教育、國(guó)防航空等領(lǐng)域都有著十分廣泛的用途。 1.3.3單片機(jī)的確定 通過(guò)設(shè)計(jì)方案整體分析,根據(jù)單片機(jī)的使用性、技術(shù)性、經(jīng)濟(jì)性、以及對(duì)控制系統(tǒng)的設(shè)計(jì)要求與性能,本系統(tǒng)選擇AT89C51單片機(jī)作為核心控制對(duì)象。其中AT89C51單片機(jī)具有以下基本特性:AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能CMOS8位微處理器,外圍電路簡(jiǎn)單、硬件設(shè)計(jì)方便、I/O口操作簡(jiǎn)單、資源豐富、能滿(mǎn)足一般的使用功能、 價(jià)格
23、便宜、容易購(gòu)買(mǎi)。 通過(guò)以上的介紹和分析,AT89C51完全滿(mǎn)足設(shè)計(jì)要求和性能。因此,本系統(tǒng)選擇AT89C51單片機(jī)作為核心控制對(duì)象。 1.4單片機(jī)的結(jié)構(gòu) AT89C51 芯片內(nèi)部集成了 CPU、RAM、ROM、定時(shí)/計(jì)數(shù)器和I/O口等各功能部件,并由內(nèi)部總線把這些部件連接在一起。 AT89C51 單片機(jī)內(nèi)部包含以下一些功能部件: (1) 一個(gè)8位CPU; (2) 一個(gè)片內(nèi)振蕩器和時(shí)鐘電路; (3) 4KB 的ROM (4) 128x8字節(jié)內(nèi)部RAM; (5) 可尋址64KB的外ROM和外RAM控制電路; (6) 兩個(gè)16位定時(shí)/計(jì)數(shù)器; (7) 21個(gè)
24、特殊功能寄存器; (8) 4個(gè)8位并行I/O口,共32條可編程I/O端線; (9) 一個(gè)可編程全雙工串行口; (10) 5個(gè)中斷源; 1.4.1 AT89C51單片機(jī)的引腳功能 AT89C51單片機(jī)一般采用雙列直插DIP封裝,共40個(gè)引腳,圖1-2為單片機(jī)引腳排列圖。40個(gè)引腳大致可分為4類(lèi):電源、時(shí)鐘、控制和I/O引腳。 圖1-2 單片機(jī)引腳排列圖 1.4.2電源 (1)VCC(40腳)——芯片電源,接+5V; (2)VSS(GND20腳)——接地端。 1.4.3時(shí)鐘 XTAL1(19腳)、XTAL2(18腳)—
25、—晶體振蕩電路反相輸入端和輸出端。使用內(nèi)部振蕩電路時(shí)外接石英晶體如圖1-3。 圖1-3晶體振蕩電路 1.4.4控制信號(hào)引腳線 控制線共有4根,其中3根是復(fù)用線。所謂復(fù)用線是指具有兩種功能,正常使用時(shí)是一種功能,在某種條件下是另一種功能。 (1)ALE/PROG(30腳)地址鎖存允許/片內(nèi)EPROM編程脈沖。 ①ALE功能:用來(lái)鎖存P0口送出的低8位地址。 AT89C51在并行擴(kuò)展外存儲(chǔ)器(包括并行擴(kuò)展I/O口)時(shí),P0口用于分時(shí)傳送低8位地址和數(shù)據(jù)信號(hào)
26、,且均為二進(jìn)制數(shù)。那么如何區(qū)分是低8位地址還是8位數(shù)據(jù)信號(hào)呢?當(dāng)ALE為高電平時(shí),P0口傳送的是低8位地址信號(hào);ALE為低電平時(shí),P0口傳送的是8位數(shù)據(jù)信號(hào)。在ALE信號(hào)的下降沿,鎖定P0口傳送的內(nèi)容,即低8位地址信號(hào)。 需要指出的是,當(dāng)CPU不執(zhí)行訪問(wèn)外RAM指令(MOVX)時(shí),ALE以時(shí)鐘振蕩頻率1 / 6的固定頻率輸出,因此ALE信號(hào)也可作為外部芯片CLK時(shí)鐘或其他需要。但是,當(dāng)CPU執(zhí)行MOVX指令時(shí),ALE將跳過(guò)一個(gè)ALE脈沖。ALE端可驅(qū)動(dòng)8個(gè)LSTTL門(mén)電路。 ②PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。 (2) PSEN(29腳)——
27、外ROM讀選通信號(hào)。 80C51讀外ROM時(shí),沒(méi)個(gè)機(jī)器周期內(nèi)PSEN兩次有效輸出。PSEN可作為外ROM芯片輸出允許OE的選通信號(hào)。在讀內(nèi)ROM或讀外RAM時(shí),PSEN無(wú)效。PSEN可驅(qū)動(dòng)8個(gè)LSTTL門(mén)電路。 (3) RST/Vpd(9腳)——復(fù)位/備用電源。 ①正常工作時(shí),RST(Reset)端為復(fù)位信號(hào)輸入端,只要在該引腳上連續(xù)保持兩個(gè)機(jī)器周期以上高電平,80C51芯片即實(shí)現(xiàn)復(fù)位操作,復(fù)位后一切從頭開(kāi)始,CPU從0000H開(kāi)始執(zhí)行指令。8051的復(fù)位方式可以是自動(dòng)復(fù)位,也可以是手動(dòng)復(fù)位,見(jiàn)下圖1—4上電自動(dòng)復(fù)位電路 和圖1—5手動(dòng)復(fù)位電路。
28、 圖1-4上電自動(dòng)復(fù)位電路 圖1-5 手動(dòng)復(fù)位電路 ②Vpd功能:在Vcc掉電情況下,該引腳可接上備用電源,由Vpd向片內(nèi)供電,以保持片內(nèi)RAM中的數(shù)據(jù)不丟失。 (4) EA/VPP(31腳) ——內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。 ①EA功能:正常工作時(shí),EA為內(nèi)外ROM選擇端。AT89C51單片機(jī)ROM尋址范圍為64KB,其中4KB在片內(nèi),60KB在片外。當(dāng)EA保持高電平時(shí),先訪問(wèn)內(nèi)部ROM,但當(dāng)PC(程序計(jì)數(shù)器)值超過(guò)4KB(0FFFH)時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行外ROM中的程序。當(dāng)EA保持低電平時(shí),則CPU只
29、訪問(wèn)外ROM,當(dāng)EA為高電平時(shí),則CPU要先對(duì)內(nèi)部ROM訪問(wèn),然后自動(dòng)延至外部超過(guò)4KB的ROM。 ②Vpp功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳用于施加編程電源Vpp。 1.4.5輸入/輸出引腳(I/O口線) (1)P0口(32—39腳)——8位雙向I/O口。在不并行擴(kuò)展外存儲(chǔ)器(包括并行擴(kuò)展I/O口)時(shí), P0口可用作雙向I/O口。在并行擴(kuò)展外存儲(chǔ)器(包括并行擴(kuò)展I/O口)時(shí), P0口可用于分時(shí)傳送低8位地址(地址總線)和8位數(shù)據(jù)信號(hào)(數(shù)據(jù)總線)。P0口能驅(qū)動(dòng)8個(gè)LSTTL門(mén)。 (2)P1口(1——8腳)——8位準(zhǔn)雙向I/O口(“準(zhǔn)雙向”是指該口內(nèi)部有固定的上拉電
30、阻)。 P1口能驅(qū)動(dòng)為4個(gè)LSTTL門(mén)。 (3) P2口(21——28腳)——8位準(zhǔn)雙向I/O口。在不并行擴(kuò)展外存儲(chǔ)器(包括并行擴(kuò)展I/O口)時(shí), P2口可用作雙向I/O口。在并行擴(kuò)展外存儲(chǔ)器(包括并行擴(kuò)展I/O口)時(shí), P2口可用于傳送高8位地址(屬地址總線) 。P2口能驅(qū)動(dòng)4個(gè)LSTTL門(mén)。引腳上拉電阻同P1口。在結(jié)構(gòu)上,P2口比P1口多一個(gè)輸出控制部分。 (4) P3口(10——17腳)——8位準(zhǔn)雙向I/O口??勺饕话鉏/O口用,同時(shí)P3口每一引腳還具有第二功能,用于特殊信號(hào)輸入輸出和控制信號(hào)(屬控制總線)。P3口驅(qū)動(dòng)能力為4個(gè)LSTTL門(mén)。
31、 P3口第二功能如下: P3.0——RXD:串行口輸入端; P3.1——TXD:串行口輸出端; P3.2——INT0:外部中斷0請(qǐng)求輸入端; P3.3——INT1:外部中斷1請(qǐng)求輸入端 P3.4——T0:定時(shí)/計(jì)數(shù)器0外部信號(hào)輸入端; P3.5——T1:定時(shí)/計(jì)數(shù)器1外部信號(hào)輸入端; P3.6——WR:外RAM寫(xiě)選通信號(hào)輸出端; P3.7——RD:外RAM讀選通信號(hào)輸出端。 上述4個(gè)I/O口,各有各的用途。 在不并行擴(kuò)展外存儲(chǔ)器(包括并行擴(kuò)展I/O口)時(shí), 4個(gè)I/O口都可作為雙向I/O口用。在并行擴(kuò)展外存儲(chǔ)器(包括并行擴(kuò)展I/O口)時(shí), P0口專(zhuān)用于分時(shí)傳送低8位
32、地址信號(hào)和8位數(shù)據(jù)信號(hào),P2口專(zhuān)用于傳送高8位地址信號(hào)。P3口根據(jù)需要常用于第二功能,真正可提供給用戶(hù)使用的I/O口是P1口和一部分未用作第二功能的P3口端。 1.5 繼電器的選擇 繼電器是一種電子控制器件,它具有控制系統(tǒng)(又稱(chēng)輸入回路)和被控制系統(tǒng)(又稱(chēng)輸出回路),通常應(yīng)用于自動(dòng)控制電路中,用來(lái)接通和斷開(kāi)控制電器,它實(shí)際上是用較小的電流去控制較大電流的一種“自動(dòng)開(kāi)關(guān)”。故在電路中起著自動(dòng)調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等作用。根據(jù)控制電路的電源電壓,能提供的最大電流,被控電路需的觸點(diǎn)形式。根據(jù)單片機(jī)的控制特點(diǎn)AT89C51單片機(jī)帶負(fù)載能力不強(qiáng),一般用三極管控制繼電器,因此本系統(tǒng)采用的是:松樂(lè)T7
33、3 SRD-5VDC-SL-C繼電器。 第二章 系統(tǒng)硬件設(shè)計(jì) 2.1 電源電路設(shè)計(jì) 電源為單片機(jī)提供+5V電壓供電,原理圖如圖2-1所示,交流220V電源經(jīng)變壓器降壓在經(jīng)過(guò)整流、濾波后產(chǎn)生直流電壓,輸入到集成穩(wěn)壓器7805的輸入端,7805輸出穩(wěn)定的+5V電壓為單片機(jī)供電。 圖2-1電源電路 2.2 保護(hù)電路設(shè)計(jì) 保護(hù)電路如圖2-2所示,該電路主要是對(duì)與電動(dòng)機(jī)在運(yùn)行過(guò)程中出現(xiàn)過(guò)載或短路保護(hù),通過(guò)自恢復(fù)保險(xiǎn)絲與電動(dòng)機(jī)串聯(lián),當(dāng)電動(dòng)機(jī)過(guò)載或短路時(shí),流經(jīng)保險(xiǎn)絲的大電流使其集溫升高,當(dāng)達(dá)到居里溫度時(shí),其態(tài)密度迅速減小,相變?cè)龃?,?nèi)部的導(dǎo)電鏈路呈雪崩態(tài)變或斷裂,保險(xiǎn)絲呈階躍式遷到
34、高阻態(tài),電流被迅速夾斷,從而對(duì)電路進(jìn)行快速、準(zhǔn)確的限制和保護(hù),當(dāng)故障排除后,其集溫降低,態(tài)密度增大,相變復(fù)原,納米晶體還原成鏈狀導(dǎo)電通路,自恢復(fù)保險(xiǎn)絲恢復(fù)為正常狀態(tài),無(wú)需人工更換。從而起到保護(hù)作用。 2-2保護(hù)電路 2.3 顯示電路設(shè)計(jì) 顯示部分主要是通過(guò)一個(gè)兩位數(shù)碼管顯示系統(tǒng)的工作時(shí)間信息。該數(shù)碼管共有10個(gè)管腳,其中A——G 7個(gè)管腳為數(shù)碼管的段選,1和2為數(shù)碼管的位選,DP為小數(shù)點(diǎn)顯示。其中數(shù)碼管的段選與單片機(jī)的P0.0——P0.6口相連接,數(shù)碼管的位選1和2分別與單片機(jī)的P2.0和P2.1相連接。具體電路如圖2—3所示。 圖2-3 顯示電路
35、 2.4 按鍵控制設(shè)計(jì) 該系統(tǒng)通過(guò)四個(gè)獨(dú)立按鍵來(lái)控制系統(tǒng)的啟動(dòng)、停止和工作狀態(tài)設(shè)置,四個(gè)鍵分別為:程序、增加、減少、啟動(dòng),其中四個(gè)鍵分別與單片機(jī)的P1.0—P1.3口相連接:具體連接如圖2—4所示。 圖2-4 按鍵連接 2.5 狀態(tài)指示電路設(shè)計(jì) 狀態(tài)指示是通過(guò)8個(gè)LDE顯示系統(tǒng)的工作狀態(tài),LED與74LS138的輸出端相連接,其中74LS138的三個(gè)使能端分別與單片機(jī)的P1.4—P1.6相連接,通過(guò)單片機(jī)輸出高低電平控制74LS138相應(yīng)的引腳,使LED點(diǎn)亮,指示出工作狀態(tài)。具體連接如圖2-5所示。 圖2—5指示燈電路 2.6 硬件總體電路設(shè)計(jì)
36、 通過(guò)上面的分析硬件電路(如圖2-6)主要有這幾部分組成: 1.單片機(jī)最小系統(tǒng):(1)復(fù)位電路 (2)時(shí)鐘電路 (3)AT89C51 2.按鍵控制部分 3.LED與數(shù)碼顯示部分 4. 74LS138譯碼器 5.報(bào)警部分(蜂鳴器) 6.繼電器控制部分 7.電動(dòng)機(jī)部分 其中按鍵部分為四個(gè)獨(dú)立按鍵與單片機(jī)的P1.0—P1.3口相連接,分別是程序的增加、減少和啟動(dòng)主要用于設(shè)置洗衣機(jī)的工作狀態(tài)。D0—D7是洗衣機(jī)的工作狀態(tài)指示燈,其中D0—D5與38譯碼器的Y0—Y5相連接分別表示:進(jìn)水時(shí)間設(shè)定,脫水剩余時(shí)間,脫水定時(shí),洗衣剩余時(shí)間,洗衣定時(shí)
37、,洗滌次數(shù)。D6與D7分別與單片機(jī)的P2.6與P2.7相連接表示:弱洗和強(qiáng)洗。數(shù)碼管用于顯示洗衣機(jī)工作的時(shí)間,其中P0口控制數(shù)碼管的段選,P2.0與P2.1控制數(shù)碼管的位選。報(bào)警部分(蜂鳴器)用于洗衣完畢是的報(bào)警,通過(guò)三極管驅(qū)動(dòng)與單片機(jī)的P1.7相連接。繼電器控制部分主要用于電動(dòng)機(jī)的正反轉(zhuǎn)控制,通過(guò)三極管驅(qū)動(dòng)與單片機(jī)的P2.2—P2.5相連接。單片機(jī)的P3.0與P3.2分別連接兩個(gè)電控水龍頭用于洗衣機(jī)的進(jìn)水和脫水。 2-6 電路原理圖 第三章 系統(tǒng)軟件設(shè)計(jì) 3.1 軟件整體結(jié)構(gòu)設(shè)計(jì) 該系統(tǒng)的主要程序圖框如圖3-1所示。
38、系統(tǒng)程序可以分為:主程序,定時(shí)器中斷1程序,定時(shí)器中斷0程序,外部中斷0和外部中斷1程序,延時(shí)程序,數(shù)碼管顯示程序,等幾部分組成。定時(shí)中斷1和外部中斷0來(lái)控制電控水龍頭進(jìn)水,利用定時(shí)器中斷0記錄洗衣時(shí)間,通過(guò)外部中斷1判斷水是否放完,來(lái)進(jìn)行脫水,定時(shí)中斷1記錄脫水時(shí)間。下面分別以各部分的程序流程圖進(jìn)行分析程序 3.2主程序結(jié)構(gòu)設(shè)計(jì)與分析 首先,開(kāi)機(jī)可以先進(jìn)行選擇強(qiáng)洗和弱洗(弱洗是電動(dòng)機(jī)進(jìn)行正反轉(zhuǎn)每10s交替運(yùn)行)并且相應(yīng)指示燈亮。連續(xù)按下“程序”鍵可進(jìn)行相應(yīng)功能的選擇,當(dāng)進(jìn)水時(shí)間、洗衣時(shí)間、脫水時(shí)間、洗滌次數(shù)、脫水時(shí)間以及強(qiáng)洗或弱洗設(shè)置完成后,按下“啟動(dòng)”鍵系統(tǒng)開(kāi)始工作,進(jìn)水龍頭打開(kāi),當(dāng)進(jìn)
39、水時(shí)間到或水加滿(mǎn)開(kāi)始進(jìn)行洗衣,當(dāng)洗衣時(shí)間到,開(kāi)始進(jìn)行脫水。當(dāng)脫水時(shí)間到,若洗滌次數(shù)不到,繼續(xù)下一次洗滌,否則結(jié)束工作且蜂鳴器報(bào)警5秒,工作結(jié)束。其應(yīng)用程序如下: 開(kāi)始 啟動(dòng)鍵按下否 否 洗衣參數(shù)設(shè)定狀態(tài) 是 洗
40、衣加水 是 加水時(shí)間到否或滿(mǎn)否 啟動(dòng)鍵按下否 否
41、 是 是 洗衣?tīng)顟B(tài) 脫水狀態(tài) 是 洗衣時(shí)間到否 否 是 脫
42、水時(shí)間到否 否 洗滌次數(shù)到否 否 是 是 結(jié)束
43、 圖3-1 主程序圖框 main() { int a; P1=0xff; TMOD=0x11;//定時(shí)器0和定時(shí)器1同時(shí)工作在模式0; ET0=1; //打開(kāi)內(nèi)部中斷0 ET1=1; //打開(kāi)內(nèi)部中斷1 led7=0; while(d) { shao_maio(); if(b==1200)//b=20剛好1秒 { b=0; m=m-1; if(m<0) { m=0; } if(t<0) { t=0; }
44、 shao_maio(); //掃描數(shù)碼管 } /*************進(jìn)水控制****************************/ shao_maio(); if(b1==1200) { b1=0; jins_time=jins_time-1; } if(jins_time==0) { sw1=1;//關(guān)閉水龍頭 jins_time=1; EX0=1; //開(kāi)外部中斷0 EA=1;//開(kāi)總中斷 TMOD=0x11; jins_time=
45、1; TH0=(65536-50000)/256; //定時(shí)50毫秒 TL0=(65536-50000)%256; ET0=1; //打開(kāi)內(nèi)部中斷0 TR0=1; if(x==4) { sn1=0;//4 點(diǎn)亮洗衣剩余時(shí)間指示燈 sn2=1;//2 sn3=1;//1 ET0=1; //打開(kāi)內(nèi)部中斷0 TR0=1; } //if(x==3)//洗衣剩余時(shí)間 else {
46、 sn1=0; //4 sn2=1; //2 sn3=1;//1 x=3; ET0=1; //打開(kāi)內(nèi)部中斷0 TR0=1; } if(led6==0&&led7==1) //弱洗 { if(b>=0&&b<200||(b>=600&&b<800))//10m {q2=1;q3=1; q1=0;q4=0; } if(b>=400&&b<600||(b>=800&&b<1000))
47、 {q1=1;q4=1; q2=0;q3=0; } } if(led6==1&&led7==0) //強(qiáng)洗 { q1=0; q4=0; q2=1; q3=1; } } /*****************開(kāi)始脫水************************/ if(m==0) { sw1=1;//關(guān)水龍頭1 sw2=0;//開(kāi)水龍頭2 EX0=0;//關(guān)外部中斷0 ET0=0;//關(guān)定時(shí)器中斷0 TR0=0;
48、 EA=1;//開(kāi)總中斷 TMOD=0x11; TH1=(65536-50000)/256; //定時(shí)50毫秒 TL1=(65536-50000)%256; ET1=1; //打開(kāi)內(nèi)部中斷0 TR1=1; EX1=1; //外部中斷1打開(kāi)為放水準(zhǔn)備 sn1=0; //4 脫水剩余時(shí)間指示燈亮 sn2=0; //2 sn3=1;//1 x=5;//顯示脫水剩余時(shí)間 } if(tuo_s==1200) { tuo_s=0;
49、 t=t-1; } if(t<=0) { jins_time=jins_time1; m=m1; t=t; d=d-1; x=0; xi_di=1;//判斷是否跳轉(zhuǎn) } if(d<=0) { EA=0;//關(guān)總中斷 sw2=1;//關(guān)水龍頭2 sm1=sm2=0;//數(shù)碼管熄滅 sn1=sn2=sn3=1;//LED熄滅 q1=q2=q3=q4=1;//電動(dòng)機(jī)停止 feng_m_qi=0;//蜂鳴器響 delay(2
50、);//延時(shí)5秒 feng_m_qi=1;//蜂鳴器停止 } else goto start; /************強(qiáng)洗弱洗選擇***********************/ if(sb2==0&&x==0)//弱洗 { for(a=0;a<140;a++) //按鍵去抖 { shao_maio(); //掃描數(shù)碼管 } if(sb2==0&&x==0) { led6=0; led7=1; } } if(sb3==0&&x
51、==0)//強(qiáng)洗 { for(a=0;a<140;a++) //按鍵去抖 { shao_maio(); //掃描數(shù)碼管 } if(sb3==0&&x==0) { led6=1; led7=0; } } /****************功能選擇*************************/ if(sb1==0) { EA=0; for(a=0;a<130;a++) //按鍵去抖 { shao_maio(); //掃描數(shù)碼管
52、 } if(sb1==0) { x=x+1; if(x==1)//洗滌次數(shù)設(shè)置 { sn1=1; //4 sn2=0; //2 sn3=1;//1 } if(x==2)// 洗衣定時(shí) { sn1=1; //4 sn2=0; //2 sn3=0;//1 } if(x==3)//洗衣剩余時(shí)間 { sn1=0; //4 sn2=1; //2
53、 sn3=1;//1 } if(x==4)//脫水定時(shí)時(shí)間 { sn1=0; //4 sn2=1; //2 sn3=0;//1 } if(x==5)//脫水剩余時(shí)間 { sn1=0; //4 sn2=0; //2 sn3=1;//1 } if(x==6)//進(jìn)水時(shí)間 { sn1=0; //4 sn2=0; //2
54、 sn3=0;//1 } if(x==7)//強(qiáng)洗 { x=0; led6=1; led7=0; } } } /****************增加設(shè)置*****************/ if(sb2==0&&x==1) //洗滌次數(shù)增加 { //EA=0; for(a=0;a<130;a++) //按鍵去抖 { shao_maio(); //掃描數(shù)碼管 } if(sb2==0&&x==1) { d=d+1;
55、 if(d>99) { d=0; } } } /*****************************************/ if(sb2==0&&x==2) //洗衣定時(shí)增加 { for(a=0;a<130;a++) //按鍵去抖 { shao_maio(); //掃描數(shù)碼管 } if(sb2==0&&x==2) { m=m+1; m1=m; if(m>99) { m=0; } } } /******
56、******************************************/ if(sb2==0&&x==4)//脫水定時(shí)增加 { for(a=0;a<130;a++) //按鍵去抖 { shao_maio(); //掃描數(shù)碼管 } if(sb2==0&&x==4) { t=t+1; t1=t; if(t>99) { t=0; } } } /****************************************
57、********/ if(sb2==0&&x==6)//進(jìn)水水定時(shí)增加 { for(a=0;a<130;a++) //按鍵去抖 { shao_maio(); //掃描數(shù)碼管 } if(sb2==0&&x==6) { jins_time=jins_time+1; jins_time1=jins_time; if(jins_time>99) { jins_time=0; } } } /***************減少設(shè)置*******
58、****************/ if(sb3==0&x==1)//洗滌次數(shù)減少 { EA=0; for(a=0;a<130;a++) //按鍵去抖 { shao_maio(); //掃描數(shù)碼管 } if(sb3==0&x==1) { d=d-1; if(d<0) { d=0; } } } /***************************************************/
59、 if(sb3==0&x==2)//洗衣定時(shí)減少 { EA=0; for(a=0;a<130;a++) //按鍵去抖 { shao_maio(); //掃描數(shù)碼管 } if(sb3==0&x==2) { m=m-1; m1=m; if(m<0) { m=m1; } } } /**************************************************/ if(sb3==0&&x==4
60、) //脫水定時(shí)減少 { EA=0; for(a=0;a<130;a++) //按鍵去抖 { shao_maio(); //掃描數(shù)碼管 } if(sb3==0&&x==4) { t=t-1; t1=t; shao_maio(); if(t<0) { t=0; } } } /**************************************************/ if(sb3==0&&x==6) //進(jìn)水定時(shí)減少 {
61、 EA=0; for(a=0;a<130;a++) //按鍵去抖 { shao_maio(); //掃描數(shù)碼管 } if(sb3==0&&x==6) { jins_time=jins_time-1; jins_time1=jins_time; shao_maio(); if(jins_time<0) { jins_time=0; } } } /*****************啟動(dòng)****************
62、**************/ if(sb4==0&&x>0) { start: xi_di=0;//如果洗滌次數(shù)不到重新賦值 for(a=0;a<130;a++) //按鍵去抖 { shao_maio(); //掃描數(shù)碼管 } if(sb4==0&&x>0) { EA=1;//開(kāi)總中斷 EX0=1; //開(kāi)外部中斷0 sw1=0;//開(kāi)水龍頭1 sw2=1; TMOD=0x11; TH1=(65536-500
63、00)/256; //定時(shí)50毫秒 TL1=(65536-50000)%256; ET1=1; //打開(kāi)內(nèi)部中斷0 TR1=1; x=6; sn1=0; //4 sn2=0; //2 sn3=0;//1 } } } } 3.3子程序結(jié)構(gòu)設(shè)計(jì)與分析 3.3.1 定時(shí)器中斷1子程序 圖3-2為定時(shí)器中斷1程序框架,當(dāng)啟動(dòng)鍵按下后,系統(tǒng)將打開(kāi)定時(shí)器中斷1,每50ms中斷一次,作為進(jìn)水時(shí)間的記錄,當(dāng)進(jìn)水時(shí)間到定時(shí)器中斷1關(guān)閉停止計(jì)時(shí)?;蛘咚訚M(mǎn)后,利用外部
64、中斷0來(lái)停止加水。其主要程序如下: 洗衣參數(shù)設(shè)定狀態(tài) 啟動(dòng)鍵按下否 否 是 開(kāi)始每50ms中斷一次 進(jìn)水時(shí)間到否 否 是 開(kāi)始進(jìn)入洗衣?tīng)顟B(tài) 關(guān)閉定時(shí)器中斷1 打開(kāi)定時(shí)器中斷0 圖3-2定時(shí)器中斷1 void ds1zhong_duan() int
65、errupt 3 //定時(shí)器1中斷 //進(jìn)水水和脫水時(shí)間 { //shaomaio(); //掃描數(shù)碼管 TH1=(65536-50000)/256;//高8位 TL1=(65536-50000)%256;//低8位 if(EX0==1) { b1=b1+1; } //記錄中斷次,數(shù)每次中斷50ms else { tuo_s=tuo_s+1; } } 3.3.2 外部中斷0子程序 外部中斷0程序框架(如圖3-3所示),其
66、主要功能是:當(dāng)設(shè)置加水時(shí)間過(guò)長(zhǎng),水就會(huì)溢出,為防止水溢出,當(dāng)水加到一定高度時(shí)就會(huì)進(jìn)入該中斷子程序關(guān)閉進(jìn)水閥,開(kāi)始執(zhí)行下一步任務(wù)。其主要程序如下: 圖3-3 外部中斷0 void wai0_zhong_duan() interrupt 0//外部中斷0 { sw1=1;//關(guān)閉水龍頭 jins_time==1; if(led6==0&&led7==1) //弱洗 { void dian_zf(); } if(led6==1&&led7==0) //強(qiáng)洗 { led6=1; led7=0; } sw1=0;//關(guān)閉水龍頭1 EA=1;//開(kāi)總中斷 TMOD=0x11; jins_time=1; TH0=(65536-50000)/256; //定時(shí)50毫秒 TL0=(65536-50000)%256; ET0=1; //打開(kāi)內(nèi)部中斷0
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 市教育局冬季運(yùn)動(dòng)會(huì)安全工作預(yù)案
- 2024年秋季《思想道德與法治》大作業(yè)及答案3套試卷
- 2024年教師年度考核表個(gè)人工作總結(jié)(可編輯)
- 2024年xx村兩委涉案資金退還保證書(shū)
- 2024年憲法宣傳周活動(dòng)總結(jié)+在機(jī)關(guān)“弘揚(yáng)憲法精神推動(dòng)發(fā)改工作高質(zhì)量發(fā)展”專(zhuān)題宣講報(bào)告會(huì)上的講話
- 2024年XX村合作社年報(bào)總結(jié)
- 2024-2025年秋季第一學(xué)期初中歷史上冊(cè)教研組工作總結(jié)
- 2024年小學(xué)高級(jí)教師年終工作總結(jié)匯報(bào)
- 2024-2025年秋季第一學(xué)期初中物理上冊(cè)教研組工作總結(jié)
- 2024年xx鎮(zhèn)交通年度總結(jié)
- 2024-2025年秋季第一學(xué)期小學(xué)語(yǔ)文教師工作總結(jié)
- 2024年XX村陳規(guī)陋習(xí)整治報(bào)告
- 2025年學(xué)校元旦迎新盛典活動(dòng)策劃方案
- 2024年學(xué)校周邊安全隱患自查報(bào)告
- 2024年XX鎮(zhèn)農(nóng)村規(guī)劃管控述職報(bào)告