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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  本科生畢業(yè)論文</b></p><p> 家庭水族箱控制系統(tǒng)的研究與開發(fā)</p><p> Family aquatic animals box control system research and design</p><p> 學(xué)生姓名</p><p> 所在專業(yè)電子信息工程專業(yè)<

2、;/p><p> 所在班級(jí)電子1073</p><p> 申請(qǐng)學(xué)位工學(xué)學(xué)士</p><p> 指導(dǎo)教師職稱副教授</p><p> 答辯時(shí)間2011.06.04</p><p><b>  目 錄</b></p><p><b>  摘 要I</b>

3、</p><p>  abstractII</p><p>  家庭水族箱控制系統(tǒng)的研究與開發(fā)1</p><p><b>  第一章 緒論1</b></p><p>  1.1 研究的目的1</p><p>  1.2 國(guó)內(nèi)外研究發(fā)展?fàn)顩r、水平1</p><p>

4、  1.3 研究的主要內(nèi)容、預(yù)期目標(biāo)2</p><p>  第二章 系統(tǒng)的硬件的研究與開發(fā)2</p><p>  2.1 主控制芯片電路設(shè)計(jì)2</p><p>  2.2 系統(tǒng)電源模塊設(shè)計(jì)5</p><p>  2.3 水溫探測(cè)/水位測(cè)量模塊6</p><p>  2.3.1 DS18B20芯片6<

5、/p><p>  2.3.2 水溫探測(cè)電路8</p><p>  2.3.3 浮子液位開關(guān)電路9</p><p>  2.4 按鍵與液晶顯示模塊10</p><p>  2.5 繼電器控制電動(dòng)機(jī)模塊12</p><p>  2.5.1 繼電器的原理13</p><p>  2.5.2 繼電

6、器的選用13</p><p>  2.6 指示燈電路與蜂鳴報(bào)警模塊16</p><p>  第三章 系統(tǒng)軟件的研究與開發(fā)17</p><p>  3.1 軟件設(shè)計(jì)方法17</p><p>  3.2 主程序模塊17</p><p>  3.3 1602液晶顯示處理程序22</p><p&

7、gt;  3.4 延時(shí)Delay程序模塊25</p><p>  3.5 DS18B20溫度采集模塊25</p><p><b>  第四章 結(jié)論28</b></p><p><b>  鳴 謝28</b></p><p>  值此論文完成之際,謹(jǐn)向本人的導(dǎo)師王老師致以最誠(chéng)摯的敬意和由衷的

8、感謝。從課題的選定、資料的準(zhǔn)備、研究直到論文的修改等各個(gè)環(huán)節(jié)都得到了王老師的細(xì)心指導(dǎo)。王導(dǎo)師淵博的學(xué)識(shí)、嚴(yán)謹(jǐn)認(rèn)真的治學(xué)態(tài)度、實(shí)事求是的工作作風(fēng)、樸實(shí)真誠(chéng)的為人態(tài)度,使本人受益匪淺。28</p><p><b>  參考文獻(xiàn)29</b></p><p>  附錄一 系統(tǒng)設(shè)計(jì)原理圖30</p><p><b>  摘 要</

9、b></p><p>  現(xiàn)在越來越多的家庭和公共場(chǎng)所都擺上了各種水族箱。但作為大部分小型的家庭水族箱設(shè)備,都需要人為的手工操作,這給飼主帶來很大的不便。人們有時(shí)會(huì)因繁忙的工作,忽視了對(duì)觀賞魚的照顧。</p><p>  本論文設(shè)計(jì)了基于89系列單片機(jī)的家庭水族箱控制系統(tǒng)。整套系統(tǒng)以STC89單片機(jī)為核心芯片,結(jié)合了傳感器探測(cè)技術(shù)、繼電器原理、C語(yǔ)言編程等技術(shù)。設(shè)計(jì)能夠根據(jù)箱中的水溫

10、、水位等數(shù)據(jù),經(jīng)單片機(jī)處理后給出及時(shí)的控制指令,從而調(diào)節(jié)水族箱的環(huán)境參數(shù),達(dá)到以維持箱中魚生存環(huán)境穩(wěn)定的目的。</p><p>  整個(gè)系統(tǒng)設(shè)計(jì)分為硬件和系統(tǒng)軟件兩大部分。</p><p>  硬件部分有6個(gè)模塊, 分別是主控制芯片模塊設(shè)計(jì)、系統(tǒng)電源模塊設(shè)計(jì)、水溫探測(cè)/水位測(cè)量模塊、按鍵與液晶顯示模塊、繼電器控制電動(dòng)機(jī)模塊、蜂鳴報(bào)警模塊。軟件部分進(jìn)行了模塊化設(shè)計(jì),各個(gè)模塊之間相互獨(dú)立。&l

11、t;/p><p>  通過調(diào)試期間的運(yùn)行,實(shí)踐證明本設(shè)計(jì)的水族箱控制系統(tǒng)有操作簡(jiǎn)明、運(yùn)行可靠、硬件設(shè)計(jì)靈活、成本低廉的特點(diǎn)。</p><p>  關(guān)鍵詞:水族箱;單片機(jī);智能化;控制系統(tǒng);傳感器技術(shù)</p><p><b>  abstract</b></p><p>  Now more and more families

12、 and public places are placed all kinds of aquatic animals box for leisure or decoration. But most small family aquatic animals box equipments, for example water temperature sensor, heating pipes, liquid level switch, al

13、l need people manual operation, which give owners bring a lot of trouble. Because of the busy work, sometimes people ignored the fish's care, which will cause damage to them.</p><p>  Through the analysi

14、s and research of the above shortcomings, this paper designed family aquatic animals box control system that based on 89 series microcontroller. With STC89 microcontroller as core chip, a complete system has combined sen

15、sor detection technology, relays principle, technology such as the C programming language.According to temperature and water level , single chip computer processing data such as after a timely control instructions can gi

16、ve, control water pump, heater equipment,</p><p>  The whole system design is divided into two parts that is hardwareand software .</p><p>  Hardware circuit has six modules. they are main contr

17、ol chip module design, system power supply module design, water temperature detection/water level measurement modules, buttons and LCD module, relay control motor module, buzz alarm module. The software is modular design

18、. The independent modules are divided into four big C language program. They are main program, 1602 LCD processing procedures, delay the calling program, temperature sensor DS18B20 program.</p><p>  Through

19、the operation during commissioning, it shows that this design aquatic animals box control system has operation simple, reliable operation, hardware design flexibility, low cost characteristic.</p><p>  Keywo

20、rds: Aquatic animals box; SCM; Intelligent; Control system; Sensor technology</p><p>  家庭水族箱控制系統(tǒng)的研究與開發(fā)</p><p><b>  電子信息工程,</b></p><p><b>  指導(dǎo)教師:</b></p>

21、;<p><b>  第一章 緒論</b></p><p><b>  1.1 研究的目的</b></p><p>  隨著人們生活水平的不斷提高,各中觀賞娛樂電器叢出不窮,其中水族箱就開始進(jìn)駐不少家庭,五顏六色,美輪美奐的觀賞魚讓人醉心不已。它不但可以給人帶來無比寬松舒適的美感,更能調(diào)節(jié)居室環(huán)境,使人尋回那久違的綠色、鮮活的魚類,

22、讓大自然的美景在自己的身邊長(zhǎng)存[1]。但人們不可能每時(shí)每刻的調(diào)控著水族箱中的合適的溫度和氧量,這也就蘊(yùn)育而生了水族箱控制系統(tǒng)。通過研究她,使她能夠自動(dòng)的調(diào)節(jié)水族箱里的水溫和水里的含氧量,從而營(yíng)造出適合觀賞魚健康生存的水環(huán)境。</p><p>  針對(duì)水族箱的控制問題,也陸續(xù)出現(xiàn)了各種控制水族箱水溫、水位、充氧和排水的設(shè)備,如過濾器、加熱器、加氧泵等改善水環(huán)境的設(shè)備。但是由于產(chǎn)品繁多,功能不同意,而且大多是非智能化

23、的,單一的恒溫控制、充氧或是排水的系統(tǒng)。如果組成一套完整的結(jié)合一體的控制系統(tǒng),往往需要購(gòu)置多個(gè)設(shè)備分別安裝,投入的費(fèi)用較大,也存在一定的資源浪費(fèi)。這樣不僅增加了成本,重復(fù)投資,影響美觀,而且功能使用不靈活、不方便,整體性能也無法得到提升[3]。</p><p>  因此,本設(shè)計(jì)以家庭中水族箱的日常養(yǎng)護(hù)為背景,以水族箱中的水位、水溫、溶氧量等的控制為研究對(duì)象,對(duì)日常養(yǎng)護(hù)過程中的綜合自動(dòng)化及其應(yīng)用技術(shù)展開研究,這對(duì)利

24、用高新技術(shù)改造原有的水族箱及傳統(tǒng)規(guī)模化水產(chǎn)養(yǎng)殖產(chǎn)業(yè)的自動(dòng)化發(fā)展具有較大的實(shí)際意義和研究?jī)r(jià)值。</p><p>  1.2 國(guó)內(nèi)外研究發(fā)展?fàn)顩r、水平</p><p>  現(xiàn)代的水族箱飼養(yǎng)始于1851年的英國(guó)萬(wàn)國(guó)工業(yè)博覽會(huì)上。原始的水族箱只是有框架的水族箱,很簡(jiǎn)陋,水族箱的加熱也只是底部為金屬板的簡(jiǎn)單加熱。</p><p>  現(xiàn)代電力技術(shù)使水族箱系統(tǒng)科技不斷地發(fā)展,現(xiàn)

25、在相關(guān)的人工照明、通風(fēng)、過濾、水溫加熱等一整套控制系統(tǒng)的發(fā)明都成為可以相互協(xié)調(diào)的一個(gè)系統(tǒng)。水族生物應(yīng)可長(zhǎng)期存活,并仿照天然棲息環(huán)境。</p><p>  我國(guó)水族箱控制系統(tǒng)的發(fā)展起步比較晚。二十世紀(jì)八、九十年代中國(guó)的改革開放,隨著人們的生活水平的提高,觀賞魚水族箱開始進(jìn)入人們的生活中,近年來其快速發(fā)展的狀況使其成為一股新興的經(jīng)濟(jì)力量受到經(jīng)濟(jì)界及業(yè)內(nèi)人士的關(guān)注。如今是國(guó)際水族產(chǎn)品看中國(guó),許多國(guó)外大的采購(gòu)公司都盯準(zhǔn)中

26、國(guó)這個(gè)市場(chǎng),把長(zhǎng)遠(yuǎn)的目標(biāo)放在中國(guó)[2]。而在剛開始的飼養(yǎng)過程中,水族設(shè)備市場(chǎng)上的魚缸控制系統(tǒng)都是功能比較簡(jiǎn)單的設(shè)備。如水族箱溫度的控制,人們采用的是加熱棒進(jìn)行加熱控制,由于加熱棒本身采用雙金屬片溫控以及手工控制加熱棒的啟停,造成溫度控制精度較差,無法進(jìn)行準(zhǔn)確的供熱,對(duì)于水溫的恒溫控制造成了難度。再如水族箱的供氧問題,由于水溶解氧的特性決定,水中氧氣的濃度是有限度的,達(dá)到水中氧氣一定的程度時(shí),或者魚缸內(nèi)魚量密度不高時(shí),即使是在夏天時(shí)節(jié)也沒

27、有必要一直充氧可以采用間隔充氧和換水,否則再進(jìn)行充氧都是多余的,也必然浪費(fèi)大量的電力資源。</p><p>  電路簡(jiǎn)單,能分擔(dān)人們不必要的手工的水族箱控制電路系統(tǒng)也隨之而生。水族箱中各種參數(shù)的控制,也產(chǎn)生了相關(guān)的控制設(shè)備。如間歇充氧定時(shí)器,有自動(dòng)水溫控制器、自動(dòng)喂食器、燈火自動(dòng)控制器等這些設(shè)備各自獨(dú)立運(yùn)行,控制相應(yīng)的箱內(nèi)參數(shù),所以造成獨(dú)立的控制設(shè)備配置數(shù)量繁多,不但購(gòu)買獨(dú)立的設(shè)備耗費(fèi)資金多,而且不利于整個(gè)系統(tǒng)的

28、操作。因此多功能組合的水族箱電子控制系統(tǒng)的設(shè)計(jì)是很有必要的。</p><p>  1.3 研究的主要內(nèi)容、預(yù)期目標(biāo)</p><p>  本設(shè)計(jì)擬用STC公司生產(chǎn)的STC89C52單片機(jī)為核心,運(yùn)用溫度傳感器技術(shù)、水位傳感器技術(shù),設(shè)計(jì)一款多功能的水族箱控制系統(tǒng)</p><p>  本設(shè)計(jì)的預(yù)期目標(biāo)是研制一套單片機(jī)系統(tǒng),并使這套單片機(jī)系統(tǒng)可實(shí)現(xiàn)對(duì)水族箱進(jìn)行智能控制和管理

29、,能夠完成水溫、水位等環(huán)境參數(shù)的自動(dòng)測(cè)量和智能控制。</p><p>  本研究設(shè)計(jì)的控制系統(tǒng)主要特點(diǎn)是:(1)采用單片機(jī)控制設(shè)計(jì),實(shí)現(xiàn)水族箱自動(dòng)測(cè)溫、自動(dòng)測(cè)水位、自動(dòng)加熱、自動(dòng)充氧等功能。(2)人機(jī)操作界面采用數(shù)碼、LED指示顯示;操作簡(jiǎn)單、方便,極具人性化特點(diǎn)。</p><p>  根據(jù)系統(tǒng)要求和要完成的功能特點(diǎn),本課題研究的主要內(nèi)容有:(1)硬件設(shè)計(jì):由于現(xiàn)在市場(chǎng)上各種芯片種類繁多,

30、而且不斷在推陳出新,因此必須按照系統(tǒng)要求,選擇既合適又運(yùn)行可靠的芯片和元器件,從而設(shè)計(jì)出最合理的硬件電路,并用PROTEL電路設(shè)計(jì)軟件畫出正確的電路圖,然后通過隨時(shí)對(duì)電路圖的修改,無誤后,在制成印刷電路板。(2)軟件設(shè)計(jì):利用模塊化的程序設(shè)計(jì)方法,把系統(tǒng)應(yīng)用程序按照整體功能劃分為若干相對(duì)獨(dú)立的程序模塊,繪出程序流程圖,各個(gè)模塊單獨(dú)進(jìn)行設(shè)計(jì),利用單片機(jī)C語(yǔ)言編程。</p><p>  第二章 系統(tǒng)的硬件的研究與開發(fā)

31、</p><p>  本章詳細(xì)介紹多功能水族箱控制系統(tǒng)的硬件結(jié)構(gòu)和設(shè)計(jì)。主要包括主控制芯片模塊設(shè)計(jì)、系統(tǒng)電源模塊設(shè)計(jì)、水溫探測(cè)/水位測(cè)量模塊、按鍵與液晶顯示模塊、繼電器控制電動(dòng)機(jī)模塊。詳細(xì)闡明各電路設(shè)計(jì)中芯片的選型,芯片的性能參數(shù)和功能特點(diǎn),并設(shè)計(jì)出具體的硬件電路。本系統(tǒng)整體電路圖詳見附錄一,下面就各部分主要電路作介紹。</p><p>  2.1 主控制芯片電路設(shè)計(jì)</p>

32、<p>  單片微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),是典型的嵌入式微控制器(Micro-Controller Unit),常用英文字母的縮寫MCU表示單片機(jī),它最早是被用在工業(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來。最早的設(shè)計(jì)理念是通過將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對(duì)體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計(jì)出的處理器,從此以后,單片機(jī)和專用處理器的

33、發(fā)展便分道揚(yáng)鑣。[6] </p><p>  早期的單片機(jī)都是8位或4位的。其中最成功的是INTEL的8031,因?yàn)楹?jiǎn)單可靠而性能不錯(cuò)獲得了很大的好評(píng)。此后在8031上發(fā)展出了MCS51系列單片機(jī)系統(tǒng)?;谶@一系統(tǒng)的單片機(jī)系統(tǒng)直到現(xiàn)在還在廣泛使用。</p><p>  單片機(jī)有著體積小,功耗低,功能強(qiáng),性能價(jià)格比高,易于推廣應(yīng)用等顯著特點(diǎn),在自動(dòng)化裝置,智能化儀器儀表,過程控制和家用電器等

34、許多領(lǐng)域獲得了廣泛的應(yīng)用。</p><p>  從國(guó)內(nèi)開發(fā)應(yīng)用單片機(jī)的情況來看,自80年代初起步以來,以INTEL公司的MCS-48系列單片機(jī)為主導(dǎo)機(jī)種,取得了一定的應(yīng)用成果。80年代中期以來,隨著性能更強(qiáng),速度更快的MCS-51系列的加入,單片機(jī)得到而來更為迅速的推廣和廣泛的應(yīng)用。目前,在我國(guó)目前和今后一段時(shí)間內(nèi),8位的MCS-51單片機(jī)仍然是實(shí)際應(yīng)用中的主導(dǎo)品種[4]。</p><p&g

35、t;  16位和32位單片機(jī)性能優(yōu)越,但是他們的價(jià)格比較貴,從而不能廣泛的應(yīng)用。1位和4位單片機(jī)結(jié)構(gòu)簡(jiǎn)單,成本也低廉,但是編程指令集不豐富,程序也復(fù)雜。而8位的單片機(jī)指令豐富,性價(jià)比很高,是工業(yè)檢測(cè)控制的主流機(jī)型。因此本系統(tǒng)選擇由宏晶科技公司生產(chǎn)的STC89C52單片機(jī)作為系統(tǒng)的主芯片。</p><p>  STC89C52是一種帶8K字節(jié)閃爍可編程可檫除只讀存儲(chǔ)器(FPEROM-Flash Programabl

36、e and Erasable Read Only Memory )的低電壓,高性能COMOS8的微處理器,俗稱單片機(jī)。該器件采用ATMEL搞密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。</p><p>  AT89C52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫線,AT89C52可以按照常

37、規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲(chǔ)器可有效地降低開發(fā)成本[5]。</p><p>  單片機(jī)總控制電路如圖2.1所示。</p><p>  圖2.1 單片機(jī)總控制電路</p><p>  STC89C52具體介紹如下:</p><p>  ① 主電源引腳(2根)&l

38、t;/p><p>  VCC(Pin40):電源輸入,接+5V電源</p><p>  GND(Pin20):接地線</p><p> ?、谕饨泳д褚_(2根)</p><p>  XTAL1(Pin19):片內(nèi)振蕩電路的輸入端</p><p>  XTAL2(Pin20):片內(nèi)振蕩電路的輸出端</p>&l

39、t;p><b> ?、劭刂埔_(4根)</b></p><p>  RST/VPP(Pin9):復(fù)位引腳,引腳上出現(xiàn)2個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。</p><p>  ALE/PROG(Pin30):地址鎖存允許信號(hào)</p><p>  PSEN(Pin29):外部存儲(chǔ)器讀選通信號(hào)</p><p>  EA/

40、VPP(Pin31):程序存儲(chǔ)器的內(nèi)外部選通,接低電平從外部程序存儲(chǔ)器讀指令,如果接高電平則從內(nèi)部程序存儲(chǔ)器讀指令[6]。</p><p>  ④可編程輸入/輸出引腳(32根)</p><p>  STC89C52單片機(jī)有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個(gè)口有8位(8根引腳),共32根。</p><p>  PO口(Pin39~Pin32

41、):8位雙向I/O口線,名稱為P0.0~P0.7。它與液晶顯示屏1602的數(shù)據(jù)輸入口DB1~DB7相接。</p><p>  P1口(Pin1~Pin8):8位準(zhǔn)雙向I/O口線,名稱為P1.0~P1.7 。其中P1.0與蜂鳴器相連,作為報(bào)警電路;P1.1和P1.2與按鍵1、2相連,它們作為調(diào)節(jié)溫度下限加減的控制接口;P1.3與P1.4與按鍵3、4相接。</p><p>  P2口(Pin2

42、1~Pin28):8位準(zhǔn)雙向I/O口線,名稱為P2.0~P2.7。 P2.3和P2.4與水位報(bào)警燈相連,作為水位控制指示燈的接口;P2.5口與1620液晶顯示器的RS端連接;P2.6與液晶顯示屏的Rw端相連;P2.7與液晶顯示屏的使能端En端相連。</p><p>  P3口(Pin10~Pin17):8位準(zhǔn)雙向I/O口線,名稱為P3.0~P3.7。其中P3.4和P3.5與水位開關(guān)相連,作為水位信號(hào)的輸入端;P3

43、.6與加熱器的控制繼電器相連,控制繼電器的開與關(guān);P3.7與定時(shí)充氧電路相連,用于控制充氧電機(jī)的開與關(guān)。</p><p>  STC89C52主要功能如表1所示。</p><p>  表1 STC89C52主要功能</p><p>  2.2 系統(tǒng)電源模塊設(shè)計(jì)</p><p>  系統(tǒng)的供電由usb直插電腦usb口提供,這能為系統(tǒng)提供穩(wěn)定

44、的+5V電壓。USB接口有四個(gè)觸點(diǎn),分別是電源+5V、數(shù)據(jù)-、數(shù)據(jù)+、電源地,USB設(shè)備與計(jì)算機(jī)通過“數(shù)據(jù)+”和“數(shù)據(jù)-”通道進(jìn)行數(shù)據(jù)傳輸,“+5V”、“電源地”具有為外部設(shè)備供電的能力。</p><p>  根據(jù)目前通行的USB1.1規(guī)范,USB接口可以提供5V±5%的電壓為外部設(shè)備供電,每個(gè)端口最大輸出電流為500mA,因此其輸出功率不能超過2.25W,超過了這個(gè)功率的外部設(shè)備就需要配備外置電源。&

45、lt;/p><p>  本系統(tǒng)的電源、電壓、功率的要求都比較低,因此可以USB上的電源能滿足要求。為了保護(hù)單片機(jī)的安全,在usb輸出電壓后,加了J2保險(xiǎn)絲,用SW-SPDT開關(guān)控制電源的開與關(guān)。聯(lián)通電源后配備了一個(gè)LED指示燈d13,指示電源的聯(lián)通。具體電路圖2.2所示。</p><p>  圖2.2 電源部分原理圖</p><p>  2.3 水溫探測(cè)/水位測(cè)量模塊&

46、lt;/p><p>  水溫和水位探測(cè)電路是水族箱系統(tǒng)最重要的環(huán)境參數(shù)獲得通道。水溫傳感器探測(cè)電路獲得的水溫?cái)?shù)據(jù)與設(shè)定溫度上限和下限的比較,獲得的結(jié)果,將直接用來驅(qū)動(dòng)繼電器控制加熱器的開與關(guān),以保持水族箱的溫度穩(wěn)定,必要時(shí)還會(huì)報(bào)警以提醒飼主。水溫傳感器選用DS18B20芯片。</p><p>  而水位傳感器采用浮子液位開關(guān),由浮子液位開關(guān)在上、下限設(shè)定水位值產(chǎn)生的水位數(shù)據(jù)傳送到單片機(jī)后,得出

47、的控制命令會(huì)控制水閥門的開與關(guān),保持水族箱的水位平衡。水位傳感器將選用</p><p>  2.3.1 DS18B20芯片</p><p>  美國(guó) Dallas 半導(dǎo)體公司的數(shù)字化溫度傳感器 DS1820 是世界上第一片支持 "一線總線"接口的溫度傳感器,現(xiàn)在,新一代的 DS18B20 體積更小、更經(jīng)濟(jì)、更靈活。DS18B20 也支持"一線總線"接

48、口,測(cè)量溫度范圍為-55°C~+125°C,在-10~+85°C 范圍內(nèi),精度為±0.5°C。DS1822 的精度較差為±2°C。現(xiàn)場(chǎng)溫度直接以"一線總線"的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,如:環(huán)境控制、設(shè)備或過程控制、測(cè)溫類消費(fèi)電子產(chǎn)品等。</p><p>  DS18B20 的主要特

49、性</p><p> ?。?)適應(yīng)電壓范圍更寬,電壓范圍:3.0~5.5V,在寄生電源方式下可由數(shù)據(jù)線供電。</p><p> ?。?)獨(dú)特的單線接口方式,DS18B20 在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與 DS18B20 的雙向通訊。</p><p> ?。?)DS18B20 支持多點(diǎn)組網(wǎng)功能,多個(gè) DS18B20 可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)

50、多點(diǎn)測(cè)溫。</p><p> ?。?)DS18B20 在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。</p><p>  (5)溫范圍-55℃~+125℃,在-10~+85℃時(shí)精度為±0.5℃。</p><p>  (6) 可編程的分辨率為 9~12 位,對(duì)應(yīng)的可分辨溫度分別為 0.5℃、0.25℃、0.125℃和0.

51、0625℃,可實(shí)現(xiàn)高精度測(cè)溫。</p><p> ?。?)測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以"一線總線"串行傳送給 CPU。</p><p> ?。?)負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作[10]。</p><p>  DS18B20 內(nèi)部結(jié)構(gòu)主要由四部分組成:64 位光刻 ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器 TH

52、 和 TL、配置寄存器。DS18B20 的管腳排列如下圖2.3所示。</p><p><b>  圖2.3 管腳圖</b></p><p>  圖2.4 內(nèi)部結(jié)構(gòu)圖</p><p>  DS18B20 引腳定義:</p><p>  (1) DQ 為數(shù)字信號(hào)輸入/輸出端;</p><p>  (

53、2) GND 為電源地;</p><p>  (3) VDD 為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。</p><p>  2.3.2 水溫探測(cè)電路</p><p>  水溫探測(cè)具體電路如圖2.5所示。</p><p>  圖2.5 DS18B20電路圖</p><p>  水溫傳感器DS18b20芯片的3個(gè)

54、引腳接法為:1腳為GND端,直接接地;2腳DQ端和STC89C52單片機(jī)的P33相連,把水溫?cái)?shù)據(jù)直接傳輸給單片機(jī)處理;3腳VCC端給芯片提供電源,是5V的電源</p><p>  2.3.3 浮子液位開關(guān)電路 </p><p>  浮子液位開關(guān)的原理是利用浮球液位開關(guān)的磁性浮子隨液位升或降,使傳感器檢測(cè)管內(nèi)設(shè)定位置的干簧管芯片動(dòng)作,發(fā)出接點(diǎn)開(關(guān))轉(zhuǎn)換信號(hào)。 </p>&l

55、t;p>  在密閉的非導(dǎo)磁性管內(nèi)安裝有一個(gè)或多個(gè)干簧管,然后將此管穿過一個(gè)或多個(gè)中空且內(nèi)部有環(huán)形磁鐵的浮球,液體的上升或下降將帶動(dòng)浮球一起上下移動(dòng),從而使該非導(dǎo)磁性管內(nèi)的干簧管產(chǎn)生吸合或斷開的動(dòng)作,從而輸出一個(gè)開關(guān)信號(hào) </p><p>  浮球開關(guān)是一種結(jié)構(gòu)簡(jiǎn)單、使用方便、安全可靠的液位控制器件,它具有比一般機(jī)械開關(guān)體積小、速度快、作用壽命長(zhǎng),與電子開關(guān)相比,它又有抗負(fù)載沖擊能力強(qiáng)的特點(diǎn),其在造船、造紙、

56、印刷、發(fā)電機(jī)設(shè)備、石油化工、食品工業(yè)、水處理、電工、染料工業(yè)、油壓機(jī)械等方面都得到了廣泛的應(yīng)用。[7]</p><p>  圖2.6 浮球液位開關(guān)</p><p><b>  產(chǎn)品特點(diǎn):</b></p><p>  1. 可做多點(diǎn)控制,控制開關(guān)可隨液位位置定制。 </p><p>  2. 用磁簧開關(guān)不需要單獨(dú)

57、提供電源.</p><p>  3. 單支可做多點(diǎn)控制,相對(duì)比其它液位開關(guān)單價(jià)底.</p><p>  4. 可靠性高,配線成本低,安裝容易.</p><p>  5. 可適用于不同密度、不同酸堿、不同壓力及溫度的液體</p><p>  具體電路圖如圖2.7所示。</p><p>  圖2.7 水位開關(guān)接口電路<

58、;/p><p>  J90和J91的1、2腳分別和浮子液位開關(guān)桿上部和下部的磁簧開關(guān)相連通,當(dāng)帶有磁性材料的浮子隨水位移動(dòng)到水位的上下限位置時(shí),就會(huì)觸動(dòng)開關(guān),從而產(chǎn)生開關(guān)量,經(jīng)P34和P35傳回給單片機(jī),單片機(jī)給水泵發(fā)出控制信號(hào),實(shí)現(xiàn)對(duì)水位的控制。</p><p>  2.4 按鍵與液晶顯示模塊</p><p>  本系統(tǒng)的顯示設(shè)備用的是QC-1602液晶顯示。<

59、/p><p>  QC-1602字符型LCD有16條引腳線的LCD,多出來的2條線是背光電源線,引腳定義如下表2所示。</p><p>  表2 1602液晶管腳列表[4]</p><p><b>  續(xù)表2</b></p><p>  1602顯示器的引腳分布如圖2.8所示。</p><p> 

60、 圖2.8 1602顯示器的引腳</p><p>  1602通過D0~D7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼。[8]</p><p>  1602顯示器顯示的內(nèi)容為16*2,每行16個(gè)字符。1602識(shí)別的是ASC

61、II碼,試驗(yàn)可以用ASCII碼直接賦值,在單片機(jī)編程中還可以用字符型常量或變量賦值,如'A’。它在顯示器上內(nèi)置了DDRAM,就是顯示數(shù)據(jù)RAM,用來寄存待顯示的字符代碼。共80個(gè)字節(jié),其地址和屏幕的對(duì)應(yīng)關(guān)系如表3所示。</p><p>  表3 顯示器屏幕和地址對(duì)應(yīng)</p><p>  因此想在屏幕上哪一行列顯示一個(gè)字符,只要在對(duì)應(yīng)的DDRAM的地址上寫入字符就可以。[4]<

62、/p><p>  本設(shè)計(jì)選用1602顯示器可以用來顯示水族箱水溫傳感器DS18B20探測(cè)的水溫溫度,具體的電路圖如圖2.9 所示。</p><p>  圖2.9 顯示器電路圖</p><p>  LCD1602的D0~D7腳跟單片機(jī)的P00~P07口連接,顯示由單片機(jī)處理后的水溫溫度字符。顯示器的VL口跟可調(diào)的3296電阻相連,可以調(diào)節(jié)顯示器的清晰度。VCC接+5v的電

63、源,給顯示器供電。BL+和VSS(圖上的GND)腳接地。</p><p>  2.5 繼電器控制電動(dòng)機(jī)模塊</p><p>  當(dāng)在冬天時(shí),水族箱中的水溫比較低,有時(shí)天氣發(fā)生突變,室溫過低時(shí),這時(shí)就需要給水族箱加熱,以免讓魚類凍傷,而加熱到合適溫度時(shí),也需要斷開加熱器。所以當(dāng)水溫探傳感器DS18B20傳回的水溫?cái)?shù)據(jù)跟單片機(jī)設(shè)定的水溫下限比較,過低時(shí),這時(shí)單片機(jī)要發(fā)出控制指令,開動(dòng)加熱器,給

64、水族箱加熱,使觀賞魚免遭凍傷。合適溫度時(shí),單片機(jī)同樣給出指令,斷開加熱器的電源。</p><p>  對(duì)于定時(shí)充氧電路,當(dāng)隔一段相同的時(shí)間時(shí),單片機(jī)同樣給出指令,開動(dòng)充氧電機(jī),給水族箱補(bǔ)氧,定時(shí)的開動(dòng)一段時(shí)間電機(jī),以維持水中的含氧量。</p><p>  水族箱中的浮子液位開關(guān)當(dāng)測(cè)得水位低程序設(shè)定的水位值時(shí),這時(shí)也需要給水族箱注水,這就要開動(dòng)小水泵。</p><p>

65、;  所有這些水族箱的配備電機(jī),都需要用到繼電器弱電控制強(qiáng)電的原理來控制電機(jī)的開動(dòng),以便時(shí)刻控制水族箱的各種環(huán)境參數(shù),維持觀賞魚適宜的水中環(huán)境。</p><p>  2.5.1 繼電器的原理</p><p>  繼電器是一種電子控制器件,它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路),通常應(yīng)用于自動(dòng)控制電路中,它實(shí)際上是用較小的電流去控制較大電流的一種“自動(dòng)開關(guān)”。故在電路中起

66、著自動(dòng)調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等作用。</p><p>  電磁式繼電器一般由控制線圈、鐵芯、銜鐵、觸點(diǎn)簧片等組成,控制線圈和接點(diǎn)組之間是相互絕緣的,因此,能夠?yàn)榭刂齐娐菲鸬搅己玫碾姎飧綦x作用。當(dāng)我們?cè)诶^電器的線圈兩頭加上其線圈的額定的電壓時(shí),線圈中就會(huì)流過一定的電流,從而產(chǎn)生電磁效應(yīng),銜鐵就會(huì)在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動(dòng)銜鐵的動(dòng)觸點(diǎn)與靜觸點(diǎn)(常開觸點(diǎn))吸合。當(dāng)線圈斷電后,電磁的吸力也

67、隨之消失,銜鐵就會(huì)在彈簧的反作用力返回原來的位置,使動(dòng)觸點(diǎn)與原來的靜觸點(diǎn)(常閉觸點(diǎn))吸合。這樣吸合、釋放,從而達(dá)到了在電路中的接通、切斷的開關(guān)目的。</p><p>  2.5.2 繼電器的選用</p><p>  本設(shè)計(jì)選用的為HK4100F-DC5V-SHG繼電器。她有6個(gè)引腳,其中2、5腳為線圈。1、6腳為公共端。3、4腳一個(gè)常開一個(gè)常閉。如圖3.0所示。</p>&l

68、t;p>  圖3.0 繼電器引腳圖</p><p>  其內(nèi)部的原理圖如圖3.1所示。</p><p>  圖3.1 繼電器內(nèi)部原理圖</p><p>  二極管D1、電阻R3、LED9、PNP三極管T5、電阻R20是外部跟繼電器相連的輔助元件,J1和CN2是繼電器的內(nèi)部結(jié)構(gòu)。</p><p>  三極管T5的基極B接到單片機(jī)的P3.6

69、,三極管的發(fā)射極E接到繼電器線圈的一端,線圈的另一端接到+5V電源VCC上;繼電器線圈兩端并接一個(gè)二極管IN4148,用于吸收釋放繼電器線圈斷電時(shí)產(chǎn)生的反向電動(dòng)勢(shì),防止反向電勢(shì)擊穿三極管T5及干擾其他電路;R3和發(fā)光二極管LED9組成一個(gè)繼電器狀態(tài)指示電路,當(dāng)繼電器吸合的時(shí)候,LED9點(diǎn)亮,這樣就可以直觀的看到繼電器狀態(tài)了。在原理圖中的具體電路為如圖3.2所示。</p><p>  圖3.2 兩個(gè)繼電器的電路圖&

70、lt;/p><p>  繼電器1和2接口上與定時(shí)充氧電機(jī)和加熱器相連,從而驅(qū)動(dòng)外部電機(jī)的工作。其模擬圖如圖3.3所示。</p><p>  圖3.3 繼電器外部電機(jī)接線模擬圖</p><p>  2.6 指示燈電路與蜂鳴報(bào)警模塊</p><p>  為了給飼主在系統(tǒng)運(yùn)行控制中更直觀的理解她的運(yùn)行狀態(tài),系統(tǒng)特意設(shè)計(jì)了LED指示燈電路,電路圖如圖3.

71、4所示。</p><p>  圖3.4 指示燈電路</p><p>  D1、D2分別跟單片機(jī)的P36和P37相接,當(dāng)單片機(jī)分別輸出低電平控制信號(hào),三極管導(dǎo)通,繼電器控制的加熱器和定時(shí)充氧泵工作。這時(shí)D1、D2導(dǎo)通發(fā)光,指示電機(jī)已工作。D3、D4跟單片機(jī)P23、P24端口連接,當(dāng)水位在上下限時(shí),D3、D4導(dǎo)通發(fā)光,提示水位已經(jīng)到了極限。</p><p>  蜂鳴器與

72、三極管E3相連,當(dāng)P10低電平時(shí),E3導(dǎo)通,蜂鳴器報(bào)警。當(dāng)P10高電平時(shí),三極管截止,蜂鳴器沒有接通電源,不響。</p><p>  第三章 系統(tǒng)軟件的研究與開發(fā)</p><p>  系統(tǒng)的軟件設(shè)計(jì)是控制系統(tǒng)設(shè)計(jì)的主要內(nèi)容和重點(diǎn),應(yīng)該根據(jù)系統(tǒng)硬件電路為基礎(chǔ)進(jìn)行系統(tǒng)的軟件設(shè)計(jì)。軟件設(shè)計(jì)要求功能準(zhǔn)確,閱讀調(diào)試方便,所有一般采用結(jié)構(gòu)化的程序設(shè)計(jì)方法。它包括:自頂向下的設(shè)計(jì)、模塊化編程和結(jié)構(gòu)化編程

73、。</p><p>  水族箱控制系統(tǒng)程序的設(shè)計(jì)采用單片機(jī)C語(yǔ)言編程進(jìn)行開發(fā),系統(tǒng)程序可以分為以下幾大模塊:主程序模塊、1602顯示處理模塊、DS18B20溫度采集模塊、延時(shí)模塊、定時(shí)器設(shè)置程序模塊。</p><p>  3.1 軟件設(shè)計(jì)方法</p><p>  模塊化設(shè)計(jì),就是把軟件按照規(guī)定的原則分為一個(gè)個(gè)較小的、相對(duì)獨(dú)立但又相關(guān)的模塊。分解、信息隱藏和模塊獨(dú)立性

74、,是實(shí)現(xiàn)模塊化設(shè)計(jì)的重要指導(dǎo)思想。</p><p>  對(duì)于一個(gè)軟件系統(tǒng),可以把它分解成幾個(gè)小模塊,各組成模塊之間是相互關(guān)聯(lián)的。但模塊也多,模塊的接口工作量也隨著模塊數(shù)的增加而增大。因此把模塊數(shù)控制在一個(gè)范圍內(nèi),可以使總的開發(fā)工作量保持最小。</p><p>  本系統(tǒng)的軟件設(shè)計(jì)采用Keil C51集成環(huán)境開發(fā)軟件部分,Keil C51是美國(guó)Keil Software公司出品的51系列兼容

75、單片機(jī)C語(yǔ)言軟件開發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì)。Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。</p><p>  本文系統(tǒng)的程序有:主程序、1602顯示處理程序、延時(shí)處理程序、溫度采集

76、處理程序、EEPROM程序。下面就將逐一介紹各程序模塊的設(shè)計(jì)和編寫。</p><p><b>  3.2 主程序模塊</b></p><p>  主程序是檢測(cè)水族箱內(nèi)各種環(huán)境參數(shù),從而進(jìn)行智能控制的主監(jiān)控程序,根據(jù)模塊化設(shè)計(jì)的根本思想,可以將系統(tǒng)功能劃分為多個(gè)子任務(wù),每個(gè)子任務(wù)由對(duì)應(yīng)的子程序運(yùn)行來實(shí)現(xiàn)。整合起每個(gè)子程序,就可以實(shí)現(xiàn)溫度、水位、定時(shí)充氧等參數(shù)的采集。&l

77、t;/p><p>  系統(tǒng)監(jiān)控主程序的流程圖如3.5所示。</p><p>  圖3.5 主程序流程圖</p><p>  主程序主要完成以下工作</p><p><b>  (1)預(yù)處理設(shè)置</b></p><p>  在主程序中首先要對(duì)系統(tǒng)進(jìn)行預(yù)處理命令的包含。它們既包括有ANSIC統(tǒng)一規(guī)定的預(yù)處

78、理命令,也有本文設(shè)計(jì)的包含預(yù)處理文件。它們包括宏定義、51單片機(jī)包含文件、DS18B20讀寫函數(shù)、1602液晶驅(qū)動(dòng)函數(shù)等,</p><p> ?。?)初始化和聲明部分</p><p>  這部分對(duì)系統(tǒng)進(jìn)行初始化編程。硬件部分有按鍵與單片機(jī)接口定義、傳感器數(shù)據(jù)傳輸接口設(shè)置:軟件方面有各種數(shù)據(jù)的聲明和定義、溫度數(shù)據(jù)的初值設(shè)定、EEPROM的判斷初值。</p><p> 

79、 (3)環(huán)境參數(shù)的采集</p><p>  獲取各種環(huán)境參數(shù)的變化情況和工作狀態(tài)。環(huán)境參數(shù)的變化包括系統(tǒng)溫度,高、低水位等,工作狀態(tài)包括溫度控制狀態(tài)、定時(shí)充氧控制狀態(tài)等。</p><p><b>  (4)調(diào)用控制程序</b></p><p>  根據(jù)當(dāng)前的環(huán)境參數(shù),單片機(jī)做出判斷,調(diào)用控制程序?qū)ο到y(tǒng)進(jìn)行智能控制。實(shí)現(xiàn)對(duì)加熱器的開與關(guān)、定時(shí)充氧

80、電機(jī)的開與關(guān)、還有水閥的控制。</p><p><b>  (5) 顯示處理</b></p><p>  根據(jù)DS18B20傳回的溫度數(shù)據(jù),在1602液晶上實(shí)時(shí)的進(jìn)行水族箱溫度的顯示。直觀的呈現(xiàn)給飼主,讓她了解控制系統(tǒng)的工作。而還有另外的水位燈顯示程序,在水位到達(dá)設(shè)定的上下限時(shí),水位燈會(huì)亮。</p><p><b> ?。?)主程序代

81、碼</b></p><p>  主程序的主要代碼如下所示:</p><p>  #define uint unsigned int //定義縮寫</p><p>  #define uchar unsigned char //定義縮寫</p><p>  #include <REG52.H></p>

82、<p>  #include <intrins.h></p><p>  #include "ds18b20mul.h" //包含ds18b20讀寫函數(shù)</p><p>  #include "1602.h" //包含1602液晶驅(qū)動(dòng)函數(shù)</p><p>  #include "

83、;timer.h"</p><p>  sbit butt1=P1^1; //定義減小下限按鈕(按鈕1)</p><p>  sbit butt2=P1^2; //定義增加下限按鈕(按鈕2)</p><p>  sbit butt3=P1^3; //按鈕3</p><p>  sbit butt4=P1^4;//按鈕4

84、</p><p>  sbit beeper=P1^0; //蜂鳴</p><p>  sbit water_high=P3^5; //水位開關(guān)1(上)</p><p>  sbit water_low=P3^4;//水位開關(guān)2(下)</p><p>  sbit o2=P3^7; //氧氣</p>

85、<p>  sbit hot=P3^6;//加熱</p><p>  sbit addwater=P2^5;</p><p>  unsigned char num1=0;//存放實(shí)時(shí)溫度數(shù)據(jù)</p><p>  unsigned int limit_high;//上限1變量聲明</p><p>  unsigned int l

86、imit_low;//下限1變量聲明</p><p>  sbit led1=P2^4; //水位高燈</p><p>  sbit led2=P2^3; //水位低燈</p><p>  void delay_50mms(unsigned int t)//簡(jiǎn)單延時(shí)函數(shù)</p><p><b>  {</b>&

87、lt;/p><p>  unsigned int j; </p><p>  for(;t>0;t--)</p><p>  for(j=6245;j>0;j--);</p><p><b>  }</b></p><p><b>  main()</b><

88、/p><p><b>  {</b></p><p>  LCD_Initial(); //lcd初始化</p><p>  limit_high=ReData(20); //讀取上次保存的上限</p><p>  limit_low=ReData(21); //讀取上次保存的上限</p><

89、;p>  if(limit_high==255)//防止eeprom數(shù)據(jù)丟牛</p><p><b>  {</b></p><p>  WrData(20,60);</p><p>  WrData(21,15); </p><p>  //恢復(fù)下限到30;</p><p>  eepro

90、mflag=0;//將eeprom寫入標(biāo)志清零</p><p><b>  }</b></p><p>  timer0init();//初始化定時(shí)器</p><p><b>  while(1)</b></p><p><b>  { </b></p>&l

91、t;p>  num1=ReadTemp();//讀取溫度,賦值到num1</p><p>  if(num1>=limit_high)beeper=0;else beeper=1;//如果溫度到達(dá)上限 蜂鳴報(bào)警 </p><p>  if(num1<limit_low)hot=0;else hot=1;//如果溫度小于下限則

92、加熱,否則停止加熱</p><p>  if(butt1==0)//按鈕1</p><p><b>  {</b></p><p>  delay_50mms(3);//按鍵消抖,數(shù)值越大消抖效應(yīng)越強(qiáng)</p><p>  if(butt1==0&&limit_high>0)limit_high--;

93、//消抖延時(shí)后,如果按鍵還是按下,就將上限減少1°</p><p><b>  }</b></p><p>  if(butt2==0)// 按鈕2</p><p><b>  {</b></p><p>  delay_50mms(3);//按鍵消抖,數(shù)值越大消抖效應(yīng)越強(qiáng)</

94、p><p>  if(butt2==0&&limit_high<255)limit_high++;//消抖延時(shí)后,如果按鍵還是按下,就將上限增加1°</p><p><b>  }</b></p><p>  if(butt3==0)//按鈕3</p><p><b>  {<

95、/b></p><p>  delay_50mms(3);//按鍵消抖,數(shù)值越大消抖效應(yīng)越強(qiáng)</p><p>  if(butt3==0&&limit_low>0)limit_low--;//消抖延時(shí)后,如果按鍵還是按下,就將上限減少1°</p><p><b>  }</b></p><

96、;p>  if(butt4==0)// 按鈕4</p><p><b>  {</b></p><p>  delay_50mms(3);//按鍵消抖,數(shù)值越大消抖效應(yīng)越強(qiáng)</p><p>  if(butt4==0&&limit_low<255)limit_low++;//消抖延時(shí)后,如果按鍵還是按下,就將上

97、限增加1°</p><p><b>  }</b></p><p>  if((butt1==0)||(butt2==0)||(butt3==0)||(butt4==0))eepromflag=0;//如果2個(gè)按鍵任意一個(gè)按下,就將eeprom操作標(biāo)志清零</p><p>  if((butt1==1)&&(but

98、t2==1)&&(butt3==1)&&(butt4==1)&&(eepromflag==0))</p><p>  //松開所有按鍵后,并且eeprom操作標(biāo)志等于0,就往20、21的eeprom地址里存入下限數(shù)據(jù),實(shí)現(xiàn)斷電也保存數(shù)據(jù)</p><p><b>  {</b></p><p> 

99、 WrData(20,limit_high); //寫入上限數(shù)據(jù)</p><p>  WrData(21,limit_low); //寫入下限數(shù)據(jù)</p><p><b>  }</b></p><p>  PrintXY(0,0,"T:");</p><p>  Display

100、Three(2,0,num1); </p><p>  DisplayOneChar(5,0,0xdf); </p><p>  PrintXY(6,0,"C"); //顯示溫度</p><p>  PrintXY(0,1,"Hi:"); </p><p>  DisplayThr

101、ee(3,1,limit_high); //顯示上限</p><p>  PrintXY(7,1,"Lo:"); </p><p>  DisplayThree(10,1,limit_low); </p><p>  DisplayOneChar(14,1,0xdf); </p><p>  PrintXY(1

102、5,1,"C"); //顯示下限</p><p>  if(water_high==1)led1=0; else led1=1; //水位高燈操作</p><p>  if(water_low==1)led2=0; else led2=1; //水位低燈操作</p><p>  if(timer_state==0)o2=0;else

103、 o2=1;//定時(shí)開氧氣</p><p>  if(water_low==1)addwater=0;else addwater=1;//如果水位低 , 就加水</p><p><b>  }</b></p><p><b>  }</b></p><p>  3.3 1602液晶顯示處理程序&

104、lt;/p><p>  顯示程序模塊是水族箱控制系統(tǒng)中很重要的人機(jī)交互窗口,主要顯示系統(tǒng)的實(shí)時(shí)溫度,提供了一個(gè)良好的人機(jī)交互界面,讓人更好的了解水族箱中的環(huán)境參數(shù)。顯示處理程序包括了:液晶內(nèi)部等待函數(shù)、寫入命令或數(shù)據(jù)、顯示模塊設(shè)置、設(shè)置輸入模式模塊、初始化液晶LCD、液晶字符輸入的位置、字符輸出到液晶顯示。</p><p><b>  程序代碼如下:</b></p&

105、gt;<p>  內(nèi)部等待函數(shù)**************************************************************************</p><p>  unsigned char LCD_Wait(void)</p><p><b>  {</b></p><p><b>

106、  LcdRs=0;</b></p><p>  LcdRw=1;_nop_();_nop_();_nop_();_nop_();</p><p>  LcdEn=1;_nop_(); _nop_();_nop_();_nop_();</p><p><b>  LcdEn=0;</b></p>&

107、lt;p>  return DBPort;</p><p><b>  }</b></p><p>  ************************************************************</p><p>  #define LCD_COMMAND0 // Command</p

108、><p>  #define LCD_DATA1 // Data</p><p>  #define LCD_CLEAR_SCREEN0x01 // 清屏</p><p>  #define LCD_HOMING 0x02 // 光標(biāo)返回原點(diǎn)</p><p>  void LCD_Write(bit s

109、tyle, unsigned char input)</p><p><b>  {</b></p><p><b>  LcdEn=0;</b></p><p>  LcdRs=style;</p><p>  LcdRw=0;_nop_();_nop_();_nop_();</p>

110、;<p>  DBPort=input;_nop_();_nop_();_nop_();//注意順序</p><p>  LcdEn=1;_nop_();_nop_();_nop_();//注意順序</p><p>  LcdEn=0;_nop_();_nop_();_nop_();</p><p>  LCD_Wait();</p&

111、gt;<p><b>  }</b></p><p>  //設(shè)置顯示模式************************************************************</p><p>  #define LCD_SHOW0x04 //顯示開</p><p>  #define LCD_HID

112、E0x00 //顯示關(guān) </p><p>  #define LCD_CURSOR0x02 //顯示光標(biāo)</p><p>  #define LCD_NO_CURSOR0x00 //無光標(biāo) </p><p>  #define LCD_FLASH0x01 //光標(biāo)閃動(dòng)</p><p>

113、  #define LCD_NO_FLASH0x00 //光標(biāo)不閃動(dòng)</p><p>  void LCD_SetDisplay(unsigned char DisplayMode)</p><p><b>  {</b></p><p>  LCD_Write(LCD_COMMAND, 0x08|DisplayMode);<

114、/p><p><b>  }</b></p><p>  //初始化LCD************************************************************</p><p>  void LCD_Initial()</p><p><b>  {</b></p

115、><p><b>  LcdEn=0;</b></p><p>  LCD_Write(LCD_COMMAND,0x38); //8位數(shù)據(jù)端口,2行顯示,5*7點(diǎn)陣</p><p>  LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //開啟顯示, 無光標(biāo)</p><p&

116、gt;  LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏</p><p><b>  }</b></p><p>  void Print(unsigned char *str)</p><p><b>  {</b></p><p>  while(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論