智能澆花系統(tǒng)設(shè)計(jì)說(shuō)明書(shū) 51單片機(jī) 詳細(xì)C語(yǔ)言代碼
《智能澆花系統(tǒng)設(shè)計(jì)說(shuō)明書(shū) 51單片機(jī) 詳細(xì)C語(yǔ)言代碼》由會(huì)員分享,可在線閱讀,更多相關(guān)《智能澆花系統(tǒng)設(shè)計(jì)說(shuō)明書(shū) 51單片機(jī) 詳細(xì)C語(yǔ)言代碼(51頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 XXXX大學(xué) 畢 業(yè) 設(shè) 計(jì) 論文題目: 智能澆花控制系統(tǒng) 學(xué) 生: 指導(dǎo)教師: 專
2、 業(yè): 電子信息工程〔電氣及其自動(dòng)化〕 班 級(jí): 2021年 5 月 畢 業(yè) 設(shè) 計(jì) 審 閱 評(píng) 語(yǔ) 一、 指導(dǎo)教師評(píng)語(yǔ) 該生在整個(gè)畢業(yè)設(shè)計(jì)過(guò)程中,態(tài)度端正,積極主動(dòng),能根本在每個(gè)階段完成相應(yīng)任務(wù),能按時(shí)上交論文,時(shí)間安排也十分合理。 前期設(shè)計(jì)中出現(xiàn)的問(wèn)題及誤區(qū),老師指點(diǎn)后都細(xì)心更改,每次遇到阻礙都及時(shí)主動(dòng)與老師交流、溝通、討論論文出現(xiàn)的問(wèn)題。 論文完成了任務(wù)書(shū)所規(guī)定的設(shè)計(jì)任務(wù),論文層次結(jié)構(gòu)安排科學(xué),語(yǔ)言表達(dá)流暢準(zhǔn)確,格式符合標(biāo)準(zhǔn)要求,到達(dá)預(yù)期結(jié)果,符合
3、學(xué)士論文辯論的要求,同意該同學(xué)參加畢業(yè)辯論。 是否同意辯論: 同意辯論 √ 不同意辯論 □ 指導(dǎo)教師〔簽名〕 職 稱 2021 年 5 月 22 日 二、評(píng)閱人評(píng)語(yǔ) 是否同意辯論: 同意辯論 □ 不同意辯論 □ 評(píng)閱教師〔簽名〕 職 稱
4、 年 月 日 哈爾濱劍橋?qū)W院 畢 業(yè) 設(shè) 計(jì) 答 辯 評(píng) 語(yǔ) 及 成 績(jī) 三、辯論委員會(huì)評(píng)語(yǔ) 四、畢業(yè)設(shè)計(jì)成績(jī) 簽 字〔蓋章〕: 五、辯論委員會(huì)主任單位: 辯論委員會(huì)主任職稱: 辯論委員會(huì)主任簽字: 年
5、 月 日 畢 業(yè) 設(shè) 計(jì) 任 務(wù) 書(shū) 題目名稱:智能澆花控制系統(tǒng)設(shè)計(jì) 立題意義:隨著科學(xué)的不斷開(kāi)展和人們生活水平的不斷進(jìn)步,人們對(duì)于生活質(zhì)量的要求也越來(lái)越高,花草養(yǎng)殖成為了家庭生活中的一局部,人們養(yǎng)殖花草的目的大多是為了陶冶情操和提高室內(nèi)外的空氣質(zhì)量等等,但由于工作繁忙等原因,不能按時(shí)給花草澆水成為了花卉死亡的主要原因;因此設(shè)計(jì)一款定時(shí)澆花的系統(tǒng)便成為當(dāng)務(wù)之選。 技術(shù)條件與要求: 1. 本產(chǎn)品實(shí)用性強(qiáng)。 2. 主要用于家庭和較小場(chǎng)所。 3. 本系統(tǒng)抗干擾能力強(qiáng),感應(yīng)靈敏、性價(jià)比擬高。 任務(wù)內(nèi)容〔包括內(nèi)容、方案、時(shí)間安排、完成工作量與水平具體要求〕 一、任務(wù)內(nèi)容:
6、 1. 系統(tǒng)的總體設(shè)計(jì)方案。 2. 系統(tǒng)各局部硬件電路設(shè)計(jì)。 3. 系統(tǒng)各局部軟件電路設(shè)計(jì)。 二、方案、時(shí)間安排: 2021年11月26 日~~2021年4 月7日 選題、撰寫(xiě)階段 2021年4月 8 日~~5月12日 中期檢查階段 5月13日~~5月24日 整理、辯論階段 5月25日 畢業(yè)論文〔設(shè)計(jì)〕辯論 三、完成工作量與水平具體要求 按照方案進(jìn)度、指導(dǎo)教師的要求完成預(yù)定的工作量、提高論文的設(shè)計(jì)水平。 專業(yè)負(fù)責(zé)人意見(jiàn): 簽名: 年 月 日 智能澆花控制系統(tǒng)設(shè)計(jì)
7、 摘 要 隨著科學(xué)的不斷開(kāi)展和人們生活水平的不斷進(jìn)步,人們對(duì)于生活質(zhì)量的要求也越來(lái)越高,花草養(yǎng)殖成為了家庭生活中的一局部,人們養(yǎng)殖花草的目的大多是為了陶冶情操和提高室內(nèi)外的空氣質(zhì)量等等,但由于工作繁忙等原因,不能按時(shí)給花草澆水成為了花卉死亡的主要原因。本文利用AT89C51單片機(jī)設(shè)計(jì)了一種自動(dòng)澆花控制系統(tǒng),此系統(tǒng)可為人們解決因工作等原因無(wú)法按時(shí)為花卉澆水的問(wèn)題,以便于花卉茁壯成長(zhǎng)。 本設(shè)計(jì)采用匯編語(yǔ)言進(jìn)行編程,在LED液晶屏上實(shí)現(xiàn)小時(shí),分,秒的顯示;并利用單片機(jī)來(lái)實(shí)現(xiàn)計(jì)時(shí),定時(shí)功能,同時(shí)通過(guò)7個(gè)按鍵開(kāi)關(guān)和3個(gè)指示燈來(lái)實(shí)現(xiàn)參數(shù)設(shè)置和調(diào)節(jié)功能、澆花間隔時(shí)間的設(shè)定、澆水持續(xù)時(shí)間的設(shè)
8、定、單片機(jī)對(duì)電磁閥的自動(dòng)控制。根據(jù)用戶設(shè)定的時(shí)間順利的完成澆花任務(wù)。 關(guān)鍵詞:?jiǎn)纹瑱C(jī);控制;顯示;電磁閥 Intelligent control system for watering the flowers Abstract With the continuous development of science and the people life level of progress , people for the requirements of the life quality is more and more rigoro
9、us , plants breeding become part of the family life. The purposes of people breeding plants are for the edify sentiment and improve the indoor and outdoor air quality and so on. Because of the busy jobs and other factors, the inability to water the flowers and plants become the main cause of death.
10、In this paper, AT89C51 single-chip microcomputer designed a kind of automatic watering the flowers control system. The system can work for people who can not water the flowers on time, so that the flowers can grow strength and healthy. This design uses the assembly languages programming, realizing
11、hours, points, second display on LED; And using single chip computer to realize the timing, timing function, and at the same time through seven button switches and three indicator to achieve parameter setting and adjustment function, the water the flowers of the interval time set, the duration of wa
12、ter with the chip set, solenoid valve to be automatic control. According to users setting time done smoothly the task of watering the flowers. Key words:MCS;control;display;solenoid valve 目 錄 摘要 I Abstract II 1.緒論 1 2. 系統(tǒng)設(shè)計(jì)方案 3 2.1系統(tǒng)工作原理 3 2.2系統(tǒng)方框圖設(shè)計(jì) 3 2.3系統(tǒng)結(jié)構(gòu) 3 2 4 2 4 2 4
13、 2 4 2 4 2 4 2.4系統(tǒng)人機(jī)界面設(shè)計(jì) 5 2.5系統(tǒng)操作步驟 6 3. 關(guān)鍵器件的選型 7 3.1單片機(jī)的選擇 7 3.1.1 AT89C51簡(jiǎn)介 7 3.1.2 AT89C51的主要性能 7 3.1.3 AT89C51的管腳說(shuō)明 8 3.2繼電器的選擇 10 3.3電磁閥的選擇 10 3.4顯示器的選擇 11 4. 硬件電路設(shè)計(jì) 12 4.1單片機(jī)最小系統(tǒng) 12 4.1.1 晶振電路設(shè)計(jì) 12 4.1.2 復(fù)位電路 12 4 13 4.2按鍵電路設(shè)計(jì) 14 4.3數(shù)碼管顯示電路設(shè)計(jì) 15 4.4電磁閥電路設(shè)計(jì) 16 4.5整體電路設(shè)計(jì)
14、17 5. 系統(tǒng)軟件設(shè)計(jì) 18 5.1軟件架構(gòu)設(shè)計(jì) 18 5.2主程序 18 5.2初始化模塊 19 5.3按鍵判別與處理模塊 21 5.4按鍵消抖方法 22 5.5數(shù)碼顯示模塊 23 5.6工作時(shí)間計(jì)算模塊 25 結(jié)論 26 致謝 27 參考文獻(xiàn) 28 附錄 29 智能澆花控制系統(tǒng)設(shè)計(jì) 1. 緒論 近年來(lái),人們的生活水平有了大幅度的提高,然后如何真正提高生活質(zhì)量,如何使生活產(chǎn)生質(zhì)的飛躍成為了大多數(shù)人們思考的問(wèn)題。種植花草是中國(guó)人千百年來(lái)的維持不變的喜好,故多數(shù)人選擇種植花草來(lái)陶冶情操,同時(shí),也把它作為一項(xiàng)業(yè)余的消遣活動(dòng)
15、,但由于人們生活節(jié)奏快和經(jīng)常出差等緣故,不能按時(shí)為花草澆水成為了花草死亡的主要原因。 為了解決按時(shí)為花草澆水的問(wèn)題,人們會(huì)采取在 中存?zhèn)渫浺约白龈鞣N備忘錄等方法,但這些方法始終存在很多缺陷,市場(chǎng)上的智能澆花系統(tǒng)儀器功能繁多但是價(jià)格過(guò)于昂貴,而且對(duì)于普通家庭而言,過(guò)于復(fù)雜的應(yīng)用和多功能是不必要的。 智能澆花系統(tǒng)的出現(xiàn)正可以解決這一問(wèn)題,該系統(tǒng)其主要執(zhí)行裝置是一個(gè)電磁閥門(mén),其一端連接水管,另外一端連接外置的水管作為澆水口,澆水的水量主要由單片機(jī)控制。設(shè)備主要是通過(guò)控制澆水的時(shí)間間隔和澆水的持續(xù)時(shí)間來(lái)控制澆水量的。操作方便簡(jiǎn)便,這樣即實(shí)現(xiàn)了家庭生活的現(xiàn)代化又保證了植物的正常生長(zhǎng)。 近年來(lái)
16、,以電子技術(shù)為代表的新技術(shù)促進(jìn)了電子行業(yè)的飛速增長(zhǎng),也極大地推動(dòng)了智能家電和智能家用設(shè)備的快速開(kāi)展。國(guó)外的智能家用設(shè)備市場(chǎng)儼然已經(jīng)做大做強(qiáng),鑒于中國(guó)在全球制造鏈和設(shè)計(jì)鏈的重要地位,使得這里成為全球各大生產(chǎn)智能家用設(shè)備廠商逐鹿的大戰(zhàn)場(chǎng),同時(shí),也帶動(dòng)了中國(guó)外鄉(xiāng)智能家用設(shè)備儀器研發(fā)與測(cè)試技術(shù)應(yīng)用的迅速開(kāi)展。智能澆花控制系統(tǒng)自然也包括在其中,近些年來(lái),國(guó)內(nèi)外出現(xiàn)了許多種智能澆花控制系統(tǒng),其功能與控制原理也存在著許多的不同,但根本目的均為方便人們的日常生活和保證花草的正常生長(zhǎng)。 眾所周知,在二十世紀(jì),人類跨越了三個(gè)“電〞的時(shí)代,即電氣時(shí)代、電子時(shí)代和電腦時(shí)代。但這種電腦,通常指?jìng)€(gè)人計(jì)算機(jī),也就是我們平
17、時(shí)所說(shuō)的PC機(jī)。它由主機(jī)、顯示器、鍵盤(pán)等組成。除此之外還有一類計(jì)算機(jī),大多數(shù)人很不熟悉。這種計(jì)算機(jī)就是把智能賦予給各種機(jī)械的單片機(jī)〔微控制器〕。這種計(jì)算機(jī)最小的系統(tǒng)只用一片集成電路,就能進(jìn)行簡(jiǎn)單運(yùn)算和控制。因?yàn)槠潴w積小,通常都被放在被控機(jī)械的“肚子〞里。在整個(gè)裝置中,他的作用有如人類頭腦,假設(shè)它出了毛病,整個(gè)裝置也就癱瘓了?,F(xiàn)如今,這種單片機(jī)的使用領(lǐng)域已開(kāi)展的十分廣泛,如智能儀表、導(dǎo)航系統(tǒng)、實(shí)時(shí)工控、通訊設(shè)備、家用電器等。各種家用產(chǎn)品用上了單片機(jī)以后,便能起到令產(chǎn)品換代升級(jí)的成效,通常都會(huì)在產(chǎn)品名稱前加上形容詞——“智能型〞,例如智能型洗衣機(jī)等等。 而花卉養(yǎng)殖作為大多數(shù)人生活中的一局部,
18、卻常常因?yàn)槿藗児ぷ鞯仍虮缓雎?,智能澆花控制系統(tǒng)可為人們解決這一問(wèn)題,與此同時(shí),智能澆花控制系統(tǒng)假設(shè)能走進(jìn)家庭,也是人們生活進(jìn)入智能化的標(biāo)志之一。 2. 系統(tǒng)設(shè)計(jì)方案 2.1系統(tǒng)工作原理 智能澆花控制系統(tǒng)的設(shè)計(jì),其主要執(zhí)行裝置是一個(gè)電磁閥門(mén),其一端連接水管,另外一端連接外置的水管作為澆水口,澆水的水量主要由單片機(jī)控制。設(shè)備主要是通過(guò)控制澆水的時(shí)間間隔和澆水的持續(xù)時(shí)間來(lái)控制澆水量的[1]。 2.2系統(tǒng)方框圖設(shè)計(jì) 系統(tǒng)主要是由單片機(jī)、電源、按鍵、顯示、指示燈、復(fù)位電路、電磁閥模塊等組成。方框圖如圖2-1所示:
19、復(fù)位電路模塊 電磁閥模塊 顯示模塊 指示燈模塊 單片機(jī)模塊 按鍵模塊 電源模塊 圖2-1 系統(tǒng)方框圖 2.3系統(tǒng)結(jié)構(gòu) 整個(gè)自動(dòng)澆花設(shè)備的結(jié)構(gòu)可以分為5大局部:中央處理單元(CPU),LED顯示局部,電磁閥局部,按鍵局部,指示燈局部等。 2單片機(jī)模塊 單片機(jī)模塊對(duì)整個(gè)系統(tǒng)進(jìn)行控制,實(shí)現(xiàn)以下功能: (1) 控制顯示模塊顯示工作參數(shù); (2) 根據(jù)按鍵的輸入做出正確的計(jì)算,并傳輸?shù)斤@示器件上實(shí)現(xiàn)時(shí)間的調(diào)整設(shè)置; (3) 控制LED的點(diǎn)亮和熄滅; (4) 實(shí)現(xiàn)電磁閥的控制。 2顯示模塊 數(shù)碼顯示模塊能夠?qū)⑿枰臅r(shí)間參數(shù)顯示出來(lái),提供了系統(tǒng)和操作者的交流窗口
20、,是人機(jī)界面的重要組成局部之一。 2電磁閥模塊 電磁閥是本設(shè)備的執(zhí)行設(shè)備,系統(tǒng)通過(guò)電磁閥控制水的流通和截止,實(shí)現(xiàn)了電能到機(jī)械能的轉(zhuǎn)換。 2按鍵模塊 按鍵是人機(jī)界面的另一個(gè)重要組成局部,它是最主要的輸入設(shè)備。用戶通過(guò)按鍵將自己的要求告知單片機(jī),單片機(jī)根據(jù)用戶的設(shè)置進(jìn)行相應(yīng)的操作。 2指示燈模塊 指示燈是數(shù)碼顯示模塊以外的另一輸出設(shè)備,在數(shù)碼管的根底上起到輔助作用。 2復(fù)位電路模塊 復(fù)位模塊主要功能為在上電的一瞬間,電壓不是直接跳變到單片機(jī)可工作的電壓范圍。并且在外部輸入電壓較低的時(shí)候〔電壓在臨界范圍〕,這個(gè)時(shí)候單片機(jī)可能工作也可能不工作,故而會(huì)引起芯片內(nèi)程序道德無(wú)序執(zhí)行,復(fù)位電路
21、需要確保在上電的時(shí)候暫時(shí)不讓單片機(jī)立刻進(jìn)入工作狀態(tài),即上電延時(shí)狀態(tài)。 2.4系統(tǒng)人機(jī)界面設(shè)計(jì) 操作界面如圖2-2所示,主要由2位數(shù)碼管、7個(gè)按鍵和3個(gè)發(fā)光二級(jí)管組成。圖中各局部介紹如下: 數(shù)碼管:用于顯示工作持續(xù)時(shí)間和時(shí)間間隔,配合按鍵完成各項(xiàng)參數(shù)的設(shè)置。 LED1:電源指示燈,當(dāng)通電以后就亮起,說(shuō)明系統(tǒng)已經(jīng)開(kāi)始工作。 LED2和LED3:參數(shù)指示燈。當(dāng)LED2亮起以后,說(shuō)明目前數(shù)碼管上顯示的是工作間隔時(shí)間,可以通過(guò)按鍵對(duì)其設(shè)置。當(dāng)LED3亮起時(shí),說(shuō)明目前顯示的是工作持續(xù)時(shí)間。 ON/OFF :電源開(kāi)關(guān),按下后電源指示燈LED1點(diǎn)亮,系統(tǒng)開(kāi)始工作。 RESET:系統(tǒng)復(fù)位。當(dāng)遇到意
22、外情況系統(tǒng)出現(xiàn)死機(jī),可通過(guò)此按鍵恢復(fù)正常工作。 SWITCH:用于切換工作間隔時(shí)間和工作持續(xù)時(shí)間,按下以后LED2和LED3將依次點(diǎn)亮。 UP和DOWN:增加和減少數(shù)碼管所顯示數(shù)字的值。 OK:確定鍵,當(dāng)用戶使用UP和DOWN鍵設(shè)置好時(shí)間以后,按下OK鍵進(jìn)行保存和應(yīng)用。 CLEAR:清零鍵,可通過(guò)此按鍵將當(dāng)前數(shù)碼管示數(shù)快速清零,重新進(jìn)行設(shè)置。 ON/OFF RESET OK DOWN UP CLEAR SWITCH LED1 LED2 LED3 圖2-2 操作人機(jī)界面 2.5系統(tǒng)操作步驟 (1) 將入水管連接到自來(lái)水龍頭和電磁閥之間,用出水管連接電磁閥和花
23、盆,這個(gè)過(guò)程中注意水管的密封性,也不要讓水濺到電路板上。 (2) 將控制系統(tǒng)通電,按下電源開(kāi)關(guān)ON/OFF,LED1亮,表示一切正常。 (3) 按下SWITCH鍵,LED2點(diǎn)亮,通過(guò)UP和DOWN設(shè)置工作間隔時(shí)間。按下CLEAR可清零。 (4) 按下SWITCH鍵,LED2熄滅,LED3點(diǎn)亮,通過(guò)UP和DOWN設(shè)置工作持續(xù)時(shí)間,按下CLEAR可清零。 (5) 按下OK鍵,LED3熄滅,系統(tǒng)按照設(shè)定的參數(shù)開(kāi)始工作。 3. 關(guān)鍵器件的選型 3.1單片機(jī)的選擇 AT89C51單片機(jī)是Atmel公司推出的一款產(chǎn)品,一般小芯片的價(jià)格都比擬低,同樣AT89C51作為一款小芯片產(chǎn)品其價(jià)格相
24、對(duì)而言較為廉價(jià),并且其與MCS-51系列兼容行很好,所以本系統(tǒng)決定采用AT89C51作為芯片[2]。 3簡(jiǎn)介 AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器〔FPEROM—Flash Programmable and Erasable Read Only Memory〕的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,AT
25、MEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C5x單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案[3]。 3的主要性能 (1)與MCS-51 兼容; (2)4K字節(jié)可編程FLASH存儲(chǔ)器; (3)壽命:1000寫(xiě)/擦循環(huán); (4)數(shù)據(jù)保存時(shí)間:10年; (5)全靜態(tài)工作:0Hz-24MHz; (6)三級(jí)程序存儲(chǔ)器鎖定; (7)128×8位內(nèi)部RAM; (8)32可編程I/O線; (9)兩個(gè)16位定時(shí)器/計(jì)數(shù)器; (10)5個(gè)中斷源; (11)可編程串行通道; (12)低功耗的閑置和掉電模式; (13)片內(nèi)振蕩器和
26、時(shí)鐘電路。 3的管腳說(shuō)明 AT89C51的引腳圖如圖3-1所示。 圖3-1 AT89C51的引腳圖 VCC:供電電壓。 GND:接地。 P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。當(dāng)P0口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的低八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須接上拉電阻。 P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門(mén)電流。P1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸
27、入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為低八位地址接收。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)“1〞時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1〞時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能存放器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地
28、址信號(hào)和控制信號(hào)[4]。 P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門(mén)電流。當(dāng)P3口寫(xiě)入“1〞后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流〔ILL〕,這是由于上拉的緣故。 P3口也可作為AT89C51的一些特殊功能口,如下表所示: 表3-2 P3管腳第二功能表 P3口管腳 備選功能 RXD〔串行輸入口〕 TXD〔串行輸出口〕 INT0〔外部中斷0〕 INT1〔外部中斷1〕 T0〔計(jì)時(shí)器0外部輸入〕 T1〔計(jì)時(shí)器1外部輸入〕 /WR〔外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通〕
29、 /RD〔外部數(shù)據(jù)存儲(chǔ)器讀選通〕 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)A
30、LE禁止,置位無(wú)效。 /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。 /EA/VPP:當(dāng)/EA保持低電平時(shí),那么在此期間外部程序存儲(chǔ)器〔0000H-FFFFH〕,不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源〔VPP〕。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 XTAL2:來(lái)自反向振蕩器的輸出。 3.2繼電器
31、的選擇 繼電器是一種電控制器件。它具有控制系統(tǒng)〔又稱輸入回路〕和被控制系統(tǒng)〔又稱輸出回路〕之間的互動(dòng)關(guān)系。通常應(yīng)用于自動(dòng)化的控制電路中,它實(shí)際上是用小電流去控制大電流運(yùn)作的一種“自動(dòng)開(kāi)關(guān)〞。故在電路中起著自動(dòng)調(diào)節(jié)、平安保護(hù)、轉(zhuǎn)換電路等作用。本次設(shè)計(jì)過(guò)程中需要一個(gè)繼電器來(lái)控制電磁閥的工作。由于需要工作電壓在5V左右。所以選擇了型號(hào)為JZC-36F的繼電器,其工作電壓在4V~45V之間[5]。 3.3電磁閥的選擇 閥門(mén)是在流體系統(tǒng)中,用來(lái)控制流體的方向、壓力、流量的裝置。閥門(mén)是使配管和設(shè)備內(nèi)的介質(zhì)〔液體、氣體、粉末〕流動(dòng)或停止并能控制其流量的裝置。閥門(mén)是管路流體輸送系統(tǒng)中控制部件,它是用來(lái)改
32、變通路斷面和介質(zhì)流動(dòng)方向,具有導(dǎo)流、截止、節(jié)流、止回、分流或溢流卸壓等功能。用于流體控制的閥門(mén),從最簡(jiǎn)單的截止閥到極為復(fù)雜的自控系統(tǒng)中所用的各種閥門(mén),其品種和規(guī)格相當(dāng)繁多。由于本設(shè)備采用單片機(jī)控制,并且電磁閥是由開(kāi)關(guān)信號(hào)控制的,與單片機(jī)控制電路連接十分的方便,所以決定采用電磁閥作為閥門(mén)[6]。 電磁閥從原理上分為三大類: (1) 直動(dòng)式電磁閥: 原理:通電時(shí),電磁線圈產(chǎn)生電磁力把關(guān)閉件從閥座上提起,閥門(mén)翻開(kāi);斷電時(shí),電磁力消失,彈簧把關(guān)閉件壓在閥座上,閥門(mén)關(guān)閉。 特點(diǎn):在真空、負(fù)壓、零壓時(shí)能正常工作,但通徑一般不超過(guò)25mm。 (2) 分步直動(dòng)式電磁閥: 原理:它是一
33、種直動(dòng)和先導(dǎo)式相結(jié)合的原理,當(dāng)入口與出口沒(méi)有壓差時(shí),通電后,電磁力直接把先導(dǎo)小閥和主閥關(guān)閉件依次向上提起,閥門(mén)翻開(kāi)。當(dāng)入口與出口到達(dá)啟動(dòng)壓差時(shí),通電后,電磁力先導(dǎo)小閥,主閥下腔壓力上升,上腔壓力下降,從而利用壓差把主閥向上推開(kāi);斷電時(shí),先導(dǎo)閥利用彈簧力或介質(zhì)壓力推動(dòng)關(guān)閉件,向下移動(dòng),使閥門(mén)關(guān)閉。 特點(diǎn):在零壓差或真空、高壓時(shí)亦可動(dòng)作,但功率較大,要求必須水平安裝。 (3) 先導(dǎo)式電磁閥: 原理:通電時(shí),電磁力把先導(dǎo)孔翻開(kāi),上腔室壓力迅速下降,在關(guān)閉件周圍形成上低下高的壓差,流體壓力推動(dòng)關(guān)閉件向上移動(dòng),閥門(mén)翻開(kāi);斷電時(shí),彈簧力把先導(dǎo)孔關(guān)閉,入口壓力通過(guò)旁通孔迅速腔室在關(guān)閥件周圍形成下
34、低上高的壓差,流體壓力推動(dòng)關(guān)閉件向下移動(dòng),關(guān)閉閥門(mén)。 特點(diǎn):流體壓力范圍上限較高,可任意安裝〔需定制〕但必須滿足流體壓差條件。 由于直動(dòng)式電磁閥結(jié)構(gòu)較為簡(jiǎn)單,動(dòng)作可靠,而且設(shè)備需要在斷電條件下鐵芯始終保持在關(guān)閉狀態(tài),所以選用常閉型的直動(dòng)式電磁閥。具體為YCSM31系列的二位二通直動(dòng)式電磁閥〔常閉型〕。 3.4顯示器的選擇 在顯示器的選擇上,雖然LED數(shù)碼管消耗電力比液晶顯示器多一點(diǎn),但是LED數(shù)碼管顯示更加清晰,更加適合在白天等強(qiáng)光條件下顯示。液晶顯示極其省電,但是使用有溫度范圍限制,且因是反光式的,在外界光線很明亮的情況下很容易看不清楚。 另外,LED數(shù)碼管的價(jià)格與液晶顯示器相
35、比擬為低廉,故本次設(shè)計(jì)采用LED數(shù)碼管[7]。 4. 硬件電路設(shè)計(jì) 4.1單片機(jī)最小系統(tǒng) 4晶振電路設(shè)計(jì) AT89C51單片機(jī)芯片內(nèi)部設(shè)有一個(gè)反相放大器所構(gòu)成的振蕩器,XTAL1和XTAL2分別為振蕩電路的輸入端和輸出端。在XTAL1和XTAL2引腳上外接定時(shí)元件,內(nèi)部振蕩電路就產(chǎn)生自激振蕩。定時(shí)元件常常是用石英晶體和電容組成的并聯(lián)諧振回路。系統(tǒng)選擇了12MHz的晶振片,兩個(gè)30pF的電容C7和C8。晶振電路如圖4-1所示。 圖4-1 晶振電路 4復(fù)位電路 本設(shè)計(jì)采用的按鍵復(fù)位電路,當(dāng)要系統(tǒng)自動(dòng)復(fù)位時(shí),只需要按住S7按鍵,此時(shí)電源Vcc經(jīng)過(guò)
36、電阻R1、R2分壓,并且在RST端產(chǎn)生一個(gè)復(fù)位的高電平。同樣,只要保證RST端保持高電壓的時(shí)間大于兩個(gè)機(jī)器周期時(shí),系統(tǒng)自動(dòng)能實(shí)現(xiàn)正常復(fù)位。復(fù)位電路如圖4-2所示: 圖4-2 AT89C51單片機(jī)的復(fù)位電路 4單片機(jī)最小系統(tǒng)電路設(shè)計(jì) 單片機(jī)最小系統(tǒng)設(shè)計(jì)電路如圖4-3所示: 圖4-3單片機(jī)最小系統(tǒng) [8]。 4.2按鍵電路設(shè)計(jì) 系統(tǒng)采用非編碼鍵盤(pán),按鍵電路主要由5個(gè)按鍵S1~S5組成,采用獨(dú)立式的按鍵形式。各按鍵的功能見(jiàn)表4-4: 表4-4 按鍵功能對(duì)照表 按鍵編號(hào) 功能 連接端口 S1 SWITCH S2 UP S3 DOWN S4 CL
37、EAR S5 OK 按鍵電路如圖4-5所示,按照?qǐng)D中的電路連接方法,判斷是否有鍵按下的方法是:查詢每一根接按鍵的I/O口線的輸入電平,如果是低電平那么說(shuō)明這個(gè)接口線連接的按鍵處于按下?tīng)顟B(tài)。相反,假設(shè)為高電平那么說(shuō)明按鍵處于非按下?tīng)顟B(tài)。 圖4-5 按鍵電路 4.3數(shù)碼管顯示電路設(shè)計(jì) 系統(tǒng)采用兩個(gè)七段發(fā)光數(shù)碼顯示器HS-3461BS2,HS-3461BS2它是共陽(yáng)極的數(shù)碼顯示器。 處于工作狀態(tài)的數(shù)碼管,其顯示情況由單片機(jī)的P0.0~P0.6七個(gè)接線口決定,其七個(gè)口分別連接著數(shù)碼管的七個(gè)筆畫(huà)。例如要在數(shù)碼管DS1中顯示1,而數(shù)碼管DS2處于非工作狀態(tài),那么需要將P2.6接
38、線口置為1,P2.5接線口置為0,并且使P0.1和P0.2接線口置為1,而P0.0,P0.3~P0.6接線口置為0。 字形段碼表如表4-6所示: 表4-6 數(shù)碼管段碼表 顯示字符 共陰極字型碼 五班 0 3FH C0H 1 06H F9H 2 5BH A4H 3 4FH B0H 4 66H 99H 5 6DH 92H 6 7DH 82H 7 07H F8H 8 7FH 80H 9 6FH 90H 根據(jù)上面的7段字形碼表可以進(jìn)行編碼,從而控制數(shù)碼管的顯示。LED顯示電路如圖4-7所示 圖4-7數(shù)碼管顯示
39、電路 4.4電磁閥電路設(shè)計(jì) 如下列圖所示Q3為一個(gè)PNP三極管,D1為普通二極管,K1為JZC-36F繼電器,M電動(dòng)機(jī)符號(hào)來(lái)表示電磁閥。 在繼電器失電的狀態(tài)下,動(dòng)合觸點(diǎn)斷開(kāi),動(dòng)斷觸點(diǎn)閉合,當(dāng)繼電器得電后,動(dòng)合觸點(diǎn)閉合,動(dòng)斷觸點(diǎn)斷開(kāi),利用繼電器的觸電開(kāi)關(guān)作用可以控制設(shè)備或者傳送邏輯電平信號(hào)。 動(dòng)合觸點(diǎn)是指繼電器(或功能電器)中有預(yù)定鼓勵(lì)時(shí)閉合,無(wú)鼓勵(lì)時(shí)斷開(kāi)的觸點(diǎn),而動(dòng)斷觸點(diǎn)那么是繼電器(或功能電器)中有規(guī)定的鼓勵(lì)時(shí)斷開(kāi),無(wú)規(guī)定的鼓勵(lì)時(shí)閉合的觸點(diǎn)。在本次系統(tǒng)設(shè)計(jì)中選用了動(dòng)合觸電開(kāi)關(guān),使繼電器在失電狀態(tài)下保持?jǐn)嚅_(kāi)的狀態(tài),然而在得電的狀態(tài)下保持閉合狀態(tài)。即當(dāng)Q3基極得到一個(gè)低電平那么繼電器開(kāi)關(guān)
40、立即閉合,在處于高電平時(shí)繼電器開(kāi)關(guān)保持?jǐn)嚅_(kāi)狀態(tài)[9]。 當(dāng)繼電器的開(kāi)關(guān)閉合時(shí),電磁閥那么處于一個(gè)通路的狀態(tài)下,進(jìn)而電磁閥開(kāi)始工作,系統(tǒng)設(shè)備開(kāi)始澆水。相反,當(dāng)繼電器的開(kāi)關(guān)斷開(kāi)時(shí),電磁閥處于一個(gè)斷路的狀態(tài)下,那么電磁閥不工作,從而系統(tǒng)設(shè)備也不工作。電磁閥電路如圖4-8所示。 圖4-8 電磁閥電路 4.5整體電路設(shè)計(jì) 總電路主要由:晶振電路,復(fù)位電路,按鍵設(shè)置電路, LED顯示電路,電磁閥電路,以及電源電路等幾個(gè)局部。通過(guò)這幾個(gè)分電路的分工合作,能夠使得系統(tǒng)具有顯示功能,并且具備鍵盤(pán)調(diào)整功能,同時(shí)能夠?qū)﹄姶砰y進(jìn)行有效的控制。從而使設(shè)備順利的進(jìn)行工作。整體電路圖見(jiàn)附錄1。 5. 系統(tǒng)軟
41、件設(shè)計(jì) 5.1軟件架構(gòu)設(shè)計(jì) 在編寫(xiě)程序代碼之前,必須先對(duì)系統(tǒng)通盤(pán)考慮,事先設(shè)計(jì)好系統(tǒng)的軟件架構(gòu)。 軟件架構(gòu)是指在一定的設(shè)計(jì)原那么根底上,從不同角度對(duì)組成系統(tǒng)的各局部進(jìn)行搭配和安排,形成系統(tǒng)的多個(gè)結(jié)構(gòu)而組成架構(gòu),它包括該系統(tǒng)的各個(gè)組件,組件的外部可見(jiàn)屬性及組件之間的相互關(guān)系。 對(duì)本系統(tǒng)而言,就是要設(shè)計(jì)好每一個(gè)功能最合理的實(shí)現(xiàn)方法,不要等到代碼寫(xiě)到一半才發(fā)現(xiàn)某個(gè)功能難以實(shí)現(xiàn),導(dǎo)致全部重寫(xiě)或是迫不得已采用有隱患的的實(shí)現(xiàn)方法。 一般而言,軟件架構(gòu)設(shè)計(jì)要到達(dá)如下的目標(biāo):可靠性〔Reliable〕、平安性〔Secure〕、可擴(kuò)展性〔SCAlable〕、可定制化〔CuSTomizable〕、可
42、擴(kuò)展性〔Extensible〕和可維護(hù)性〔MAIntainable〕等[10]。 在本系統(tǒng)中,主要的局部有按鍵處理、數(shù)碼管的動(dòng)態(tài)顯示和工作時(shí)間的計(jì)算。這三個(gè)任務(wù)都是必須連續(xù)工作的。如果按鍵處理相關(guān)程序暫停運(yùn)行,用戶按下按鍵時(shí)就沒(méi)有反響;如果數(shù)碼管相關(guān)的程序暫停運(yùn)行,顯示的數(shù)字就會(huì)出現(xiàn)異常。 為了實(shí)現(xiàn)系統(tǒng)軟件架構(gòu)要求的目標(biāo)〔主要是可靠性、可擴(kuò)展性和可維護(hù)性〕,采用了這樣的軟件結(jié)構(gòu):在主程序中讀取按鍵輸入以及進(jìn)行相應(yīng)按鍵的處理;用定時(shí)器TIMER0定時(shí)出發(fā)中斷,在定時(shí)器的終端效勞程序中進(jìn)行數(shù)碼管的動(dòng)態(tài)掃描顯示;另一個(gè)定時(shí)器TIMER1用來(lái)計(jì)算工作間隔時(shí)間和工作持續(xù)時(shí)間。 5.主程序 主程序
43、指的是單片機(jī)上電以后就開(kāi)始運(yùn)行的程序,與中斷效勞程序相區(qū)分。 主程序進(jìn)行了兩個(gè)操作,首先對(duì)系統(tǒng)進(jìn)行初始化設(shè)置,然后進(jìn)入一個(gè)循環(huán)結(jié)構(gòu),掃描按鍵是否被按下,當(dāng)有鍵按下以后就執(zhí)行相應(yīng)的按鍵處理程序[11]。流程圖見(jiàn)圖5-1。 單片機(jī)復(fù)位以后〔無(wú)論上電復(fù)位還是按鍵復(fù)位〕將從程序存儲(chǔ)器的0000H地址開(kāi)始運(yùn)行程序。在這里必須寫(xiě)一條跳轉(zhuǎn)指令,引導(dǎo)程序跳轉(zhuǎn)到主程序的起始地址。 為了使程序更清晰,提高可讀性,采用了模塊化的思想來(lái)指導(dǎo)程序的編寫(xiě)。也就是將各功能封裝成子程序,在使用時(shí)直接調(diào)用。 在主程序中調(diào)用了兩個(gè)子程序,分別是初始化子程序和按鍵判別與處理子程序,在接下來(lái)的幾節(jié)中將會(huì)依次介紹。 圖5-1
44、 主程序流程圖 程序開(kāi)始 初始化 按鍵判別與處理 程序結(jié)束 5.2初始化模塊 在本系統(tǒng)中,初始化的操作要實(shí)現(xiàn)兩個(gè)目標(biāo),一是對(duì)單片機(jī)本身的特殊功能存放器〔ISR〕進(jìn)行賦值,是單片機(jī)內(nèi)部集成的各功能正常工作,比方定時(shí)器;二是對(duì)單片機(jī)外圍的輸出設(shè)備的狀態(tài)進(jìn)行設(shè)置,防止出現(xiàn)不希望的輸出,比方電磁閥控制的水管。 單片機(jī)內(nèi)部的設(shè)置主要集中在定時(shí)器相關(guān)的存放器。將定時(shí)器0設(shè)為10ms溢出一次,用于數(shù)碼管的動(dòng)態(tài)顯示;定時(shí)器1也設(shè)為10ms溢出一次,通過(guò)軟件計(jì)100個(gè)數(shù)實(shí)現(xiàn)1秒的定時(shí)時(shí)間[12]。 外部設(shè)備方面,電磁閥驅(qū)動(dòng)端口P2.7需要設(shè)為高電平,讓電磁閥不通電,保持關(guān)閉狀態(tài);LED2驅(qū)動(dòng)
45、端口P2.0設(shè)為高電平,讓其點(diǎn)亮;LED3驅(qū)動(dòng)端口P2.1要設(shè)為低電平,讓它不亮;數(shù)碼管段碼選擇端口P0設(shè)為0C0H,讓其顯示“00〞,稍后將由定時(shí)器0中斷控制它顯示正確的數(shù)字;按鍵輸入端口P1.1~P1.2均設(shè)為高電平,否那么將無(wú)法正確讀取按鍵狀態(tài)。初始化子程序見(jiàn)附錄二。初始化子程序流程圖見(jiàn)5-2。 圖5-2 初始化子程序流程圖 程序開(kāi)始 配置定時(shí)器0存放器 配置定時(shí)器1存放器 輸入端口設(shè)為高電平 設(shè)置LED2亮 LED3滅 數(shù)碼管顯示“00〞 設(shè)置電磁閥關(guān)閉 程序結(jié)束 5.3按鍵判別與處理模塊 P1.1=0? P1.2=0? P1.3=0?
46、 P1.5=0? P1.4=0? 程序開(kāi)始 讀取P1 消抖處理 程序結(jié)束 切換顯示 當(dāng)前數(shù)加1 當(dāng)前數(shù)減1 當(dāng)前數(shù)=0 保存數(shù)值 Y Y Y Y Y N N N N N 圖5-3 按鍵判別處理子程序流程圖 上圖5-3按鍵判別處理子程序流程圖在這個(gè)子程序內(nèi),首先讀取P1口的輸入狀態(tài),經(jīng)過(guò)消抖處理以后依次判斷P1.1~P1.5的電平是否由1變?yōu)?,哪一位變?yōu)?了,就說(shuō)明其對(duì)應(yīng)的按鍵已經(jīng)被按下,可以跳轉(zhuǎn)到相應(yīng)的按鍵處理程序。 按鍵具體的操作連鎖關(guān)系如下[12]: 1.當(dāng)指示燈LED2亮,數(shù)碼管1選中時(shí),經(jīng)過(guò)“UP〞,“DOWN〞調(diào)節(jié)按鍵調(diào)節(jié)
47、過(guò)的顯示數(shù)字存儲(chǔ)與(41)H,其相應(yīng)的P0值存儲(chǔ)與〔40〕H。 2.當(dāng)指示燈LED2亮起,數(shù)碼管2選中時(shí),經(jīng)過(guò)“UP〞,“DOWN〞調(diào)節(jié)按鍵調(diào)節(jié)過(guò)的顯示數(shù)字存儲(chǔ)與(61)H,其相應(yīng)的P0值存儲(chǔ)與〔61〕H。 3.當(dāng)指示燈LED3亮起,數(shù)碼管1選中時(shí),經(jīng)過(guò)“UP〞,“DOWN〞調(diào)節(jié)按鍵調(diào)節(jié)過(guò)的顯示數(shù)字存儲(chǔ)與(51)H,其相應(yīng)的P0值存儲(chǔ)與〔51〕H。 4.當(dāng)指示燈LED3亮起,數(shù)碼管2選中時(shí),經(jīng)過(guò)“UP〞,“DOWN〞調(diào)節(jié)按鍵調(diào)節(jié)過(guò)的顯示數(shù)字存儲(chǔ)與(71)H,其相應(yīng)的P0值存儲(chǔ)與〔71〕H。 5.4按鍵消抖方法 為了確保CPU對(duì)一次按鍵動(dòng)作只確定一次,系統(tǒng)采用軟件消除抖動(dòng)的方法。具體為
48、:假設(shè)CPU檢測(cè)到有鍵按下時(shí),先執(zhí)行一段延時(shí)程序后再檢測(cè)此按鍵,假設(shè)仍為按下?tīng)顟B(tài),那么CPU認(rèn)為此按鍵確實(shí)按下。同樣,在鍵從按下到再次松開(kāi)時(shí),假設(shè)CPU檢測(cè)到有鍵松開(kāi),并在延時(shí)一段時(shí)間后仍檢測(cè)到鍵在松開(kāi)狀態(tài),那么認(rèn)為此鍵確實(shí)松開(kāi)了[13]。消抖流程圖如圖5-4所示。 主程序開(kāi)始 讀鍵盤(pán) 有鍵按下否? 用延時(shí)程序 確定鍵是否按下 鍵按下是否有效? 按鍵處理 初始化 N N Y Y 圖5-4 按鍵消抖方法流程圖 5.5數(shù)碼顯示模塊 數(shù)碼管顯示程序是基于定時(shí)器
49、0的中斷功能實(shí)現(xiàn)的。定時(shí)器溢出時(shí)間是10ms,每次溢出中斷選中一位數(shù)字,下一次中斷再選中另一位數(shù)字。有研究證實(shí),當(dāng)圖畫(huà)變換速度大于每秒24幀以后,人眼就看不出閃爍[14]。按照剛剛的計(jì)算,數(shù)碼管刷新的速度是每秒50幀,大大超過(guò)24幀的最低限度,所以肉眼看不出掃描時(shí)的閃爍。 在用按鍵修改工作參數(shù)后,將參數(shù)存入一個(gè)指定的內(nèi)存地址單元,在定時(shí)器0中斷中,讀取這個(gè)單元內(nèi)的數(shù)據(jù)并顯示出來(lái)。 程序開(kāi)始 i=0? 選中十位 i=1 P 0輸出 十位數(shù)碼 i=0 P0輸出 個(gè)位斷碼 選中個(gè)位 程序結(jié)束 N Y 圖5-5 數(shù)碼管顯示程序〔定時(shí)器0中斷效勞程序〕流程圖
50、5.6工作時(shí)間計(jì)算模塊 工作間隔時(shí)間的計(jì)算是基于定時(shí)器1的中斷功能實(shí)現(xiàn)的。定時(shí)器1的溢出時(shí)間為10ms,當(dāng)溢出100次以后,即為1秒。每次計(jì)數(shù)到達(dá)一秒,就將預(yù)存的工作間隔時(shí)間減去1秒,當(dāng)工作間隔時(shí)間減到0時(shí),說(shuō)明已經(jīng)到了澆花時(shí)間,開(kāi)啟繼電器,讓水流通[15]。 圖5-6 工作時(shí)間計(jì)算程序〔定時(shí)器1中斷效勞程序〕流程圖 程序開(kāi)始 i=i+1 i>=100? i=0 間隔時(shí)間 減1秒 間隔時(shí)間=0? 開(kāi)始澆花 程序結(jié)束 N N Y Y 結(jié)論 本次畢業(yè)論文所設(shè)計(jì)的智能澆花控制系統(tǒng)的主要特點(diǎn)為系統(tǒng)的兩大功能,即定時(shí)澆花和定量澆花,系統(tǒng)的主要控制
51、器件為AT89C51單片機(jī)、繼電器、電磁閥以及LED數(shù)碼管,通過(guò)軟硬件的共同控制,完成澆水過(guò)程。 通過(guò)本次畢業(yè)設(shè)計(jì),讓我進(jìn)一步了解了微電腦控制的智能系統(tǒng),更扎實(shí)關(guān)于單片機(jī)AT89C51的相關(guān)知識(shí)。也使我真正接觸到了檢測(cè)控制系統(tǒng)的設(shè)計(jì),讓我了解到設(shè)計(jì)中不僅要考慮到技術(shù)方面的問(wèn)題,還有實(shí)用性、實(shí)際操作性等很多細(xì)節(jié)需要注意。 通過(guò)對(duì)智能澆花系統(tǒng)的設(shè)計(jì),我擺脫了單純的理論知識(shí)學(xué)習(xí)狀態(tài),理論和實(shí)際的結(jié)合鍛煉了我綜合運(yùn)用所學(xué)的專業(yè)根底知識(shí)來(lái)解決實(shí)際工程問(wèn)題的能力,同時(shí)也提高我查閱文獻(xiàn)資料、設(shè)計(jì)手冊(cè)以及電腦制圖等專業(yè)能力水平,而且通過(guò)對(duì)整體的掌控,對(duì)局部的取舍,以及對(duì)細(xì)節(jié)的斟酌處理,都使我的能力得到了鍛
52、煉。 在我的設(shè)計(jì)中也許還有好多缺乏的地方,但是正是這些缺乏才給了我們研究單片機(jī)的巨大動(dòng)力,只有發(fā)現(xiàn)問(wèn)題,面對(duì)問(wèn)題,才有可能解決問(wèn)題,缺乏和遺憾不會(huì)給我打擊只會(huì)更好的鞭策我前行,今后我會(huì)更加關(guān)注這些新技術(shù)新設(shè)備,并爭(zhēng)取盡快的掌握這些先進(jìn)的技術(shù)知識(shí),更好的為自己努力,為自己奮斗。 致 謝 通過(guò)這一階段的努力,我的畢業(yè)論文終于完成了。論文的順利完成,我要由衷地感謝翟淑霞老師。在整個(gè)設(shè)計(jì)期間,翟老師傾注了大量的時(shí)間和精力,從論文選題、開(kāi)展調(diào)研到論文的軟硬件設(shè)計(jì)階段一直給予指導(dǎo)與啟發(fā),并為我提供了許多有用的想法和設(shè)計(jì)思路,在我寫(xiě)作論文的過(guò)程中,翟老師給我提供了
53、許多資料,并對(duì)電路設(shè)計(jì)中出現(xiàn)的問(wèn)題給予耐心解答,完稿之后在百忙之中仔細(xì)閱讀,給出修改意見(jiàn),在此對(duì)她表示感謝。與此同時(shí),還要感謝身邊的同學(xué)們對(duì)我的幫助,在我寫(xiě)本論文的過(guò)程中,他們給予我大量的指導(dǎo)和建議,對(duì)我不解的地方進(jìn)行耐心的講解,我才能順利的完成論文的寫(xiě)作。 參考文獻(xiàn) [1] ——入門(mén)、提高、開(kāi)發(fā)、拓展全攻略[M].北京:電子工業(yè)出版社, 2021:67-87. [2] 王玉鳳,劉湘黔.電子設(shè)計(jì)從零開(kāi)始[M].北京:清華大學(xué)出版社,2021:123-134.
54、[3] 譚浩強(qiáng).C程序設(shè)計(jì)教程學(xué)習(xí)輔導(dǎo) [M].北京:清華大學(xué)出版社,2021:23-26. [4] 童詩(shī)白.模擬電子技術(shù)根底[M].成都:高等教育出版社,2021:45-48. [5] 趙克中.磁力驅(qū)動(dòng)技術(shù)與設(shè)備[M].北京:化學(xué)工業(yè)出版社,2021:134-156. [6] 林伸茂.8051單片機(jī)徹底研究[M].北京:中國(guó)電力出版社,2007:56-67. [7] 吳磊.8051微控制器[M].北京:清華大學(xué)出版社,2021:98-111. [8] 郭英濤.LCD背光驅(qū)動(dòng)電路與應(yīng)用實(shí)例[M].北京:人民郵電出版社,2021:245-256. [9] 張煒.LCD驅(qū)動(dòng)電路、驅(qū)動(dòng)程
55、序與典型應(yīng)用[M].北京:人民郵電出版社,2021:256-265. [10] SD Group.SD Memory Card Specifications[Z].USA:Technical Committee SD Association, 2021:456-467. [11] Teayon . Hardware White Paper [Z].USA:Microsoft Corporation,2021:46-57. [12] 張琳.調(diào)節(jié)閥的應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2021:76-89. [13] 徐賢.新一代綠色光源LED及其應(yīng)用技術(shù)[M].北京:人民郵電出版社,202
56、1:47-76.
[14] 崔雪莉.單片機(jī)原理及應(yīng)用[M].北京:電子工業(yè)出版社,2021:36-48.
[15] 唐緒軍.報(bào)業(yè)經(jīng)濟(jì)與報(bào)業(yè)經(jīng)營(yíng)[M].北京:新華出版社,1999:117-121.?
附 錄
附錄1 整體電路圖
附錄2 澆花程序
#include
57、/ 定義LCD模塊控制引腳 sbit RW = P1^1; sbit E = P1^2; #define DataPort P2 //定義LCD模塊數(shù)據(jù)端口 #define Busy 0x80 //忙標(biāo)志,D7位為1說(shuō)明忙 uchar Xpos; //列方向地址指針 uchar Ypos; //行方向地址指針 //以下是短延時(shí)函數(shù) void Delay5Ms(void) { uint i = 5552; while(i--); } void Delay400Ms(void) { unsigned char TempCycA = 5;
58、unsigned int TempCycB; while(TempCycA--) { TempCycB=7269; while(TempCycB--); }; } //以下是讀忙狀態(tài)函數(shù) // 功能:在正常讀寫(xiě)操作之前檢測(cè)LCD模塊的忙狀態(tài), //D7 = 0:LCD控制器空閑;D7 = 1:LCD控制器忙 void CheckBusy( void ) { DataPort = 0xff; //P1口寫(xiě)1 RS=0; //選擇指令存放器 RW=1;
59、 //選擇讀模式 _nop_(); E=1; //使能LCD _nop_(); _nop_(); while( DataPort & Busy );//假設(shè)D7=1,那么DataPort&Busy=1,說(shuō)明忙,等待 E=0; //假設(shè)D7=0,說(shuō)明不忙,令E=0 } //以下是寫(xiě)入IR存放器命令函數(shù) //功能:向LCD模塊寫(xiě)入命令字符CMD //假設(shè) AttribC = 1 檢測(cè)忙信號(hào),假設(shè) AttribC = 0 不檢測(cè)忙信號(hào) void Wri
60、teIR(uchar CMD,uchar AttribC) { if (AttribC) CheckBusy();//假設(shè)AttribC =1,那么檢測(cè)忙信號(hào),否那么,順序執(zhí)行 RS = 0; //選擇指令存放器 RW = 0; //選擇寫(xiě)模式 _nop_(); DataPort = CMD; //將命令送數(shù)據(jù)端口 _nop_(); E = 1; //使能LCD _nop_(); _nop_(); E = 0;
61、 //禁止LCD } //以下是寫(xiě)入DDR存放器函數(shù) //功能:在當(dāng)前光標(biāo)位置顯示一個(gè)字符 void WriteDDR( char c ) { CheckBusy(); //檢測(cè)忙信號(hào) RS = 1; //選擇數(shù)據(jù)存放器 RW = 0; //選擇寫(xiě)模式 _nop_(); DataPort = c; // 將顯示字符送往數(shù)據(jù)口 _nop_(); E = 1; //寫(xiě)使能 _nop_();
62、 _nop_(); E = 0; //禁止LCD } //以下是光標(biāo)定位函數(shù) void LcdPos(uchar Xpos,uchar Ypos) { uchar tmp; //定義tmp為指令碼 Xpos&=0x0f; //16xx型液晶的范圍是0~15 Ypos&=0x01; //Y的范圍是0~1 tmp=Xpos; if(Ypos==1) tmp|=0xc0; //假設(shè)Ypos為1(顯示第2行),地址碼+0xc0 tmp|=0x80; //
63、假設(shè)Ypos為0(顯示第1行),地址碼+0x80 WriteIR (tmp,0); } //以下是初始化函數(shù) //功能:向LCD模塊寫(xiě)入不同命令,完成必要的初始化過(guò)程 void LcdReset( void ) { Delay400Ms(); WriteIR(0x30,0); //設(shè)為 8 位接口模式,顯示 2行字符,busy=0不檢測(cè)忙信號(hào) Delay5Ms(); WriteIR(0x30,0); Delay5Ms(); WriteIR(0x30,0); Delay5Ms(); WriteIR( 0x30, 1); //設(shè)置顯示
64、模式(以后均檢測(cè)忙信號(hào)) WriteIR( 0x08, 1); //顯示開(kāi)關(guān)控制指令,顯示關(guān)閉 WriteIR( 0x01, 1); //清屏指令,將DDRAM數(shù)據(jù)全部填入"空白" WriteIR( 0x06, 1); //輸入方式設(shè)置指令,字符不動(dòng),光標(biāo)自動(dòng)右移一格 WriteIR( 0x0f, 1); //顯示開(kāi)關(guān)控制指令,顯示器開(kāi),光標(biāo)開(kāi),光標(biāo)閃爍 } //以下是在指定行列顯示字符函數(shù) void WriteChar(uchar Xpos,uchar Ypos,char c) { LcdPos(Xpos,Ypos); WriteDDR(c
65、); } //以下是顯示字符串函數(shù) void WriteString(uchar Xpos,uchar Ypos,char s[]) { uchar p=0; for(;;) { WriteChar(Xpos,Ypos,s[p]); p++; if(s[p]==0) break; if(++Xpos>=15) //每行最多顯示16個(gè)字符 { Xpos=0; //如果一行顯示不完,那么轉(zhuǎn)到下一行或上一行的第一個(gè)字符 Ypos^=1;} //如果一行顯示不完
66、,那么轉(zhuǎn)到下一行或上一行顯示
}
}
/**************************************************************************************/
//Author : Chen Fen
//Date : 2021-8-26
//SHT10數(shù)字溫濕度傳感器的讀寫(xiě)程序
/**************************************************************************************/
#include
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版地理七年級(jí)下冊(cè)--極地地區(qū)課件
- 備選方案與f課件
- 行程問(wèn)題 順流逆流
- 班集體特色創(chuàng)建
- 發(fā)電廠的控制系統(tǒng)綜述
- 英語(yǔ)專業(yè)四級(jí)考試閱讀技巧新
- 小說(shuō)中的環(huán)境描寫(xiě)
- 典案二PPT教學(xué)案例SectionA2
- 血液透析患者動(dòng)靜脈內(nèi)瘺閉塞的原因及防護(hù)課件
- 運(yùn)動(dòng)快慢與方向的描述——速度課件
- 新概念第一冊(cè)lesson78ppt課件
- 原電池公開(kāi)課修改課件
- 檢量具使用方法和注意事項(xiàng)課件
- 中考賓語(yǔ)從句復(fù)習(xí)PPT課件2
- 不用文字的書(shū)和信