大棚溫濕度自動(dòng)控制系統(tǒng)設(shè)計(jì) 畢業(yè)設(shè)計(jì)-
《大棚溫濕度自動(dòng)控制系統(tǒng)設(shè)計(jì) 畢業(yè)設(shè)計(jì)-》由會(huì)員分享,可在線閱讀,更多相關(guān)《大棚溫濕度自動(dòng)控制系統(tǒng)設(shè)計(jì) 畢業(yè)設(shè)計(jì)-(56頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、西華大學(xué)畢業(yè)設(shè)計(jì)說明書 大棚溫濕度自動(dòng)控制系統(tǒng)設(shè)計(jì) 摘 要:本設(shè)計(jì)是基于STC89C52RC單片機(jī)的大棚溫濕度自動(dòng)控制系統(tǒng),采用SHT10作為溫濕度傳感器,LCD1602液晶屏進(jìn)行顯示。SHT10使用類似于I2C總線的時(shí)序與單片機(jī)進(jìn)行通信,由于它高度集成,已經(jīng)包括A/D轉(zhuǎn)換電路,所以使用方便,而且準(zhǔn)確、耐用。LCD1602能夠分兩行顯示數(shù)據(jù),第一行顯示溫度,第二行顯示濕度。這個(gè)控制系統(tǒng)能夠測量溫室大棚中的溫度和濕度,將其顯示在液晶屏LCD1602上,同時(shí)將其與設(shè)定值進(jìn)行對(duì)比,如果超出上下限,將進(jìn)行報(bào)警并啟動(dòng)溫濕度調(diào)節(jié)設(shè)備。此外,還可以通過獨(dú)立式鍵盤對(duì)設(shè)定的溫濕度進(jìn)
2、行修改。通過設(shè)計(jì)系統(tǒng)原理圖、用Proteus軟件進(jìn)行仿真,證明了該系統(tǒng)的可行性。 關(guān)鍵詞:STC89C52RC,SHT10,I2C總線,獨(dú)立式鍵盤,溫濕度自動(dòng)控制 Abstract: This design is an automatic temperature and humidity controller for greenhouses, with the STC89C52RC MCU being its main controller. It uses the SHT10 as the temperature and humidity sensor, and the LCD160
3、2 to display the messages. The SHT10 uses a timing sequence much like the I2C to communicate with the micro-controller. Because it’s a highly integrated chip, it already includes an analog to digital converter. Therefore, it’s quite convenient to use, and also accurate and durable. The LCD1602 can d
4、isplay two lines of messages, with the first line for temperature and the second line for humidity. The design can measure the temperature and humidity in a greenhouse, and then display it on a LCD1602. Meanwhile, it compares the data with the set limit. If the limit is exceeded, then the system wil
5、l send out a warning using a buzzer and activate the temperature and humidity controlling equipment. Besides, the set limit can be modified with the independent keyboard. Through schematic design and Proteus simulation, the feasibility of this design has been proved. Keywords: STC89C52RC, SHT10, I2
6、C bus, independent keyboard, temperature and humidity control 目 錄 1 前言 1 2 總體方案設(shè)計(jì) 3 2.1 溫濕度控制系統(tǒng)的設(shè)計(jì)指標(biāo)要求 3 2.2 系統(tǒng)設(shè)計(jì)的原則 3 2.2.1 可靠性 3 2.2.2 性價(jià)比 3 2.3 方案比較 4 2.3.1 方案一 4 2.3.2 方案二 4 2.4 方案論證 5 2.5 方案選擇 5 3 單元模塊設(shè)計(jì) 6 3.1 各單元模塊功能介紹及電路設(shè)計(jì) 6 3.1.1 單片機(jī)最小系統(tǒng) 6 3.1.2 液晶顯示模塊 8 3.1.3 溫濕度傳感器模塊 8
7、3.1.4 報(bào)警電路的設(shè)計(jì) 9 3.1.5 輸出電路設(shè)計(jì) 10 3.1.6 電源的設(shè)計(jì) 12 3.1.7 按鍵電路設(shè)計(jì) 13 3.1.8 串口通信電路 14 3.2 元件清單 15 3.3 關(guān)鍵器件的介紹 17 3.3.1 STC89C52RC 17 3.3.2 SHT10溫濕度傳感器 19 4 系統(tǒng)軟件設(shè)計(jì) 22 4.1 軟件設(shè)計(jì)的總體結(jié)構(gòu) 22 4.2 主要模塊的設(shè)計(jì)流程框圖 24 4.2.1 主程序流程圖 24 4.2.2 SHT10子程序流程圖 25 4.2.3 LCD1602子程序流程圖 27 4.2.4 輸出控制子程序流程圖 28 4.2.5 鍵
8、盤掃描子程序流程圖 29 4.3 軟件設(shè)計(jì)所用工具 31 4.3.1 Keil uVision4 31 4.3.2 Proteus 31 5 系統(tǒng)調(diào)試 32 5.1 用Proteus搭建仿真總圖 32 5.2 用Keil對(duì)程序進(jìn)行調(diào)試、編譯 33 6 結(jié)論 36 6.1 系統(tǒng)的功能 36 6.2 系統(tǒng)的指標(biāo)參數(shù) 36 6.3 系統(tǒng)功能分析 36 7 總結(jié)與體會(huì) 38 8 致謝 39 9 參考文獻(xiàn) 40 附錄1 系統(tǒng)的電路原理圖 41 附錄2 系統(tǒng)仿真總圖 42 附錄3 系統(tǒng)實(shí)物照片 43 附錄4 系統(tǒng)源程序 44 附錄5 英文參考資料 46 1 中文翻譯
9、46 2 英文原文 49 西華大學(xué)畢業(yè)設(shè)計(jì)說明書 1 前言 溫室大棚作為一種高效的農(nóng)業(yè)生產(chǎn)方式,與傳統(tǒng)農(nóng)業(yè)生產(chǎn)方式相比具有很大的優(yōu)點(diǎn)。溫室農(nóng)業(yè)生產(chǎn)可以獲得高產(chǎn)和優(yōu)質(zhì)的蔬菜、花卉、瓜果,不僅可改變這些產(chǎn)品按自然季節(jié)供應(yīng)的模式,延長其供應(yīng)期,而且可在不同地方進(jìn)行種植,達(dá)到所謂“地不分東西南北,食不分春夏秋冬”。溫室農(nóng)業(yè)可以改變傳統(tǒng)農(nóng)業(yè)勞動(dòng)力冬閑夏忙
10、的安排,以小面積獲得高產(chǎn),減輕大面積的土地壓力。溫室農(nóng)業(yè)采用適時(shí)適量供水的優(yōu)化用水同時(shí)配以微灌和高濕環(huán)境,可達(dá)到農(nóng)業(yè)用水高效高產(chǎn),按產(chǎn)品的數(shù)量平均計(jì)算,節(jié)省水分量是很大的。這種設(shè)施系統(tǒng)可以從簡易到全自動(dòng)控制,適宜各種狀況下的選擇,特別是對(duì)于日光溫室、塑料大棚,相對(duì)投資較少。若能降低成本、采用經(jīng)久耐用的低成本采光材料,發(fā)展前景將更為廣闊,即使在一些偏遠(yuǎn)地區(qū)的農(nóng)村、場所,也可以修建單個(gè)的溫室和塑料大棚,進(jìn)行環(huán)境控制下的蔬菜和瓜果的生產(chǎn),改變這些地區(qū)的生活條件。 要想實(shí)現(xiàn)溫室大棚高效增產(chǎn)的作用,對(duì)溫濕度的準(zhǔn)確控制是極其重要的。溫室內(nèi)空氣濕度的日變化受天氣、加溫及通風(fēng)換氣量的影響,陰天或灌水后室內(nèi)空
11、氣濕度幾乎都在90%以上。晴天在傍晚關(guān)窗至次日早晨開窗前溫室維持在高濕度。室內(nèi)濕氣遇冷后凝結(jié)成水滴附著在薄膜或玻璃的內(nèi)表面上,待到加溫或日出后,室內(nèi)溫度上升,濕度逐漸下降,附著在屋頂上的水滴隨之消失。溫濕度的較大變化對(duì)農(nóng)作物的生長十分不利,研究結(jié)果表明,由于植物體內(nèi)水分不足導(dǎo)致氣孔關(guān)閉,首先妨礙了CO2的交換,而使飽和作用顯著下降,特別是在缺水狀況加劇時(shí),給細(xì)胞原生質(zhì)的生化作用帶來影響,光合作用顯著下降。而溫度在夜間下降過低也會(huì)影響光合作用的效率。 因此,非常有必要使用一套溫濕度控制系統(tǒng),以維持溫室大棚內(nèi)的溫度、濕度在一個(gè)合適的范圍,實(shí)現(xiàn)大棚內(nèi)農(nóng)作物的水分、養(yǎng)分的有效供給,提高光合作用的效率
12、,從而達(dá)到增產(chǎn)目的。 傳統(tǒng)的溫濕度控制是在溫室大棚內(nèi)部懸掛溫、濕度計(jì),通過讀取溫、濕度值進(jìn)而了解實(shí)際的溫度和濕度,然后根據(jù)現(xiàn)檢測的溫濕度與額定值進(jìn)行比較,看溫濕度是否超過限定值,然后進(jìn)行相應(yīng)的通風(fēng)或者相應(yīng)的灑水。這些操作都是人工的,耗費(fèi)了大量的人力以及物力?,F(xiàn)在,隨著國家經(jīng)濟(jì)的迅速發(fā)展,農(nóng)業(yè)產(chǎn)業(yè)規(guī)模的進(jìn)一步提高,大棚中培育出的農(nóng)產(chǎn)品品種數(shù)量的逐漸增多,對(duì)于數(shù)量較多而又大型的大棚,傳統(tǒng)的溫濕度控制措施就出現(xiàn)了局限性。這要求我們提高溫濕度檢測與控制技術(shù),來滿足對(duì)溫室大棚建設(shè)的需要。 在本設(shè)計(jì)中,采用單片機(jī)來控制溫濕度,不僅具有廉價(jià)、配置簡單和靈活的優(yōu)勢,而且可以大大提高所測溫濕度的技術(shù)指標(biāo),從
13、而可以提高產(chǎn)品的數(shù)量和質(zhì)量。單片機(jī)因?yàn)樗哂泄δ軓?qiáng)、高可靠性、體積小、造價(jià)便宜和開發(fā)周期短這些優(yōu)勢,廣泛用于自動(dòng)化測量和控制現(xiàn)場設(shè)備,特別是在日常生活中發(fā)揮的日益重要的作用。 這次選用STC89C52RC作為主控制器,可以從按鍵電路輸入設(shè)定的溫濕度,通過溫濕度傳感器SHT10對(duì)溫度、濕度信號(hào)進(jìn)行采集,然后通過I2C總線與單片機(jī)通信,并將溫濕度顯示在液晶屏LCD1602上,單片機(jī)把它們與設(shè)定的值進(jìn)行對(duì)比后決定是否報(bào)警,并啟動(dòng)空調(diào)設(shè)備對(duì)溫濕度進(jìn)行調(diào)節(jié)。 2 總體方案設(shè)計(jì) 2.1 溫濕度控制系統(tǒng)的設(shè)計(jì)指標(biāo)要求 本文要設(shè)計(jì)的大棚溫濕度自動(dòng)控制系統(tǒng),要能夠及時(shí)、準(zhǔn)確地對(duì)溫室大棚內(nèi)
14、的溫度、濕度進(jìn)行采集,將其顯示在LCD1602液晶顯示器上,然后與設(shè)定的上下限值進(jìn)行比較,如果超出限制則啟動(dòng)溫度、濕度控制設(shè)備,并通過蜂鳴器報(bào)警,直到溫濕度回到規(guī)定的范圍。另外,還要能夠通過按鍵修改設(shè)定的上下限。為了能夠滿足農(nóng)業(yè)生產(chǎn)的需要,此次設(shè)計(jì)要達(dá)到一下指標(biāo): (1)工作環(huán)境:溫室大棚; (2)溫度測量誤差:1℃; (3)測溫范圍:0~+55℃; (4)濕度測量誤差:5%RH; (5)測濕范圍:0~100%RH; (6)通過鍵盤電路修改上下限:有; (6)溫濕度報(bào)警:有; 2.2 系統(tǒng)設(shè)計(jì)的原則 2.2.1 可靠性 可靠性是在設(shè)計(jì)過程中應(yīng)該優(yōu)先考慮的一個(gè)因素,一個(gè)控制系
15、統(tǒng)必須要能穩(wěn)定、可靠地工作,才能投入到生產(chǎn)實(shí)踐中去。如果系統(tǒng)的可靠性不能達(dá)標(biāo),那么系統(tǒng)出現(xiàn)故障的可能就會(huì)增大,造成很大的損失。這種損失不僅包括經(jīng)濟(jì)上和信譽(yù)上的損失,而且可能會(huì)對(duì)人身安全產(chǎn)生威脅。 要提高控制系統(tǒng)的可靠性,那么就要注意以下幾個(gè)方面:選用的元器件要有很高的可靠性;由于供電電源很容易產(chǎn)生干擾,所以應(yīng)該對(duì)其采用抗干擾措施;對(duì)輸入輸出通道也一樣,要采用抗干擾措施;在對(duì)電路板的設(shè)計(jì)時(shí),要合理的布線和接地;軟硬件都要進(jìn)行濾波;系統(tǒng)要有自己診斷功能等。 2.2.2 性價(jià)比 性價(jià)比也是一個(gè)系統(tǒng)設(shè)計(jì)中所要考慮的重要因素。性價(jià)比高的產(chǎn)品更容易被消費(fèi)者接收,但是設(shè)計(jì)過程中不能盲目地追求性價(jià)比,它
16、應(yīng)該建立在對(duì)產(chǎn)品性能要求的基礎(chǔ)上,首先要滿足性能要求,然后再設(shè)法降低產(chǎn)品成本。 2.3 方案比較 2.3.1 方案一 采用PLC作為主控制器。 使用PLC的最大優(yōu)點(diǎn)在于PLC使用梯形圖進(jìn)行編程,編程語言形象直觀,難度較低,因此開發(fā)周期短,便于擴(kuò)展。而且PLC抗干擾能力強(qiáng),工作穩(wěn)定可靠,這一點(diǎn)已被長期的工業(yè)控制實(shí)踐所證明。 繼電器 鍵盤輸入 加熱器 制冷器 加濕器 除濕器 液晶顯示 蜂鳴器報(bào)警 溫濕度傳感器 PLC 溫 室 大 棚 圖2.1 用PLC作為主控制器的控制系
17、統(tǒng) 2.3.2 方案二 使用單片機(jī)進(jìn)行控制。 采用STC89C52RC單片機(jī)作為主控制器,可以用C語言進(jìn)行編程,由于它支持ISP在線編程,因此可以通過RS232串口將程序燒錄到單片機(jī)中,很方便。溫濕度傳感器SHT10通過I2C總線與單片機(jī)連接。 溫濕度傳感器 單片機(jī) 加熱器 制冷器 加濕器 除濕器 鍵盤輸入 蜂鳴器報(bào)警 繼電器 液晶顯示 溫 室 大 棚 圖2.2 用單片機(jī)作為主控制器的控制系統(tǒng) 2.4 方案論證 從功能上看,兩種控制器都能滿足要求。PLC在工業(yè)控制領(lǐng)域用得比較多,編程簡單
18、,而且抗干擾能力強(qiáng)。但是本系統(tǒng)是用于溫室大棚,并沒有其他大型工業(yè)設(shè)備的干擾。單片機(jī)用C語言編程,相對(duì)PLC的梯形圖要復(fù)雜得多,但是編程更為靈活,可以實(shí)現(xiàn)復(fù)雜的功能。 從價(jià)格方面上看,單片機(jī)就比PLC具有很大的優(yōu)勢。一個(gè)單片機(jī)只要幾塊錢,而一個(gè)很一般的PLC一般也要幾百上千元。另外,中國是農(nóng)業(yè)大國,隨著溫室大棚越來越普及,農(nóng)村對(duì)溫濕度控制系統(tǒng)的需求也會(huì)越來越旺盛,因此雖然用單片機(jī)開發(fā)的周期較長,但是一旦完成開發(fā),后期生產(chǎn)環(huán)節(jié)的邊際成本很小;而基于PLC的控制系統(tǒng)受制于PLC的高昂價(jià)格,價(jià)格難以降低。 2.5 方案選擇 PLC和單片機(jī)都能作為主控制器進(jìn)行設(shè)計(jì),但是在價(jià)格方面單片機(jī)具有巨大優(yōu)勢
19、。綜上所述,本次設(shè)計(jì)采用單片機(jī)作為主控制器。 3 單元模塊設(shè)計(jì) 3.1 各單元模塊功能介紹及電路設(shè)計(jì) 3.1.1 單片機(jī)最小系統(tǒng) 圖3.1 單片機(jī)最小系統(tǒng) 單片機(jī)最小系統(tǒng)包括單片機(jī)、電源電路、時(shí)鐘電路和復(fù)位電路。 時(shí)鐘電路用于產(chǎn)生單片機(jī)工作時(shí)候所必須的時(shí)鐘信號(hào),單片機(jī)在時(shí)鐘信號(hào)的節(jié)拍下逐條地執(zhí)行指令。單片機(jī)有兩種時(shí)鐘信號(hào)產(chǎn)生方式,一種是內(nèi)部時(shí)鐘方式,另一種是外部時(shí)鐘方式。外部時(shí)鐘方式是把已有的時(shí)鐘信號(hào)從XTAL1或XTAL2送入單片,一般用于有多個(gè)單片機(jī)的情況,所以本設(shè)計(jì)中時(shí)鐘電路采用內(nèi)部時(shí)鐘方式,選用12M的晶振
20、和兩個(gè)30pF的電容與片內(nèi)的高增益反相放大器構(gòu)成一個(gè)自激振蕩器。 電源電路后面的模塊中會(huì)單獨(dú)提到,用5V的直流電源。下面著重論述一下復(fù)位電路。 圖3.2 上電+手動(dòng)復(fù)位電路 單片機(jī)的復(fù)位主要有上電復(fù)位和手動(dòng)復(fù)位,之所以要進(jìn)行復(fù)位,目的就是為了讓單片機(jī)進(jìn)入初始狀態(tài),比如讓PC指向0000H,這樣單片機(jī)才能從頭運(yùn)行程序。因此上電的時(shí)候就要讓單片機(jī)復(fù)位一次;在運(yùn)行過程中,如果程序出錯(cuò),也需要進(jìn)行手動(dòng)復(fù)位。 本設(shè)計(jì)中的復(fù)位電路就是上電+手動(dòng)復(fù)位電路,復(fù)位時(shí)要讓STC89C52RC的RST引腳得到2個(gè)機(jī)器周期以上的高電平。先說說上電復(fù)位的工作原理,當(dāng)單片機(jī)上電時(shí),電源+5V的Vcc通過1
21、0K的電阻對(duì)10uF的電容進(jìn)行充電。剛上電時(shí),有較大的電流從Vcc經(jīng)電容、電阻流向GND,由于電容兩端的電壓不可突變,因此仍然為0V,于是電阻的兩端分得5V的電壓,即RST引腳此時(shí)的電勢為5V。隨著充電的繼續(xù)進(jìn)行,電流會(huì)逐漸減小,電阻兩端的電壓UR=IR也逐漸減小,即RST引腳的電勢逐漸減小。過了一定時(shí)間,RST引腳兩端的電壓下降到不再是高電平,只要這個(gè)充電的時(shí)間大于單片機(jī)兩個(gè)機(jī)器周期,就能使單片機(jī)復(fù)位。 程序運(yùn)行過程中如果跑飛了、程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),就需要用到手動(dòng)復(fù)位。手動(dòng)復(fù)位就是在上電復(fù)位電路的電容兩邊并聯(lián)一個(gè)微動(dòng)開關(guān),需要手動(dòng)復(fù)位時(shí)將其按下,使之接通,RST獲得
22、高電平,而且人按動(dòng)按鈕的時(shí)間肯定是超過兩個(gè)機(jī)器周期的,于是單片機(jī)復(fù)位。 3.1.2 液晶顯示模塊 測量到的溫濕度值將顯示到液晶屏LCD1602上,它可以顯示2行,每行16個(gè)字符。LCD1602共有三個(gè)存儲(chǔ)器,它們是CGROM、CGRAM和DDRAM。CGROM用來保存LCD1602內(nèi)部固化的一些字符的字模,比如英文的26個(gè)字母的大小寫;CGRAM用來保存用戶自己取的字模,比如,如果要顯示漢字,就必須自己去漢字字模,在這里我們都用英語字母,故不用CGRAM;DDRAM用來存儲(chǔ)要顯示的字符的字模,它和屏幕上的位置是對(duì)應(yīng)的,第一行為00H到0FH,第二行為40H到4FH。在這里需要注意的是,在向
23、LCD1602寫入顯示數(shù)據(jù)存儲(chǔ)器地址時(shí),根據(jù)控制指令的格式,最高位D7為1,所以寫入的數(shù)據(jù)為,第一行80H到8FH,第二行C0H到CFH。 它與單片機(jī)的接口電路如下圖所示: 圖3.3 LCD1602與單片機(jī)的接口電路 3.1.3 溫濕度傳感器模塊 溫濕度傳感器選用瑞士Sensirion公司生產(chǎn)的SHT10。SHT1X系列共有三個(gè)型號(hào):SHT10、SHT11、SHT15,他們都是SMD貼片封裝的,他們依次性能越來越好,其中SHT10屬于經(jīng)濟(jì)型的溫濕度傳感器。三者的溫濕度性能如下圖所示。 圖3.4 SHT1X系列各型號(hào)傳感器的濕度、溫度最大誤差 從曲線中可
24、以看出,無論是濕度還是溫度,SHT10的誤差都是最大的,SHT15誤差最小,但是它們的價(jià)格也相差很大,SHT10多為二三十元一個(gè),而SHT15價(jià)格上百。因此,從滿足大棚溫濕度監(jiān)測的要求來看,SHT10已經(jīng)足夠,故選用SHT10。 SHT10與單片機(jī)的接口電路如下所示: 圖3.5 SHT10與單片機(jī)的接口電路 SHT10采用類似于I2C的兩線制串行總線,一根是時(shí)鐘線,一根是數(shù)據(jù)線。數(shù)據(jù)線要通過一個(gè)上拉電阻接到VCC,目的是避免信號(hào)沖突,使單片機(jī)的引腳只提供低電平,要得到高電平則使該引腳懸空,由上拉電阻提供高電平。 3.1.4 報(bào)警電路的設(shè)計(jì) 當(dāng)大棚內(nèi)的溫濕度超過上下限時(shí),除了需要
25、啟動(dòng)溫濕度調(diào)節(jié)器之外,還需要進(jìn)行報(bào)警,這里用到的是蜂鳴器。蜂鳴器為一種采用一體化結(jié)構(gòu)的電子器件, 采用了直流電壓來供電,廣泛的應(yīng)用到了計(jì)算機(jī)、報(bào)警器、復(fù)印機(jī)、電子玩具、電話機(jī)、汽車電子設(shè)備、定時(shí)器等電子產(chǎn)品之中用作發(fā)聲器。 蜂鳴器分為有源蜂鳴器和無源蜂鳴器。有源蜂鳴器由于內(nèi)部集成了振蕩源,所以使用直流電壓就可以驅(qū)動(dòng)它鳴叫;無源蜂鳴器內(nèi)部沒有振蕩源,因此一般使用2K~5K方波來驅(qū)動(dòng)。本設(shè)計(jì)中使用的是有源蜂鳴器,在它兩端加載5V的直流電壓就可以使之鳴叫。 報(bào)警電路設(shè)計(jì)如下圖: 圖3.6 報(bào)警電路圖 蜂鳴器工作電流一般為10mA,而單片機(jī)的I/O口只能承受幾毫安的電流,因此需要加三
26、極管進(jìn)行驅(qū)動(dòng)。如上圖所示,單片機(jī)的I/O口中的P1.6接PNP型三極管的基極,當(dāng)P1.6為低電平時(shí),三極管導(dǎo)通,5V的電壓加載到蜂鳴器兩端,于是蜂鳴器鳴叫;當(dāng)P1.6高電平時(shí),三極管截至,蜂鳴器不鳴叫。 3.1.5 輸出電路設(shè)計(jì) 當(dāng)溫濕度超出限定值后,單片機(jī)將輸出控制信號(hào),啟動(dòng)加熱、制冷、加濕、除濕設(shè)備。弱電控制強(qiáng)電,首先要用到繼電器來控制這些大功率的設(shè)備,而且為了進(jìn)一步加強(qiáng)弱電和強(qiáng)電的電氣隔離,減少強(qiáng)電設(shè)備對(duì)單片機(jī)控制系統(tǒng)的干擾,需要在前一級(jí)加光耦進(jìn)行隔離。光耦的驅(qū)動(dòng)能力有限,一般電流只能達(dá)到30mA左右,不足以驅(qū)動(dòng)繼電器,因此再加一個(gè)三極管放大電流。 原理如圖3.7所示: 圖3
27、.7 控制電路 輸出電路有四組,每一組由一個(gè)光耦、一個(gè)三極管、一個(gè)繼電器組成。這四組輸出電路分別控制加濕、除濕、加熱、制冷的設(shè)備。 光耦選用TLP521-4,它是Toshiba公司生產(chǎn)的四路光耦,由單片機(jī)直接驅(qū)動(dòng)。51單片機(jī)P0口所能承受的灌電流最大,可以達(dá)到26mA。輸出系統(tǒng)中的繼電器最多同時(shí)有兩個(gè)工作,控制溫度的一個(gè),控制濕度的一個(gè)。如果設(shè)置光耦的發(fā)光二極管的電流為10mA,那么兩個(gè)發(fā)光二極管同時(shí)導(dǎo)通時(shí)單片機(jī)的灌電流為20mA,小于26mA,符合要求。所以把P0口的引腳接到光耦TLP521-4輸入測的發(fā)光二極管陰極。 繼電器選用5V的,驅(qū)動(dòng)繼電器需要大約100mA的電流,也就是說驅(qū)動(dòng)
28、繼電器的三極管的集電極電流為Ic=100mA。三極管選用直流放大系數(shù)為100的9013,根據(jù)Ic=βIb,可計(jì)算得三極管基極電流Ib=1mA,而Vbe=0.7V,又由于光耦中的光電三極管的集電極、發(fā)射極飽和壓降Vces=0.3V,所以基極的限流電阻上的壓降為(5-Vces-Vbe)=4V,4V/0.001A=4KΩ,由于沒有標(biāo)稱值為4KΩ的電阻,所以選擇4.7KΩ的。 還應(yīng)該注意到的一點(diǎn)是,光耦有一個(gè)參數(shù)叫電流傳輸比(CTR),CTR=Io/IF,及輸出端電流的最大值比上輸入端的電流,體現(xiàn)了光耦輸出電流的能力。如果輸入端的電流為20mA,電流傳輸比為50%的話,那么輸入端電流Io最大只能為1
29、0mA。在這里,TLP521-4的電流傳輸比為50%,輸出端我們剛才算出的電流Io=Ib=1mA,所以輸入端電流IF最小為2mA,由于電流很小時(shí)光耦處于死區(qū),因此要選大點(diǎn),這里選擇IF=10mA。于是,光耦輸入端陽極上的限流電阻為R=(5V-0.7V)/0.01A=430Ω,這里選擇標(biāo)稱值為470Ω的電阻。 此外,這里用的繼電器是普通的電磁繼電器。通過對(duì)電磁繼電器和固態(tài)繼電器進(jìn)行比較,雖然固態(tài)繼電器具有無觸電、動(dòng)作速度快、使用壽命長等特點(diǎn),但是本設(shè)計(jì)中的繼電器只在溫濕度超過限定值時(shí)才動(dòng)作,動(dòng)作頻率低,而且固態(tài)繼電器的價(jià)格比電磁繼電器高得多,所以綜合考慮選擇電磁繼電器SRD一05VDC一SL-
30、C。 3.1.6 電源的設(shè)計(jì) 圖3.8 電源電路 電源電路是整個(gè)系統(tǒng)中非常重要的一部分,本設(shè)計(jì)中主要用到直流5V電源。要得到5V的直流電源,要經(jīng)過降壓、整流、濾波、穩(wěn)壓四個(gè)環(huán)節(jié)。 由于最后的穩(wěn)壓環(huán)節(jié),LM7805要得到5V的直流輸出,輸入與輸出要有一定的壓差,根據(jù)LM7805的數(shù)據(jù)手冊,需要有10V的輸入,因此在降壓環(huán)節(jié)把220V的電壓降為10V。 然后用橋式整流電路把交流電整流為直流電,此時(shí)的直流電只是方向不變,但仍按正弦方式變化,是脈動(dòng)的直流電。 因此需要濾波電路將紋波濾掉。C8和C2都用來濾波,但是作用是不一樣的。C8是大電容,用電解電容,它的作用是低頻濾波,通過充電放電
31、,從而削峰填谷,使電壓的脈動(dòng)成分減少,電壓基本保持穩(wěn)定。而C2是小電容,所以對(duì)于高頻信號(hào)容抗很小,相當(dāng)于短路,從而濾掉高頻信號(hào)。 需要注意的是,470uF的大電容可以濾低頻,為什么不能濾高頻,還要單獨(dú)加一個(gè)0.33uF的小電容來濾高頻?從理論上來說大電容應(yīng)該高頻、低頻都可以,但是由于制造工藝的原因,電解電容的容值做得很大時(shí),它就不再是一個(gè)單純的電容了,它等效于一個(gè)電容串聯(lián)一個(gè)電感。在頻率較低時(shí),電感L=jwl較小,可以忽略不計(jì),但是當(dāng)頻率很高時(shí),感抗就很大,相當(dāng)于斷路,所以此時(shí)這個(gè)470uF的大電容不能濾掉高頻信號(hào),必須單獨(dú)加一個(gè)小電容。小電容容值小,因此就不存在感抗的問題。 濾波完以后,
32、電壓的脈動(dòng)成分已經(jīng)下降了很多,但是仍有起伏,所以最后還需加上一個(gè)三端集成穩(wěn)壓器,這里選用LM7805,它能將電壓穩(wěn)定在5V。并聯(lián)在LM7805兩端的二極管起保護(hù)作用,避免在短路等情況下LM7805輸出端的電壓比輸入端高,從而燒壞LM7805。三端集成穩(wěn)壓器后面又接了一大一小兩個(gè)電容,再次進(jìn)行濾波,使電壓更穩(wěn)定。 3.1.7 按鍵電路設(shè)計(jì) 圖3.9 按鍵電路圖 鍵盤分為編碼式和非編碼式鍵盤。其中,非編碼式鍵盤又包括矩陣式鍵盤和獨(dú)立式鍵盤。矩陣式鍵盤較為復(fù)雜,一般用于按鍵數(shù)目較多,而單片機(jī)可用的I/O口又比較有限時(shí)。本控制系統(tǒng)中只需要用到5個(gè)按鍵,數(shù)目較少,并
33、且可用的I/O口充足,故采用獨(dú)立式鍵盤,一個(gè)按鍵對(duì)應(yīng)一個(gè)單片機(jī)的I/O口管腳。 本設(shè)計(jì)中總共用到5個(gè)按鍵式開關(guān),他們用來改變設(shè)定的溫濕度上下限數(shù)值。從S0到S4,分別控制進(jìn)入溫度上下限設(shè)置、進(jìn)入濕度上下限設(shè)置、數(shù)值加、數(shù)值減、確認(rèn)并退出。 本設(shè)計(jì)中的鍵盤是低電平有效。未按鍵時(shí),上拉電阻保證了單片機(jī)的I/O口是確定的高電平;當(dāng)某個(gè)鍵按下時(shí),I/O口變?yōu)榈碗娖健? 3.1.8 串口通信電路 串口通信可分為同步通信和異步通信,在單片機(jī)的應(yīng)用系統(tǒng)中,主要是采用異步串行通信。在設(shè)計(jì)通信接口時(shí),應(yīng)該采用標(biāo)準(zhǔn)接口,這樣才能夠方便而又準(zhǔn)確的把單片機(jī)和外設(shè)有機(jī)的連接起來,從而能形成一個(gè)測控系統(tǒng),目前異步串
34、口通信標(biāo)準(zhǔn)有RS一232、RS一422、RS一485標(biāo)準(zhǔn)。 其中,RS一232是PC機(jī)與通信工業(yè)中使用最早的一種串行接口標(biāo)準(zhǔn)。在短距離、較低波特率串行通信中得到了廣泛應(yīng)用。要讓單片機(jī)和PC機(jī)通過串口進(jìn)行通信,需要進(jìn)行電平轉(zhuǎn)換,因?yàn)楸M管單片機(jī)有串行通信的功能,但單片機(jī)提供的TTL電平和RS232的電平不一樣。TTL電平中,電壓小于0.8V為低電平,高于2.4V為高電平;而RS232電平是負(fù)邏輯電平,電壓在-3V~-15V時(shí)為高電平,電壓在3V~15V時(shí)為低電平,因此要通過MAX232這種電平轉(zhuǎn)換芯片進(jìn)行轉(zhuǎn)換。 MAX232是MAXIM公司專為RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,使用
35、+5V電源供電。適用于終端設(shè)備和數(shù)據(jù)通信設(shè)備間的接口,對(duì)于雙向通信,只需要使用串行輸入RXD(引腳2),串行輸出TXD(引腳3)和地線GND(引腳5)。 其電路連接如圖3.10所示; 圖3.10 串口通信電路 MAX232芯片內(nèi)部有一個(gè)電源電壓變換器,能夠把輸入的+5V電壓變換為RS232輸出電平所需的+10V 電壓,采用此芯片接口的串行通信系統(tǒng)值需要接+5V電壓即可。 MAX232芯片中有兩組電平轉(zhuǎn)換的引腳,我們這里只需使用其中一組。打頭的字母“T”表示TTL電平,“R”表示RS232電平。R1IN和R2IN表示輸入RS232電平,因此與電腦的串口相連;T1IN和T2IN表示輸入
36、TTL電平,因此與單片機(jī)相連。所以,引腳T1IN、T2IN、R1OUT、R2OUT為接TTL∕CMOS電平的引腳,引腳T1OUT、T2OUT、R1IN、R2IN為接RS232電平的引腳。 MAX232芯片專門為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的接口電路,使用+5v單電源供電。MAX232就是用來進(jìn)行電平轉(zhuǎn)換的,該器件包含2驅(qū)動(dòng)器、2接收器和一個(gè)電壓發(fā)生器電路提供EIA/TIA-232-E電平??梢苑謩e接單片機(jī)的串行通信口。MAX232是一種雙組驅(qū)動(dòng)器/接收器,片內(nèi)含有一個(gè)電容性電壓發(fā)生器以便在單5V電源供電時(shí)提供EIA/TIA-232-E電平。 3.2 元件清單 本次設(shè)計(jì)
37、需要用到的元器件如下表所示: 表3.1 所需元件列表 元件 型號(hào) 個(gè)數(shù) 單片機(jī) STC89C52RC 1 顯示屏 LCD1602 1 溫濕度傳感器 SHT10 1 芯片底座 DIP40 1 光耦 TLP521-4 1 排針 10針 10 杜邦線 20 二極管 1N4007 4 三極管 9012 1 三極管 9013 4 電阻 10K 2 電阻 4.7K 9 電阻 1K 1 電阻 470 4 電位器 15K 1 瓷片電容 1uF 5 瓷片電容 0.1uF 1 點(diǎn)解電容 10uF
38、 1 瓷片電容 30pF 2 電平轉(zhuǎn)換芯片 MAX232 1 串口母頭 DB9 1 電平轉(zhuǎn)換芯片 MAX232 1 USB母座 1 晶振 12MHz 1 自鎖開關(guān) 6*6*5 1 按鍵開關(guān) 6*6*5 6 蜂鳴器 1 繼電器 SRD一05VDC一SL-C 4 3.3 關(guān)鍵器件的介紹 3.3.1 STC89C52RC STC89C52RC單片機(jī)是宏晶科技推出的新一代高速/低功耗/超強(qiáng)抗干擾的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī)12時(shí)鐘/機(jī)器周期和6時(shí)鐘/機(jī)器周期可以任意選擇。 ① STC89C52RC的主要性能參數(shù)
39、(1)增強(qiáng)型8051單片機(jī),6時(shí)鐘/機(jī)器周期和12時(shí)鐘/機(jī)器周期可以任意選擇,指令代碼與傳統(tǒng)8051單片機(jī)是兼容的。 (2)通用I/O口(32個(gè)):P1/P2/P3是準(zhǔn)雙向口/弱上拉,P0口是漏極開路輸出,作為總線擴(kuò)展用時(shí),不用加上拉電阻,作為I/O口用時(shí),需加上拉電阻。 (3)ISP(在線編程)/IAP(在應(yīng)用可編程):可通過串口下載程序,不需要使用專門的下載器,非常方便快捷。 (4)內(nèi)含8KB的程序存儲(chǔ)器,1000次寫∕擦寫周期; (5)內(nèi)含512字節(jié)的RAM; (6)32個(gè)可編程I/O口線; (7)3個(gè)16位定時(shí)器/計(jì)數(shù)器,即定時(shí)器 T0、T1、T2 (
40、8)6個(gè)中斷源、5個(gè)中斷矢量、2級(jí)優(yōu)先權(quán)的中斷結(jié)構(gòu); (9)具有一個(gè)全雙工UART串行通道; (10)掉電模式和低功耗空閑; ② STC89C52RC主要引腳功能 STC89C52RC的管腳排列如圖2一2所示: 圖3.11 STC89C52RC引腳圖 P0口(P0.0~P0.7): P0端口(P0.0~P0.7,39~32 引腳):P0口是一個(gè)漏極開路的8位雙向I/O 口。作為輸出端口,每個(gè)引腳能驅(qū)動(dòng)8個(gè)TTL負(fù)載,對(duì)端口P0寫入每個(gè)引腳能驅(qū)動(dòng)寫入“1”時(shí),可以作為高阻抗輸入。在訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí) 在訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也可以提供低8位地址和8位數(shù)據(jù)的復(fù)
41、用總線位數(shù)據(jù)的復(fù)用總線。在進(jìn)行程序校驗(yàn)的時(shí)候,輸出指令字節(jié);而在Flash ROM 編程時(shí),接收指令字節(jié)。 P1口(P1.0~P1.7): P1端口(P1.0~P1.7,1~8 引腳):P1口是一個(gè)8位雙向I/O口,內(nèi)部已經(jīng)自帶有一個(gè)幾十K的上拉電阻。對(duì)端口寫入“1”時(shí),該引腳被懸空,由內(nèi)部的上拉電阻把引腳拉到高電平,這時(shí)候可以作為輸入口使用,此時(shí),因?yàn)閮?nèi)部自帶上拉電阻,所以被外部器件拉低電壓的引腳會(huì)輸出一個(gè)電流。P1的輸出緩沖器可驅(qū)動(dòng)4個(gè)TTL邏輯門。 P2 口(P2.0~P2.7): P2和P1一樣,是一個(gè)8 位雙向I/O口,內(nèi)部自帶上拉電阻。。端口進(jìn)行寫“1”時(shí),該管腳被懸空,
42、由內(nèi)部自帶的上拉電阻將電平拉到高電平。當(dāng)它被當(dāng)作輸入口使用時(shí),因?yàn)閮?nèi)部自帶上拉電阻,該引腳在被外部元器件拉低電平的時(shí)侯會(huì)有電流輸出。在對(duì)程序存儲(chǔ)器(ROM)或16位的外部數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口會(huì)送出一個(gè)高8位地址數(shù)據(jù)。在進(jìn)行訪問8 位地址的外部數(shù)據(jù)存儲(chǔ)器的時(shí)侯,P口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中P2寄存器內(nèi)容),在整個(gè)訪問期間不改變。它的輸出緩沖級(jí)可以驅(qū)動(dòng)4個(gè)TTL邏輯門 P3口(P3.0~P3.7): P3口,和P1、P2一樣,是一個(gè)8 位雙向I/0 口,內(nèi)部自帶弱上拉。對(duì)P3口進(jìn)行寫入“l(fā)”時(shí),被內(nèi)部的上拉電阻拉高且可以作為一個(gè)輸入端口。作輸入端口時(shí),被外部元器件拉
43、低電平的P3口將通過上拉電阻提供電流。P3口除了作為一個(gè)一般的I/0口線外,它的第二功能有更重要的用途。P3口輸出緩沖級(jí)可用來驅(qū)動(dòng)4個(gè)TTL邏輯門。 RST:復(fù)位輸入端。在震蕩期穩(wěn)定有效運(yùn)行情況下,RST端維持兩個(gè)機(jī)器周期的高電平,便可復(fù)位器件。 ∕PSEN:外部程序存儲(chǔ)器的選通信號(hào)。低電平有效,在片外程序存儲(chǔ)器取指期間,當(dāng)∕PSEN有效時(shí),程序存儲(chǔ)器的內(nèi)容將會(huì)被送至P0口,在訪問外部RAM時(shí),∕PSEN無效。 ∕EA∕VPP:當(dāng)∕EA保持低電平時(shí),則在此期間外部存儲(chǔ)器(0000H~FFFH),不論是否有內(nèi)部程序存儲(chǔ)器。 VCC:電源電壓。 XTALI:單芯片系統(tǒng)時(shí)鐘的反向放大器輸入
44、端。使用外部振蕩器時(shí),連接外部石英晶體和微調(diào)電容。 XTAL2:系統(tǒng)時(shí)鐘的反向放大器輸出端。當(dāng)使用片內(nèi)振蕩器時(shí),外部接石英晶體和微調(diào)電容。 3.3.2 SHT10溫濕度傳感器 SHT10是瑞士Sensirion公司推出的超小型、自校型、高精度、多功能式的智能傳感器,采用SMD貼片封裝。SHT10溫濕度傳感器品質(zhì)卓越,具有很明顯的優(yōu)點(diǎn),如抗干擾能力強(qiáng)、反應(yīng)快等。傳感器在一塊微型電路板上集成了信號(hào)處理電路和傳感元件,由于自帶ADC,所以輸出數(shù)字信號(hào)。傳感器采用瑞士Sensirion公司持有專利的CMOSens 技術(shù),因此有極高的穩(wěn)定性、準(zhǔn)確性、靠性性。SHT10包含一個(gè)電容性聚合體濕敏器件、
45、一個(gè)基于能隙材料的溫度測量元件。 SHT10可以用來測量相對(duì)濕度、溫度和露點(diǎn)等參數(shù)。這類智能傳感器廣泛用于工農(nóng)業(yè)生產(chǎn)、環(huán)境監(jiān)測、通風(fēng)及空調(diào)設(shè)備等領(lǐng)域。 SHT10的主要性能參數(shù)如下: (1)采用兩線制數(shù)字接口,類似于I2C總線的時(shí)序; (2) 測量溫濕度的范圍廣。濕度測量范圍為0~100%RH,溫度測量范圍為-40~123.8℃; (3) 測量精度較高,溫度的測量誤差為0.5℃,濕度的測量誤差為4.5%RH; (4) 濕度值分辨率為14位,溫度值輸出分辨率為12位,并可以變成12位和8位; (5)將溫濕度傳感器、信號(hào)放大器、A/D轉(zhuǎn)換、IC總線接口全部集成于一個(gè)芯片; (6)
46、小體積,可表面貼裝; (7)具有可靠的CRC數(shù)據(jù)傳輸校驗(yàn)功能; (8)片內(nèi)裝載的校準(zhǔn)系數(shù)可保證100%互換性; (9)電流消耗低,測量時(shí)550A,平均28A,休眠時(shí)3A; (10)可給出全校準(zhǔn)相對(duì)濕度計(jì)溫度值輸出; (11)具有漏點(diǎn)值計(jì)算輸出功能; 電源引腳(VDD),SHT10的供電電壓為2.4~5.5V,這里選擇5V;在電源引腳(VDD,GND)之間須加一個(gè)100nF的電容,用于去耦濾波。(串行輸入(SCK),用于微處理器與SHT10之間的同步通信;串行數(shù)據(jù)(DATA),用于三態(tài)門的數(shù)據(jù)讀取,DATA在SCK時(shí)鐘下降沿后會(huì)發(fā)生狀態(tài)改變,并且在SCK時(shí)鐘為上升沿時(shí)有效。也就是微控
47、制器可在SCK為高電平段去讀取有效的數(shù)據(jù)。在微控制器向SHT10進(jìn)行數(shù)據(jù)傳送的過程中,必須要保證數(shù)據(jù)線在時(shí)鐘線為高電平段時(shí)穩(wěn)定。為了避免發(fā)生信號(hào)沖突,微控制器僅僅把數(shù)據(jù)線拉低,在需輸出高電平時(shí),微控制器會(huì)將引腳置成高阻態(tài),由外部上拉電阻把信號(hào)拉為高電平,這里選擇10KΩ。 SHT10在使用時(shí),在數(shù)據(jù)線上用一組“啟動(dòng)傳輸”的時(shí)序來表示初始化數(shù)據(jù)傳輸。包括:當(dāng)SCK時(shí)鐘為高電平的時(shí)侯,DATA翻轉(zhuǎn)至低電平,緊接著SCK變成低電平,隨后在SCK時(shí)鐘為高電平的時(shí)侯DATA翻轉(zhuǎn)為高電平。后續(xù)的命令包含3個(gè)地址(目前支持“000”)和5個(gè)命令位,具體命令集見表4。SHT10會(huì)用下述來方式表示已經(jīng)正確接受
48、到了指令:在第8個(gè)SCK的時(shí)鐘下降沿后,將DATA下拉至低電平(ACK位);在第9個(gè)SCK的時(shí)鐘下降沿后,釋放DATA(恢復(fù)為高電平)。 表3-2 SHT10的命令集 命令 代碼 預(yù)留 0000x 溫度測量 00011 濕度測量 00101 讀狀態(tài)寄存器 00111 寫狀態(tài)寄存器 00110 預(yù)留 0101x~1110x 軟復(fù)位,復(fù)位接口、清空狀態(tài)寄存器為默認(rèn)值,下一個(gè)命令前等待至少11ms 11110 根據(jù)上表的命令集,SHT10測量時(shí),發(fā)布測量命令(‘00000101’表示的是相對(duì)濕度RH,‘00000011’ 表示的是溫度T)后,控制器等待
49、測量停止后。此過程大約需要11、55、210ms,分別會(huì)對(duì)應(yīng)8、12、14位的測量。確切時(shí)間與內(nèi)部的晶振速度有關(guān),最多會(huì)有15%的變化。SHT10通過下拉DATA變?yōu)榈碗娖?,表示測量已結(jié)束??刂破髟谟|發(fā)SCK時(shí)鐘前,必須要等待“數(shù)據(jù)備妥”的信號(hào)。接著會(huì)傳輸2個(gè)字節(jié)的測量數(shù)據(jù)以及1個(gè)字節(jié)的CRC奇偶校驗(yàn)。uC需要用下拉DATA為低電平,來確認(rèn)每個(gè)字節(jié)。全部數(shù)據(jù)會(huì)從MSB開始,右值有效(例如:對(duì)于12位數(shù)據(jù),從第5個(gè)SCK時(shí)鐘起算作MSB;而對(duì)于8位數(shù)據(jù),首字節(jié)則無意義)。 4 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)的工作流程是,操作人員在計(jì)算機(jī)上輸入需要設(shè)定的溫濕度限定值,當(dāng)
50、設(shè)定的溫濕度值與檢測溫濕度值不同時(shí),單片機(jī)控制系統(tǒng)則會(huì)采取相應(yīng)的調(diào)節(jié)動(dòng)作。此程序流程包括五個(gè)部分,第一部分是主程序,其描述總體結(jié)構(gòu);第二部分是SHT10溫度采集程序,其功能是通過SHT10傳感器采集溫濕度值,并進(jìn)行修正;第三部分是LCD1602顯示子程序,對(duì)LCD1602進(jìn)行初始化,將溫濕度進(jìn)行顯示;第四部分是輸出控制子程序,對(duì)設(shè)定值和實(shí)際值進(jìn)行判斷以決定是否進(jìn)行溫濕度的調(diào)節(jié);第五部分是按鍵輸入電路,用來修改溫濕度上下限值。 4.1 軟件設(shè)計(jì)的總體結(jié)構(gòu) 本次設(shè)計(jì)的大棚溫濕度自動(dòng)控制系統(tǒng)由一個(gè)主程序調(diào)用多個(gè)子程序,它們包括SHT10溫濕度采集子程序、LCD1602液晶顯示子程序、輸出控制子程
51、序、鍵盤掃描子程序,如下圖所示: 主程序 SHT10溫濕度采集子程序 LCD1602 液晶屏顯示子程序 輸出控制子程序 鍵盤掃描子程序 圖4.1 程序總體結(jié)構(gòu) 主程序主要就是調(diào)用各個(gè)子程序的C語言文件中定義的函數(shù),實(shí)現(xiàn)SHT10、LCD1602初始化等操作,然后測量溫濕度,調(diào)用函數(shù)對(duì)數(shù)據(jù)進(jìn)行處理,最后進(jìn)行顯示并輸出控制信號(hào)。 在Keil工程中編寫程序的時(shí)候,為了讓整個(gè)工程看起來?xiàng)l理清晰,要按照各個(gè)模塊分別新建C文件寫子程序。某個(gè)C文件要調(diào)用其它C文件中的函數(shù)時(shí),要在當(dāng)前C語言文件
52、中先進(jìn)行聲明,然后再調(diào)用,或者也可以把每個(gè)C文件中定義的函數(shù)都寫到相同名字下的.h頭文件中,其他C文件要調(diào)用該函數(shù)時(shí)要在前面加上#include <*.h>,將頭文件包括進(jìn)來。對(duì)于變量也是如此,如果某個(gè)變量也在其他C文件中使用,那么要在一個(gè)C文件總將它定義為全局變量,即在函數(shù)外面定義。其他C文件要使用該變量時(shí),要先使用extern將全局變量的作用域擴(kuò)展到本C語言文件。 4.2 主要模塊的設(shè)計(jì)流程框圖 4.2.1 主程序流程圖 Yes 是否超限? 將溫濕度與設(shè)定值比較 啟動(dòng)溫濕度調(diào)節(jié)設(shè)備 對(duì)溫濕度數(shù)據(jù)進(jìn)行修正 No 在液晶屏上顯示溫濕度 測量溫濕度 是否有按鍵?
53、 初始化LCD1602 Yes 開始 進(jìn)入鍵盤掃描子程序 SHT10復(fù)位 No 圖4.2 主程序流程圖 4.2.2 SHT10子程序流程圖 開始 發(fā)送啟動(dòng)時(shí)序 發(fā)送控制字 接收數(shù)據(jù) 測量結(jié)束? 接收校驗(yàn)位 結(jié)束 No Yes 圖4.3 SHT10子程序流程圖 溫濕度傳感器SHT10使用類似于I2C總線的時(shí)序與單片機(jī)通信,由于51單片機(jī)沒有I2C接口,所以需要
54、編寫程序,用單片機(jī)的某兩個(gè)I/O口管腳模擬I2C總線的時(shí)序,從而與SHT10通信。 SHT10有4種時(shí)序:啟動(dòng)傳輸時(shí)序、寫字節(jié)時(shí)序、讀字節(jié)時(shí)序及復(fù)位時(shí)序。復(fù)位時(shí)序和啟動(dòng)傳輸時(shí)序可通過依次拉低或拉高時(shí)鐘線和數(shù)據(jù)線,因而實(shí)現(xiàn)起來比較簡單;而寫時(shí)序和讀時(shí)序就比較復(fù)雜。寫時(shí)序用來發(fā)送控制字,即發(fā)送命令,測量結(jié)束后,發(fā)出讀時(shí)序讀回測量數(shù)據(jù)。向SHT10的8個(gè)數(shù)據(jù)位的寫入,于第9個(gè)時(shí)鐘周期之后,讀取應(yīng)答位,應(yīng)答位為0時(shí),表示SHT10正確接收。SHT10讀寫數(shù)據(jù)的規(guī)則是:在時(shí)鐘線的下降沿之后數(shù)據(jù)線改變狀態(tài),并在時(shí)鐘線的上升沿有效。 4.2.3 LCD1602子程序流程圖 開始 LCD1602初始
55、化 設(shè)置首行數(shù)據(jù)指針 寫入首行字符 設(shè)置第二行數(shù)據(jù)指針 寫入第二行字符 結(jié)束 圖4.4 LCD1602子程序流程圖 4.2.4 輸出控制子程序流程圖 開始 返回主程序 溫度、濕度是否超出上下限? 啟動(dòng)溫濕度調(diào)節(jié)設(shè)備 蜂鳴器報(bào)警 溫濕度是否回到限定值內(nèi)? 停止報(bào)警 停止溫濕度控制設(shè)備 溫濕度是否留有足夠的裕量? 結(jié)束 No Yes Yes Yes No No
56、 圖4.5 輸出控制子程序 4.2.5 鍵盤掃描子程序流程圖 開始 退出鍵盤子程序 延時(shí)10ms 退出鍵盤子程序 上限或下限加一或減一 P2.3或P2.4是否按下? No P2.3或P2.4是否仍被按下? Yes Yes No P2.5或P2.6是否按下? P2.5或P2.6是否按下? Yes No 圖4.6 Yes No 鍵盤掃描子程序 為了防止抖動(dòng),按鍵電路中都要消抖的措施,本設(shè)計(jì)中是采用的軟件消
57、抖,在單片機(jī)檢測到某個(gè)鍵按下后,延時(shí)10ms再監(jiān)測,如果仍然按下,才視為按下了該鍵。 S0、S1、S2、S3、S4分別對(duì)應(yīng)單片機(jī)的P2.3-P2.7引腳。按下S0,也就是使P2.3為低電平時(shí),進(jìn)入溫度上限的設(shè)置,再按一次進(jìn)入溫度下線的設(shè)置;按下S1,進(jìn)入濕度上限的設(shè)置,再按一下進(jìn)入溫度下線的設(shè)置。在每個(gè)設(shè)置里面,按S2增加限值,按S3減小限值。設(shè)置好以后,按S4退出設(shè)置。 4.3 軟件設(shè)計(jì)所用工具 4.3.1 Keil uVision4 本次設(shè)計(jì)采用Keil uVision4來編寫C語言程序,通過它的編譯器進(jìn)行編譯、連接,最后將生成的機(jī)器碼下載到單片機(jī)上。 Keil編譯器是目前
58、最流行的單片機(jī)開發(fā)的軟件,它是美國Keil Software公司開發(fā)的C語言開發(fā)系統(tǒng)。它提供了一個(gè)完整的開發(fā)方案,包括宏匯編、C編譯器、庫管理、連接器和一個(gè)功能強(qiáng)大的仿真調(diào)試器等,通過一個(gè)集成開發(fā)環(huán)境將這些部份組合在一起。 Keil C51整合了豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具。此外,Keil C51生成的目標(biāo)代碼效率非常高,這一點(diǎn)從生成的匯編語言就可以看出,大多生成的匯編語句很緊湊,容易理解。 4.3.2 Proteus Proteus用來對(duì)電路進(jìn)行仿真,它的功能強(qiáng)大,包括單片機(jī)在內(nèi)的眾多元器件都可以仿真。把Keil編譯、連接后生成的hex文件導(dǎo)入Proteus單片機(jī)中即可對(duì)單
59、片機(jī)進(jìn)行仿真。 Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件,它不僅具有其它EDA軟件的仿真功能,還可以對(duì)單片機(jī)及其外圍器件進(jìn)行仿真,是目前在這方面做得最好的EDA工具軟件。Proteus在國內(nèi)已受到眾多單片機(jī)開發(fā)者的喜愛。Proteus實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì),可以實(shí)現(xiàn)從原理圖繪制和代碼調(diào)試到單片機(jī)與其外圍電路仿真,一鍵切換到印刷電路板的設(shè)計(jì)。目前世界上只有Proteus做到了將電路仿真、印刷電路板設(shè)計(jì)和虛擬模型仿真整合到一個(gè)設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、AVR、ARM、8086和MSP430、PIC10/12/16/18/
60、24/30/DsPIC33等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。 5 系統(tǒng)調(diào)試 5.1 用Proteus搭建仿真總圖 打開Proteus ISIS,在 Proteus ISIS 編輯窗口中單擊元件列表之上的“P”按鈕 ,添加元件及放置元件。得到界面如圖5.1 圖5.1元器件的選擇 選好元器件后,要對(duì)元器件進(jìn)行一個(gè)重新的布局,使之看起來很清晰,并且所占面積較小。若想移動(dòng)某個(gè)元件或多個(gè),單擊其元件,待其顏色變紅后,在按下鼠標(biāo)左鍵不放,即可
61、拖動(dòng)元件。 為了使仿真圖看起來更整潔,我們部分電路連線選擇連線標(biāo)簽?zāi)J?,以單片機(jī)19引腳為例,將其用線引出,如然后再點(diǎn)擊左側(cè)任務(wù)欄中再單擊引線得到對(duì)話框如圖5.2所示,在窗口中輸入X1得到此效果 圖5.2連線標(biāo)簽窗口 若要對(duì)某個(gè)元件或一部分電路做出說明,則單擊任務(wù)欄中的Text Script Mode得到如圖5.3效果,在界面中輸入文字即可。 圖5.3說明窗口 按照正確的方法將元器件進(jìn)行合理的排布及連線后,得到圖5.4 圖5.4系統(tǒng)仿真電路圖 5
62、.2 用Keil對(duì)程序進(jìn)行調(diào)試、編譯 先打開keil uvision4 這款軟件,新建工程,點(diǎn)擊菜單欄里的 new uvision project ,然后對(duì)工程進(jìn)行保存。再新建文件,點(diǎn)擊菜單欄中File 下的 new 新建文件,進(jìn)行保存。最后把新建的文件添加到工程文件里,右鍵點(diǎn)擊project視圖窗口里的Source Group1,選擇Add files to group “source group1”,如圖所示: 圖5.5 添加文件到工程 這樣,剛才新建的文件便添加到了Source Group1中。現(xiàn)在開始在右邊的主界面編寫C語言程序,編寫完成后為了把程序燒錄到單片機(jī)上,還需
63、要把它轉(zhuǎn)換成機(jī)器碼,生成hex文件:右擊工程視圖窗口中的Target1,選擇Options for Target “target1” 把Output選項(xiàng)卡里面的Create HEX File 前面的勾打上,這樣編譯后會(huì)生成機(jī)器碼,如圖所示。 圖5.6 生成機(jī)器碼 6 結(jié)論 6.1 系統(tǒng)的功能 本系統(tǒng)能測量溫室大棚內(nèi)的溫濕度數(shù)據(jù),將其顯示在液晶屏上。如果溫濕度超出了設(shè)定的上下限,將進(jìn)行報(bào)警,并啟動(dòng)溫濕度調(diào)節(jié)設(shè)備。溫度回到限定值內(nèi)后,停止報(bào)警。當(dāng)溫度不僅回到上下限以內(nèi),而且留有一定裕量
64、后,停止溫濕度調(diào)節(jié)設(shè)備。如果需要修改溫濕度上下限,可以通過按鍵進(jìn)行修改。 6.2 系統(tǒng)的指標(biāo)參數(shù) 系統(tǒng)的指標(biāo)參數(shù)完成情況如下表所示: 表6.1 系統(tǒng)指標(biāo)參數(shù)表 實(shí)現(xiàn)功能 結(jié)果 完成程度 測量溫度范圍 -40~123.8℃ 完成 測量溫度誤差 0.5% 完成 測量濕度范圍 0~100%RH 完成 測量適度誤差 4.5% 完成 液晶屏顯示 用LCD1602顯示 完成 超限報(bào)警 用蜂鳴器報(bào)警 完成 修改上下限 通過獨(dú)立式鍵盤修改 完成 輸出控制 通過光耦、繼電器控制 完成 6.3 系統(tǒng)功能分析 該大棚溫濕度自動(dòng)控制系統(tǒng)能通過獨(dú)立式鍵盤設(shè)
65、置溫濕度上下限,通過LCD1602顯示溫濕度,并在超限的情況下報(bào)警、啟動(dòng)調(diào)節(jié)設(shè)備。 其中輸出控制和通過鍵盤設(shè)置上下限都是通過調(diào)用子程序?qū)崿F(xiàn)的。鍵盤的工作方式分兩種,一種是查詢方式,一種是中斷方式。中斷方式比較節(jié)省系統(tǒng)資源,只有當(dāng)有按鍵按下時(shí)才會(huì)進(jìn)入鍵盤中斷子程序,進(jìn)一步掃描是那些鍵被按下;而查詢方式則是在主程序中調(diào)用鍵盤掃描子程序,不管有沒有鍵按下,每次程序循環(huán)中都要一一判斷每個(gè)鍵是否按下,故這種方式占用的單片機(jī)的處理時(shí)間更多。但是由于本次設(shè)計(jì)用到的按鍵不多,只有五個(gè),功能比較簡單,而且單片機(jī)工作比較空閑,因此使用的是查詢方式來處理鍵盤的輸入。 此外,還應(yīng)注意到的是,當(dāng)溫濕度超限后,要報(bào)警
66、并啟動(dòng)溫濕度調(diào)節(jié)設(shè)備。當(dāng)溫濕度回到規(guī)定范圍內(nèi)時(shí),只是停止報(bào)警,而溫濕度調(diào)節(jié)設(shè)備應(yīng)該繼續(xù)保持工作,直到溫濕度留有一定裕量時(shí)才停止。本設(shè)計(jì)中的輸出控制子程序中設(shè)置了溫度5℃和濕度5%RH的裕量,這樣當(dāng)溫度上限是30度時(shí),如果超出上限,那么溫度回到30度時(shí)停止報(bào)警,當(dāng)溫度降到25度以下時(shí)才停止制冷設(shè)備的運(yùn)行。這樣可以避免溫濕度調(diào)節(jié)設(shè)備反復(fù)不停地通斷,以致影響使用壽命。 7 總結(jié)與體會(huì) 這次畢業(yè)設(shè)計(jì)使我收獲良多,以前偏重于理論知識(shí)的學(xué)習(xí),但是做了畢業(yè)設(shè)計(jì)才發(fā)現(xiàn)在動(dòng)手實(shí)踐上的不足,無論是畫電路原理圖、做仿真、做實(shí)物都牽涉到很多自己以前沒有接觸過的內(nèi)容。通過這次畢業(yè)設(shè)計(jì),我感覺我實(shí)際應(yīng)用知識(shí)的能力有了很大提高。 尤其讓我感受頗多的是使用萬能板焊接實(shí)物。這個(gè)看似簡單的事情花了我三天的時(shí)間,而且板子還有很多問題。以前焊過PCB板,于是想當(dāng)然地以為焊萬能板也很容易,不就是用飛線連接嗎,還不用畫PCB圖,不用考慮怎么布線,于是就選擇了使用萬能板來焊接實(shí)物。用導(dǎo)線焊了很久,剛開始還好,到了后來線越來越多,要放置新的元器件都很困難。有些焊點(diǎn)焊多了錫都很難焊上去。由于飛線
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
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)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識(shí)競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案