大棚溫濕度自動(dòng)控制系統(tǒng)設(shè)計(jì)_第1頁(yè)
大棚溫濕度自動(dòng)控制系統(tǒng)設(shè)計(jì)_第2頁(yè)
大棚溫濕度自動(dòng)控制系統(tǒng)設(shè)計(jì)_第3頁(yè)
大棚溫濕度自動(dòng)控制系統(tǒng)設(shè)計(jì)_第4頁(yè)
大棚溫濕度自動(dòng)控制系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩51頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 大棚溫濕度自動(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)能夠測(cè)量溫室大棚中的溫度和濕度,將其顯示在液晶屏LCD1602上,同時(shí)將其與設(shè)定值進(jìn)行對(duì)比,如果超出上下限,將進(jìn)行報(bào)警并啟動(dòng)溫濕度調(diào)節(jié)設(shè)備。此外,還可以通過(guò)獨(dú)立式鍵盤(pán)對(duì)設(shè)定的溫濕度進(jìn)行修改。通過(guò)設(shè)計(jì)系統(tǒng)原理圖、用Proteus軟件進(jìn)行仿

2、真,證明了該系統(tǒng)的可行性。關(guān)鍵詞:STC89C52RC,SHT10,I2C總線,獨(dú)立式鍵盤(pán),溫濕度自動(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 LCD1602 to display the messages. The SH

3、T10 uses a timing sequence much like the I2C to communicate with the micro-controller. Because its a highly integrated chip, it already includes an analog to digital converter. Therefore, its quite convenient to use, and also accurate and durable. The LCD1602 can display two lines of messages, with

4、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 will send out a warning using a buzzer

5、 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, I2C bus, independent keyboard, temperat

6、ure and humidity control目 錄1 前言12 總體方案設(shè)計(jì)32.1 溫濕度控制系統(tǒng)的設(shè)計(jì)指標(biāo)要求32.2 系統(tǒng)設(shè)計(jì)的原則32.2.1 可靠性32.2.2 性價(jià)比32.3 方案比較42.3.1 方案一42.3.2 方案二42.4 方案論證52.5 方案選擇53 單元模塊設(shè)計(jì)63.1 各單元模塊功能介紹及電路設(shè)計(jì)63.1.1 單片機(jī)最小系統(tǒng)63.1.2 液晶顯示模塊83.1.3 溫濕度傳感器模塊83.1.4 報(bào)警電路的設(shè)計(jì)93.1.5 輸出電路設(shè)計(jì)103.1.6 電源的設(shè)計(jì)123.1.7 按鍵電路設(shè)計(jì)133.1.8 串口通信電路143.2 元件清單153.3 關(guān)鍵器件的介紹1

7、73.3.1 STC89C52RC173.3.2 SHT10溫濕度傳感器194 系統(tǒng)軟件設(shè)計(jì)224.1 軟件設(shè)計(jì)的總體結(jié)構(gòu)224.2 主要模塊的設(shè)計(jì)流程框圖244.2.1 主程序流程圖244.2.2 SHT10子程序流程圖254.2.3 LCD1602子程序流程圖274.2.4 輸出控制子程序流程圖284.2.5 鍵盤(pán)掃描子程序流程圖294.3 軟件設(shè)計(jì)所用工具314.3.1 Keil uVision4314.3.2 Proteus315 系統(tǒng)調(diào)試325.1 用Proteus搭建仿真總圖325.2 用Keil對(duì)程序進(jìn)行調(diào)試、編譯336 結(jié)論366.1 系統(tǒng)的功能366.2 系統(tǒng)的指標(biāo)參數(shù)366

8、.3 系統(tǒng)功能分析367 總結(jié)與體會(huì)388 致謝399 參考文獻(xiàn)40附錄1 系統(tǒng)的電路原理圖41附錄2 系統(tǒng)仿真總圖42附錄3 系統(tǒng)實(shí)物照片43附錄4 系統(tǒng)源程序44附錄5 英文參考資料461 中文翻譯462 英文原文49 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)的模式,延長(zhǎng)其供應(yīng)期,而且可在不同地方進(jìn)行種植,達(dá)到所謂“地不分東西南北,食不分春夏秋冬”。溫室農(nóng)業(yè)可以改變傳統(tǒng)農(nóng)業(yè)勞動(dòng)力冬閑夏忙的安排,以小面積獲得高產(chǎn),減輕大面積的土地壓力。溫室農(nóng)業(yè)采用適時(shí)適量供水的優(yōu)化用水

9、同時(shí)配以微灌和高濕環(huán)境,可達(dá)到農(nóng)業(yè)用水高效高產(chǎn),按產(chǎn)品的數(shù)量平均計(jì)算,節(jié)省水分量是很大的。這種設(shè)施系統(tǒng)可以從簡(jiǎn)易到全自動(dòng)控制,適宜各種狀況下的選擇,特別是對(duì)于日光溫室、塑料大棚,相對(duì)投資較少。若能降低成本、采用經(jīng)久耐用的低成本采光材料,發(fā)展前景將更為廣闊,即使在一些偏遠(yuǎn)地區(qū)的農(nóng)村、場(chǎng)所,也可以修建單個(gè)的溫室和塑料大棚,進(jìn)行環(huán)境控制下的蔬菜和瓜果的生產(chǎn),改變這些地區(qū)的生活條件。要想實(shí)現(xiàn)溫室大棚高效增產(chǎn)的作用,對(duì)溫濕度的準(zhǔn)確控制是極其重要的。溫室內(nèi)空氣濕度的日變化受天氣、加溫及通風(fēng)換氣量的影響,陰天或灌水后室內(nèi)空氣濕度幾乎都在90以上。晴天在傍晚關(guān)窗至次日早晨開(kāi)窗前溫室維持在高濕度。室內(nèi)濕氣遇冷后

10、凝結(jié)成水滴附著在薄膜或玻璃的內(nèi)表面上,待到加溫或日出后,室內(nèi)溫度上升,濕度逐漸下降,附著在屋頂上的水滴隨之消失。溫濕度的較大變化對(duì)農(nóng)作物的生長(zhǎng)十分不利,研究結(jié)果表明,由于植物體內(nèi)水分不足導(dǎo)致氣孔關(guān)閉,首先妨礙了CO2的交換,而使飽和作用顯著下降,特別是在缺水狀況加劇時(shí),給細(xì)胞原生質(zhì)的生化作用帶來(lái)影響,光合作用顯著下降。而溫度在夜間下降過(guò)低也會(huì)影響光合作用的效率。因此,非常有必要使用一套溫濕度控制系統(tǒng),以維持溫室大棚內(nèi)的溫度、濕度在一個(gè)合適的范圍,實(shí)現(xiàn)大棚內(nèi)農(nóng)作物的水分、養(yǎng)分的有效供給,提高光合作用的效率,從而達(dá)到增產(chǎn)目的。傳統(tǒng)的溫濕度控制是在溫室大棚內(nèi)部懸掛溫、濕度計(jì),通過(guò)讀取溫、濕度值進(jìn)而了

11、解實(shí)際的溫度和濕度,然后根據(jù)現(xiàn)檢測(cè)的溫濕度與額定值進(jìn)行比較,看溫濕度是否超過(guò)限定值,然后進(jìn)行相應(yīng)的通風(fēng)或者相應(yīng)的灑水。這些操作都是人工的,耗費(fèi)了大量的人力以及物力?,F(xiàn)在,隨著國(guó)家經(jīng)濟(jì)的迅速發(fā)展,農(nóng)業(yè)產(chǎn)業(yè)規(guī)模的進(jìn)一步提高,大棚中培育出的農(nóng)產(chǎn)品品種數(shù)量的逐漸增多,對(duì)于數(shù)量較多而又大型的大棚,傳統(tǒng)的溫濕度控制措施就出現(xiàn)了局限性。這要求我們提高溫濕度檢測(cè)與控制技術(shù),來(lái)滿足對(duì)溫室大棚建設(shè)的需要。在本設(shè)計(jì)中,采用單片機(jī)來(lái)控制溫濕度,不僅具有廉價(jià)、配置簡(jiǎn)單和靈活的優(yōu)勢(shì),而且可以大大提高所測(cè)溫濕度的技術(shù)指標(biāo),從而可以提高產(chǎn)品的數(shù)量和質(zhì)量。單片機(jī)因?yàn)樗哂泄δ軓?qiáng)、高可靠性、體積小、造價(jià)便宜和開(kāi)發(fā)周期短這些優(yōu)勢(shì),

12、廣泛用于自動(dòng)化測(cè)量和控制現(xiàn)場(chǎng)設(shè)備,特別是在日常生活中發(fā)揮的日益重要的作用。這次選用STC89C52RC作為主控制器,可以從按鍵電路輸入設(shè)定的溫濕度,通過(guò)溫濕度傳感器SHT10對(duì)溫度、濕度信號(hào)進(jìn)行采集,然后通過(guò)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)的溫度、濕度進(jìn)行采集,將其顯示在LCD1602液晶顯示器上,然后與設(shè)定的上下限值進(jìn)行比較,如果超出限制則啟動(dòng)溫度、濕度控制設(shè)備,并

13、通過(guò)蜂鳴器報(bào)警,直到溫濕度回到規(guī)定的范圍。另外,還要能夠通過(guò)按鍵修改設(shè)定的上下限。為了能夠滿足農(nóng)業(yè)生產(chǎn)的需要,此次設(shè)計(jì)要達(dá)到一下指標(biāo):(1)工作環(huán)境:溫室大棚;(2)溫度測(cè)量誤差:1;(3)測(cè)溫范圍:0+55;(4)濕度測(cè)量誤差:5%RH;(5)測(cè)濕范圍:0100%RH;(6)通過(guò)鍵盤(pán)電路修改上下限:有;(6)溫濕度報(bào)警:有;2.2 系統(tǒng)設(shè)計(jì)的原則2.2.1 可靠性可靠性是在設(shè)計(jì)過(guò)程中應(yīng)該優(yōu)先考慮的一個(gè)因素,一個(gè)控制系統(tǒng)必須要能穩(wěn)定、可靠地工作,才能投入到生產(chǎn)實(shí)踐中去。如果系統(tǒng)的可靠性不能達(dá)標(biāo),那么系統(tǒng)出現(xiàn)故障的可能就會(huì)增大,造成很大的損失。這種損失不僅包括經(jīng)濟(jì)上和信譽(yù)上的損失,而且可能會(huì)對(duì)人

14、身安全產(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ì)過(guò)程中不能盲目地追求性價(jià)比,它應(yīng)該建立在對(duì)產(chǎn)品性能要求的基礎(chǔ)上,首先要滿足性能要求,然后再設(shè)法降低產(chǎn)品成本。2.3 方案比較2.3.1 方案一采用PLC作為主控制器。使用PLC的最大優(yōu)點(diǎn)在于PLC使用梯形圖進(jìn)行編程,編程

15、語(yǔ)言形象直觀,難度較低,因此開(kāi)發(fā)周期短,便于擴(kuò)展。而且PLC抗干擾能力強(qiáng),工作穩(wěn)定可靠,這一點(diǎn)已被長(zhǎng)期的工業(yè)控制實(shí)踐所證明。繼電器鍵盤(pán)輸入加熱器制冷器加濕器除濕器液晶顯示 蜂鳴器報(bào)警溫濕度傳感器 PLC溫室大棚 圖2.1 用PLC作為主控制器的控制系統(tǒng)2.3.2 方案二使用單片機(jī)進(jìn)行控制。采用STC89C52RC單片機(jī)作為主控制器,可以用C語(yǔ)言進(jìn)行編程,由于它支持ISP在線編程,因此可以通過(guò)RS232串口將程序燒錄到單片機(jī)中,很方便。溫濕度傳感器SHT10通過(guò)I2C總線與單片機(jī)連接。溫濕度傳感器 單片機(jī)加熱器制冷器加濕器除濕器鍵盤(pán)輸入 蜂鳴器報(bào)警繼電器液晶顯示溫室大棚圖2.2 用單片機(jī)作為主控

16、制器的控制系統(tǒng)2.4 方案論證從功能上看,兩種控制器都能滿足要求。PLC在工業(yè)控制領(lǐng)域用得比較多,編程簡(jiǎn)單,而且抗干擾能力強(qiáng)。但是本系統(tǒng)是用于溫室大棚,并沒(méi)有其他大型工業(yè)設(shè)備的干擾。單片機(jī)用C語(yǔ)言編程,相對(duì)PLC的梯形圖要復(fù)雜得多,但是編程更為靈活,可以實(shí)現(xiàn)復(fù)雜的功能。從價(jià)格方面上看,單片機(jī)就比PLC具有很大的優(yōu)勢(shì)。一個(gè)單片機(jī)只要幾塊錢,而一個(gè)很一般的PLC一般也要幾百上千元。另外,中國(guó)是農(nóng)業(yè)大國(guó),隨著溫室大棚越來(lái)越普及,農(nóng)村對(duì)溫濕度控制系統(tǒng)的需求也會(huì)越來(lái)越旺盛,因此雖然用單片機(jī)開(kāi)發(fā)的周期較長(zhǎng),但是一旦完成開(kāi)發(fā),后期生產(chǎn)環(huán)節(jié)的邊際成本很??;而基于PLC的控制系統(tǒng)受制于PLC的高昂價(jià)格,價(jià)格難以

17、降低。2.5 方案選擇PLC和單片機(jī)都能作為主控制器進(jìn)行設(shè)計(jì),但是在價(jià)格方面單片機(jī)具有巨大優(yōu)勢(shì)。綜上所述,本次設(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

18、的晶振和兩個(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)行過(guò)程中,如果程序出錯(cuò),也需要進(jìn)行手動(dòng)復(fù)位。 本設(shè)計(jì)中的復(fù)位電路就是上電+手動(dòng)復(fù)位電路,復(fù)位時(shí)要讓STC89C52RC的RST引腳得到2個(gè)機(jī)器周期以上的高電平。先說(shuō)說(shuō)上電復(fù)位的工作原理,當(dāng)單片機(jī)上電時(shí),電源+5V的Vcc通過(guò)10K的電阻對(duì)10

19、uF的電容進(jìn)行充電。剛上電時(shí),有較大的電流從Vcc經(jīng)電容、電阻流向GND,由于電容兩端的電壓不可突變,因此仍然為0V,于是電阻的兩端分得5V的電壓,即RST引腳此時(shí)的電勢(shì)為5V。隨著充電的繼續(xù)進(jìn)行,電流會(huì)逐漸減小,電阻兩端的電壓UR=IR也逐漸減小,即RST引腳的電勢(shì)逐漸減小。過(guò)了一定時(shí)間,RST引腳兩端的電壓下降到不再是高電平,只要這個(gè)充電的時(shí)間大于單片機(jī)兩個(gè)機(jī)器周期,就能使單片機(jī)復(fù)位。程序運(yùn)行過(guò)程中如果跑飛了、程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),就需要用到手動(dòng)復(fù)位。手動(dòng)復(fù)位就是在上電復(fù)位電路的電容兩邊并聯(lián)一個(gè)微動(dòng)開(kāi)關(guān),需要手動(dòng)復(fù)位時(shí)將其按下,使之接通,RST獲得高電平,而且人按動(dòng)按

20、鈕的時(shí)間肯定是超過(guò)兩個(gè)機(jī)器周期的,于是單片機(jī)復(fù)位。3.1.2 液晶顯示模塊測(cè)量到的溫濕度值將顯示到液晶屏LCD1602上,它可以顯示2行,每行16個(gè)字符。LCD1602共有三個(gè)存儲(chǔ)器,它們是CGROM、CGRAM和DDRAM。CGROM用來(lái)保存LCD1602內(nèi)部固化的一些字符的字模,比如英文的26個(gè)字母的大小寫(xiě);CGRAM用來(lái)保存用戶自己取的字模,比如,如果要顯示漢字,就必須自己去漢字字模,在這里我們都用英語(yǔ)字母,故不用CGRAM;DDRAM用來(lái)存儲(chǔ)要顯示的字符的字模,它和屏幕上的位置是對(duì)應(yīng)的,第一行為00H到0FH,第二行為40H到4FH。在這里需要注意的是,在向LCD1602寫(xiě)入顯示數(shù)據(jù)存

21、儲(chǔ)器地址時(shí),根據(jù)控制指令的格式,最高位D7為1,所以寫(xiě)入的數(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貼片封裝的,他們依次性能越來(lái)越好,其中SHT10屬于經(jīng)濟(jì)型的溫濕度傳感器。三者的溫濕度性能如下圖所示。圖3.4 SHT1X系列各型號(hào)傳感器的濕度、溫度最大誤差從曲線中可以看出,無(wú)論是濕度還是溫度,SHT10的誤差都是最大的,SHT15誤差最小,但

22、是它們的價(jià)格也相差很大,SHT10多為二三十元一個(gè),而SHT15價(jià)格上百。因此,從滿足大棚溫濕度監(jiān)測(cè)的要求來(lái)看,SHT10已經(jīng)足夠,故選用SHT10。SHT10與單片機(jī)的接口電路如下所示:圖3.5 SHT10與單片機(jī)的接口電路SHT10采用類似于I2C的兩線制串行總線,一根是時(shí)鐘線,一根是數(shù)據(jù)線。數(shù)據(jù)線要通過(guò)一個(gè)上拉電阻接到VCC,目的是避免信號(hào)沖突,使單片機(jī)的引腳只提供低電平,要得到高電平則使該引腳懸空,由上拉電阻提供高電平。3.1.4 報(bào)警電路的設(shè)計(jì)當(dāng)大棚內(nèi)的溫濕度超過(guò)上下限時(shí),除了需要啟動(dòng)溫濕度調(diào)節(jié)器之外,還需要進(jìn)行報(bào)警,這里用到的是蜂鳴器。蜂鳴器為一種采用一體化結(jié)構(gòu)的電子器件, 采用了

23、直流電壓來(lái)供電,廣泛的應(yīng)用到了計(jì)算機(jī)、報(bào)警器、復(fù)印機(jī)、電子玩具、電話機(jī)、汽車電子設(shè)備、定時(shí)器等電子產(chǎn)品之中用作發(fā)聲器。蜂鳴器分為有源蜂鳴器和無(wú)源蜂鳴器。有源蜂鳴器由于內(nèi)部集成了振蕩源,所以使用直流電壓就可以驅(qū)動(dòng)它鳴叫;無(wú)源蜂鳴器內(nèi)部沒(méi)有振蕩源,因此一般使用2K5K方波來(lái)驅(qū)動(dòng)。本設(shè)計(jì)中使用的是有源蜂鳴器,在它兩端加載5V的直流電壓就可以使之鳴叫。報(bào)警電路設(shè)計(jì)如下圖: 圖3.6 報(bào)警電路圖蜂鳴器工作電流一般為10mA,而單片機(jī)的I/O口只能承受幾毫安的電流,因此需要加三極管進(jìn)行驅(qū)動(dòng)。如上圖所示,單片機(jī)的I/O口中的P1.6接PNP型三極管的基極,當(dāng)P1.6為低電平時(shí),三極管導(dǎo)通,5V的電壓加載到蜂

24、鳴器兩端,于是蜂鳴器鳴叫;當(dāng)P1.6高電平時(shí),三極管截至,蜂鳴器不鳴叫。3.1.5 輸出電路設(shè)計(jì)當(dāng)溫濕度超出限定值后,單片機(jī)將輸出控制信號(hào),啟動(dòng)加熱、制冷、加濕、除濕設(shè)備。弱電控制強(qiáng)電,首先要用到繼電器來(lái)控制這些大功率的設(shè)備,而且為了進(jìn)一步加強(qiáng)弱電和強(qiáng)電的電氣隔離,減少?gòu)?qiáng)電設(shè)備對(duì)單片機(jī)控制系統(tǒng)的干擾,需要在前一級(jí)加光耦進(jìn)行隔離。光耦的驅(qū)動(dòng)能力有限,一般電流只能達(dá)到30mA左右,不足以驅(qū)動(dòng)繼電器,因此再加一個(gè)三極管放大電流。原理如圖3.7所示:圖3.7 控制電路輸出電路有四組,每一組由一個(gè)光耦、一個(gè)三極管、一個(gè)繼電器組成。這四組輸出電路分別控制加濕、除濕、加熱、制冷的設(shè)備。光耦選用TLP521-

25、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輸入測(cè)的發(fā)光二極管陰極。繼電器選用5V的,驅(qū)動(dòng)繼電器需要大約100mA的電流,也就是說(shuō)驅(qū)動(dòng)繼電器的三極管的集電極電流為Ic=100mA。三極管選用直流放大系數(shù)為100的9013,根據(jù)Ic=Ib,可計(jì)算得三極管基極電流Ib=1mA,而Vbe=0.7V,又

26、由于光耦中的光電三極管的集電極、發(fā)射極飽和壓降Vces=0.3V,所以基極的限流電阻上的壓降為(5-Vces-Vbe)=4V,4V/0.001A=4K,由于沒(méi)有標(biāo)稱值為4K的電阻,所以選擇4.7K的。還應(yīng)該注意到的一點(diǎn)是,光耦有一個(gè)參數(shù)叫電流傳輸比(CTR),CTR=Io/IF,及輸出端電流的最大值比上輸入端的電流,體現(xiàn)了光耦輸出電流的能力。如果輸入端的電流為20mA,電流傳輸比為50%的話,那么輸入端電流Io最大只能為10mA。在這里,TLP521-4的電流傳輸比為50%,輸出端我們剛才算出的電流Io=Ib=1mA,所以輸入端電流IF最小為2mA,由于電流很小時(shí)光耦處于死區(qū),因此要選大點(diǎn),這

27、里選擇IF=10mA。于是,光耦輸入端陽(yáng)極上的限流電阻為R=(5V-0.7V)/0.01A=430,這里選擇標(biāo)稱值為470的電阻。此外,這里用的繼電器是普通的電磁繼電器。通過(guò)對(duì)電磁繼電器和固態(tài)繼電器進(jìn)行比較,雖然固態(tài)繼電器具有無(wú)觸電、動(dòng)作速度快、使用壽命長(zhǎng)等特點(diǎn),但是本設(shè)計(jì)中的繼電器只在溫濕度超過(guò)限定值時(shí)才動(dòng)作,動(dòng)作頻率低,而且固態(tài)繼電器的價(jià)格比電磁繼電器高得多,所以綜合考慮選擇電磁繼電器SRD一05VDC一SL-C。3.1.6 電源的設(shè)計(jì)圖3.8 電源電路電源電路是整個(gè)系統(tǒng)中非常重要的一部分,本設(shè)計(jì)中主要用到直流5V電源。要得到5V的直流電源,要經(jīng)過(guò)降壓、整流、濾波、穩(wěn)壓四個(gè)環(huán)節(jié)。由于最后的

28、穩(wěn)壓環(huán)節(jié),LM7805要得到5V的直流輸出,輸入與輸出要有一定的壓差,根據(jù)LM7805的數(shù)據(jù)手冊(cè),需要有10V的輸入,因此在降壓環(huán)節(jié)把220V的電壓降為10V。然后用橋式整流電路把交流電整流為直流電,此時(shí)的直流電只是方向不變,但仍按正弦方式變化,是脈動(dòng)的直流電。因此需要濾波電路將紋波濾掉。C8和C2都用來(lái)濾波,但是作用是不一樣的。C8是大電容,用電解電容,它的作用是低頻濾波,通過(guò)充電放電,從而削峰填谷,使電壓的脈動(dòng)成分減少,電壓基本保持穩(wěn)定。而C2是小電容,所以對(duì)于高頻信號(hào)容抗很小,相當(dāng)于短路,從而濾掉高頻信號(hào)。需要注意的是,470uF的大電容可以濾低頻,為什么不能濾高頻,還要單獨(dú)加一個(gè)0.3

29、3uF的小電容來(lái)濾高頻?從理論上來(lái)說(shuō)大電容應(yīng)該高頻、低頻都可以,但是由于制造工藝的原因,電解電容的容值做得很大時(shí),它就不再是一個(gè)單純的電容了,它等效于一個(gè)電容串聯(lián)一個(gè)電感。在頻率較低時(shí),電感L=jwl較小,可以忽略不計(jì),但是當(dāng)頻率很高時(shí),感抗就很大,相當(dāng)于斷路,所以此時(shí)這個(gè)470uF的大電容不能濾掉高頻信號(hào),必須單獨(dú)加一個(gè)小電容。小電容容值小,因此就不存在感抗的問(wèn)題。濾波完以后,電壓的脈動(dòng)成分已經(jīng)下降了很多,但是仍有起伏,所以最后還需加上一個(gè)三端集成穩(wěn)壓器,這里選用LM7805,它能將電壓穩(wěn)定在5V。并聯(lián)在LM7805兩端的二極管起保護(hù)作用,避免在短路等情況下LM7805輸出端的電壓比輸入端高

30、,從而燒壞LM7805。三端集成穩(wěn)壓器后面又接了一大一小兩個(gè)電容,再次進(jìn)行濾波,使電壓更穩(wěn)定。3.1.7 按鍵電路設(shè)計(jì) 圖3.9 按鍵電路圖鍵盤(pán)分為編碼式和非編碼式鍵盤(pán)。其中,非編碼式鍵盤(pán)又包括矩陣式鍵盤(pán)和獨(dú)立式鍵盤(pán)。矩陣式鍵盤(pán)較為復(fù)雜,一般用于按鍵數(shù)目較多,而單片機(jī)可用的I/O口又比較有限時(shí)。本控制系統(tǒng)中只需要用到5個(gè)按鍵,數(shù)目較少,并且可用的I/O口充足,故采用獨(dú)立式鍵盤(pán),一個(gè)按鍵對(duì)應(yīng)一個(gè)單片機(jī)的I/O口管腳。本設(shè)計(jì)中總共用到5個(gè)按鍵式開(kāi)關(guān),他們用來(lái)改變?cè)O(shè)定的溫濕度上下限數(shù)值。從S0到S4,分別控制進(jìn)入溫度上下限設(shè)置、進(jìn)入濕度上下限設(shè)置、數(shù)值加、數(shù)值減、確認(rèn)并退出。本設(shè)計(jì)中的鍵盤(pán)是低電平有

31、效。未按鍵時(shí),上拉電阻保證了單片機(jī)的I/O口是確定的高電平;當(dāng)某個(gè)鍵按下時(shí),I/O口變?yōu)榈碗娖健?.1.8 串口通信電路串口通信可分為同步通信和異步通信,在單片機(jī)的應(yīng)用系統(tǒng)中,主要是采用異步串行通信。在設(shè)計(jì)通信接口時(shí),應(yīng)該采用標(biāo)準(zhǔn)接口,這樣才能夠方便而又準(zhǔn)確的把單片機(jī)和外設(shè)有機(jī)的連接起來(lái),從而能形成一個(gè)測(cè)控系統(tǒng),目前異步串口通信標(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ī)通過(guò)串口進(jìn)行通信,需要進(jìn)行電平轉(zhuǎn)換,因?yàn)楸M管單片機(jī)有串行通信的功能,但單片機(jī)提供的TTL

32、電平和RS232的電平不一樣。TTL電平中,電壓小于0.8V為低電平,高于2.4V為高電平;而RS232電平是負(fù)邏輯電平,電壓在-3V-15V時(shí)為高電平,電壓在3V15V時(shí)為低電平,因此要通過(guò)MAX232這種電平轉(zhuǎn)換芯片進(jìn)行轉(zhuǎn)換。MAX232是MAXIM公司專為RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,使用+5V電源供電。適用于終端設(shè)備和數(shù)據(jù)通信設(shè)備間的接口,對(duì)于雙向通信,只需要使用串行輸入RXD(引腳2),串行輸出TXD(引腳3)和地線GND(引腳5)。其電路連接如圖3.10所示;圖3.10 串口通信電路MAX232芯片內(nèi)部有一個(gè)電源電壓變換器,能夠把輸入的+5V電壓變換為RS232輸出

33、電平所需的+10V 電壓,采用此芯片接口的串行通信系統(tǒng)值需要接+5V電壓即可。MAX232芯片中有兩組電平轉(zhuǎn)換的引腳,我們這里只需使用其中一組。打頭的字母“T”表示TTL電平,“R”表示RS232電平。R1IN和R2IN表示輸入RS232電平,因此與電腦的串口相連;T1IN和T2IN表示輸入TTL電平,因此與單片機(jī)相連。所以,引腳T1IN、T2IN、R1OUT、R2OUT為接TTLCMOS電平的引腳,引腳T1OUT、T2OUT、R1IN、R2IN為接RS232電平的引腳。MAX232芯片專門為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的接口電路,使用+5v單電源供電。MAX232就是用來(lái)進(jìn)行電平轉(zhuǎn)換的,該

34、器件包含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ì)需要用到的元器件如下表所示:表3.1 所需元件列表元件型號(hào)個(gè)數(shù)單片機(jī)STC89C52RC1顯示屏LCD16021溫濕度傳感器SHT101芯片底座DIP401光耦TLP521-41排針10針10杜邦線20二極管1N40074三極管90121三極管90134電阻10K2電阻4.7K9電阻1K1電阻4704電位器15K1瓷片電容1uF5瓷片電

35、容0.1uF1點(diǎn)解電容10uF1瓷片電容30pF2電平轉(zhuǎn)換芯片MAX2321串口母頭DB91電平轉(zhuǎn)換芯片MAX2321USB母座1晶振12MHz1自鎖開(kāi)關(guān)6*6*51按鍵開(kāi)關(guān)6*6*56蜂鳴器1繼電器SRD一05VDC一SL-C43.3 關(guān)鍵器件的介紹3.3.1 STC89C52RCSTC89C52RC單片機(jī)是宏晶科技推出的新一代高速/低功耗/超強(qiáng)抗干擾的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī)12時(shí)鐘/機(jī)器周期和6時(shí)鐘/機(jī)器周期可以任意選擇。 STC89C52RC的主要性能參數(shù)(1)增強(qiáng)型8051單片機(jī),6時(shí)鐘/機(jī)器周期和12時(shí)鐘/機(jī)器周期可以任意選擇,指令代碼與傳統(tǒng)8051單片機(jī)是兼容的

36、。(2)通用I/O口(32個(gè)):P1/P2/P3是準(zhǔn)雙向口/弱上拉,P0口是漏極開(kāi)路輸出,作為總線擴(kuò)展用時(shí),不用加上拉電阻,作為I/O口用時(shí),需加上拉電阻。 (3)ISP(在線編程)/IAP(在應(yīng)用可編程):可通過(guò)串口下載程序,不需要使用專門的下載器,非常方便快捷。(4)內(nèi)含8KB的程序存儲(chǔ)器,1000次寫(xiě)擦寫(xiě)周期;(5)內(nèi)含512字節(jié)的RAM;(6)32個(gè)可編程I/O口線;(7)3個(gè)16位定時(shí)器/計(jì)數(shù)器,即定時(shí)器 T0、T1、T2(8)6個(gè)中斷源、5個(gè)中斷矢量、2級(jí)優(yōu)先權(quán)的中斷結(jié)構(gòu);(9)具有一個(gè)全雙工UART串行通道;(10)掉電模式和低功耗空閑; STC89C52RC主要引腳功能STC8

37、9C52RC的管腳排列如圖2一2所示:圖3.11 STC89C52RC引腳圖P0口(P0.0P0.7):P0端口(P0.0P0.7,3932 引腳):P0口是一個(gè)漏極開(kāi)路的8位雙向I/O 口。作為輸出端口,每個(gè)引腳能驅(qū)動(dòng)8個(gè)TTL負(fù)載,對(duì)端口P0寫(xiě)入每個(gè)引腳能驅(qū)動(dòng)寫(xiě)入“1”時(shí),可以作為高阻抗輸入。在訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí) 在訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也可以提供低8位地址和8位數(shù)據(jù)的復(fù)用總線位數(shù)據(jù)的復(fù)用總線。在進(jìn)行程序校驗(yàn)的時(shí)候,輸出指令字節(jié);而在Flash ROM 編程時(shí),接收指令字節(jié)。P1口(P1.0P1.7): P1端口(P1.0P1.7,18 引腳):P1口是一個(gè)8位雙向I/

38、O口,內(nèi)部已經(jīng)自帶有一個(gè)幾十K的上拉電阻。對(duì)端口寫(xiě)入“1”時(shí),該引腳被懸空,由內(nèi)部的上拉電阻把引腳拉到高電平,這時(shí)候可以作為輸入口使用,此時(shí),因?yàn)閮?nèi)部自帶上拉電阻,所以被外部器件拉低電壓的引腳會(huì)輸出一個(gè)電流。P1的輸出緩沖器可驅(qū)動(dòng)4個(gè)TTL邏輯門。P2 口(P2.0P2.7):P2和P1一樣,是一個(gè)8 位雙向I/O口,內(nèi)部自帶上拉電阻。端口進(jìn)行寫(xiě)“1”時(shí),該管腳被懸空,由內(nèi)部自帶的上拉電阻將電平拉到高電平。當(dāng)它被當(dāng)作輸入口使用時(shí),因?yàn)閮?nèi)部自帶上拉電阻,該引腳在被外部元器件拉低電平的時(shí)侯會(huì)有電流輸出。在對(duì)程序存儲(chǔ)器(ROM)或16位的外部數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口會(huì)送出一個(gè)高8位地址數(shù)據(jù)。在進(jìn)

39、行訪問(wèn)8 位地址的外部數(shù)據(jù)存儲(chǔ)器的時(shí)侯,P口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中P2寄存器內(nèi)容),在整個(gè)訪問(wèn)期間不改變。它的輸出緩沖級(jí)可以驅(qū)動(dòng)4個(gè)TTL邏輯門P3口(P3.0P3.7):P3口,和P1、P2一樣,是一個(gè)8 位雙向I/0 口,內(nèi)部自帶弱上拉。對(duì)P3口進(jìn)行寫(xiě)入“l(fā)”時(shí),被內(nèi)部的上拉電阻拉高且可以作為一個(gè)輸入端口。作輸入端口時(shí),被外部元器件拉低電平的P3口將通過(guò)上拉電阻提供電流。P3口除了作為一個(gè)一般的I/0口線外,它的第二功能有更重要的用途。P3口輸出緩沖級(jí)可用來(lái)驅(qū)動(dòng)4個(gè)TTL邏輯門。RST:復(fù)位輸入端。在震蕩期穩(wěn)定有效運(yùn)行情況下,RST端維持兩個(gè)機(jī)器周期的高電平,便可復(fù)位

40、器件。PSEN:外部程序存儲(chǔ)器的選通信號(hào)。低電平有效,在片外程序存儲(chǔ)器取指期間,當(dāng)PSEN有效時(shí),程序存儲(chǔ)器的內(nèi)容將會(huì)被送至P0口,在訪問(wèn)外部RAM時(shí),PSEN無(wú)效。EAVPP:當(dāng)EA保持低電平時(shí),則在此期間外部存儲(chǔ)器(0000HFFFH),不論是否有內(nèi)部程序存儲(chǔ)器。VCC:電源電壓。XTALI:?jiǎn)涡酒到y(tǒng)時(shí)鐘的反向放大器輸入端。使用外部振蕩器時(shí),連接外部石英晶體和微調(diào)電容。XTAL2:系統(tǒng)時(shí)鐘的反向放大器輸出端。當(dāng)使用片內(nèi)振蕩器時(shí),外部接石英晶體和微調(diào)電容。3.3.2 SHT10溫濕度傳感器SHT10是瑞士Sensirion公司推出的超小型、自校型、高精度、多功能式的智能傳感器,采用SMD貼

41、片封裝。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è)電容性聚合體濕敏器件、一個(gè)基于能隙材料的溫度測(cè)量元件。SHT10可以用來(lái)測(cè)量相對(duì)濕度、溫度和露點(diǎn)等參數(shù)。這類智能傳感器廣泛用于工農(nóng)業(yè)生產(chǎn)、環(huán)境監(jiān)測(cè)、通風(fēng)及空調(diào)設(shè)備等領(lǐng)域。SHT10的主要性能參數(shù)如下:(1)采用兩線制數(shù)字接口,類似于I2C總線的時(shí)序;(2) 測(cè)量溫濕度的范圍廣。濕度測(cè)量范圍為0100%RH

42、,溫度測(cè)量范圍為-40123.8;(3) 測(cè)量精度較高,溫度的測(cè)量誤差為0.5,濕度的測(cè)量誤差為4.5%RH; (4) 濕度值分辨率為14位,溫度值輸出分辨率為12位,并可以變成12位和8位;(5)將溫濕度傳感器、信號(hào)放大器、A/D轉(zhuǎn)換、IC總線接口全部集成于一個(gè)芯片;(6)小體積,可表面貼裝;(7)具有可靠的CRC數(shù)據(jù)傳輸校驗(yàn)功能;(8)片內(nèi)裝載的校準(zhǔn)系數(shù)可保證100%互換性;(9)電流消耗低,測(cè)量時(shí)550A,平均28A,休眠時(shí)3A;(10)可給出全校準(zhǔn)相對(duì)濕度計(jì)溫度值輸出;(11)具有漏點(diǎn)值計(jì)算輸出功能;電源引腳(VDD),SHT10的供電電壓為2.45.5V,這里選擇5V;在電源引腳(V

43、DD,GND)之間須加一個(gè)100nF的電容,用于去耦濾波。(串行輸入(SCK),用于微處理器與SHT10之間的同步通信;串行數(shù)據(jù)(DATA),用于三態(tài)門的數(shù)據(jù)讀取,DATA在SCK時(shí)鐘下降沿后會(huì)發(fā)生狀態(tài)改變,并且在SCK時(shí)鐘為上升沿時(shí)有效。也就是微控制器可在SCK為高電平段去讀取有效的數(shù)據(jù)。在微控制器向SHT10進(jìn)行數(shù)據(jù)傳送的過(guò)程中,必須要保證數(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í)序來(lái)表示初始化數(shù)據(jù)傳輸。包括

44、:當(dāng)SCK時(shí)鐘為高電平的時(shí)侯,DATA翻轉(zhuǎn)至低電平,緊接著SCK變成低電平,隨后在SCK時(shí)鐘為高電平的時(shí)侯DATA翻轉(zhuǎn)為高電平。后續(xù)的命令包含3個(gè)地址(目前支持“000”)和5個(gè)命令位,具體命令集見(jiàn)表4。SHT10會(huì)用下述來(lái)方式表示已經(jīng)正確接受到了指令:在第8個(gè)SCK的時(shí)鐘下降沿后,將DATA下拉至低電平(ACK位);在第9個(gè)SCK的時(shí)鐘下降沿后,釋放DATA(恢復(fù)為高電平)。表3-2 SHT10的命令集命令代碼預(yù)留0000x溫度測(cè)量00011濕度測(cè)量00101讀狀態(tài)寄存器00111寫(xiě)狀態(tài)寄存器00110預(yù)留0101x1110x軟復(fù)位,復(fù)位接口、清空狀態(tài)寄存器為默認(rèn)值,下一個(gè)命令前等待至少11

45、ms11110根據(jù)上表的命令集,SHT10測(cè)量時(shí),發(fā)布測(cè)量命令(00000101表示的是相對(duì)濕度RH,00000011 表示的是溫度T)后,控制器等待測(cè)量停止后。此過(guò)程大約需要11、55、210ms,分別會(huì)對(duì)應(yīng)8、12、14位的測(cè)量。確切時(shí)間與內(nèi)部的晶振速度有關(guān),最多會(huì)有15%的變化。SHT10通過(guò)下拉DATA變?yōu)榈碗娖剑硎緶y(cè)量已結(jié)束。控制器在觸發(fā)SCK時(shí)鐘前,必須要等待“數(shù)據(jù)備妥”的信號(hào)。接著會(huì)傳輸2個(gè)字節(jié)的測(cè)量數(shù)據(jù)以及1個(gè)字節(jié)的CRC奇偶校驗(yàn)。uC需要用下拉DATA為低電平,來(lái)確認(rèn)每個(gè)字節(jié)。全部數(shù)據(jù)會(huì)從MSB開(kāi)始,右值有效(例如:對(duì)于12位數(shù)據(jù),從第5個(gè)SCK時(shí)鐘起算作MSB;而對(duì)于8位

46、數(shù)據(jù),首字節(jié)則無(wú)意義)。 4 系統(tǒng)軟件設(shè)計(jì)系統(tǒng)的工作流程是,操作人員在計(jì)算機(jī)上輸入需要設(shè)定的溫濕度限定值,當(dāng)設(shè)定的溫濕度值與檢測(cè)溫濕度值不同時(shí),單片機(jī)控制系統(tǒng)則會(huì)采取相應(yīng)的調(diào)節(jié)動(dòng)作。此程序流程包括五個(gè)部分,第一部分是主程序,其描述總體結(jié)構(gòu);第二部分是SHT10溫度采集程序,其功能是通過(guò)SHT10傳感器采集溫濕度值,并進(jìn)行修正;第三部分是LCD1602顯示子程序,對(duì)LCD1602進(jìn)行初始化,將溫濕度進(jìn)行顯示;第四部分是輸出控制子程序,對(duì)設(shè)定值和實(shí)際值進(jìn)行判斷以決定是否進(jìn)行溫濕度的調(diào)節(jié);第五部分是按鍵輸入電路,用來(lái)修改溫濕度上下限值。4.1 軟件設(shè)計(jì)的總體結(jié)構(gòu)本次設(shè)計(jì)的大棚溫濕度自動(dòng)控制系統(tǒng)由一個(gè)

47、主程序調(diào)用多個(gè)子程序,它們包括SHT10溫濕度采集子程序、LCD1602液晶顯示子程序、輸出控制子程序、鍵盤(pán)掃描子程序,如下圖所示:主程序SHT10溫濕度采集子程序LCD1602液晶屏顯示子程序輸出控制子程序鍵盤(pán)掃描子程序 圖4.1 程序總體結(jié)構(gòu)主程序主要就是調(diào)用各個(gè)子程序的C語(yǔ)言文件中定義的函數(shù),實(shí)現(xiàn)SHT10、LCD1602初始化等操作,然后測(cè)量溫濕度,調(diào)用函數(shù)對(duì)數(shù)據(jù)進(jìn)行處理,最后進(jìn)行顯示并輸出控制信號(hào)。在Keil工程中編寫(xiě)程序的時(shí)候,為了讓整個(gè)工程看起來(lái)?xiàng)l理清晰,要按照各個(gè)模塊分別新建C文件寫(xiě)子程序。某個(gè)C文件要調(diào)用其它C文件中的函數(shù)時(shí),要在當(dāng)前C語(yǔ)言文件中先進(jìn)行聲明,然后再調(diào)用,或者也

48、可以把每個(gè)C文件中定義的函數(shù)都寫(xiě)到相同名字下的.h頭文件中,其他C文件要調(diào)用該函數(shù)時(shí)要在前面加上#include ,將頭文件包括進(jìn)來(lái)。對(duì)于變量也是如此,如果某個(gè)變量也在其他C文件中使用,那么要在一個(gè)C文件總將它定義為全局變量,即在函數(shù)外面定義。其他C文件要使用該變量時(shí),要先使用extern將全局變量的作用域擴(kuò)展到本C語(yǔ)言文件。4.2 主要模塊的設(shè)計(jì)流程框圖4.2.1 主程序流程圖Yes是否超限?將溫濕度與設(shè)定值比較啟動(dòng)溫濕度調(diào)節(jié)設(shè)備對(duì)溫濕度數(shù)據(jù)進(jìn)行修正No在液晶屏上顯示溫濕度測(cè)量溫濕度是否有按鍵?初始化LCD1602Yes開(kāi)始進(jìn)入鍵盤(pán)掃描子程序SHT10復(fù)位No 圖4.2 主程序流程圖4.2.

49、2 SHT10子程序流程圖開(kāi)始發(fā)送啟動(dòng)時(shí)序發(fā)送控制字接收數(shù)據(jù)測(cè)量結(jié)束?接收校驗(yàn)位結(jié)束NoYes圖4.3 SHT10子程序流程圖溫濕度傳感器SHT10使用類似于I2C總線的時(shí)序與單片機(jī)通信,由于51單片機(jī)沒(méi)有I2C接口,所以需要編寫(xiě)程序,用單片機(jī)的某兩個(gè)I/O口管腳模擬I2C總線的時(shí)序,從而與SHT10通信。SHT10有4種時(shí)序:?jiǎn)?dòng)傳輸時(shí)序、寫(xiě)字節(jié)時(shí)序、讀字節(jié)時(shí)序及復(fù)位時(shí)序。復(fù)位時(shí)序和啟動(dòng)傳輸時(shí)序可通過(guò)依次拉低或拉高時(shí)鐘線和數(shù)據(jù)線,因而實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單;而寫(xiě)時(shí)序和讀時(shí)序就比較復(fù)雜。寫(xiě)時(shí)序用來(lái)發(fā)送控制字,即發(fā)送命令,測(cè)量結(jié)束后,發(fā)出讀時(shí)序讀回測(cè)量數(shù)據(jù)。向SHT10的8個(gè)數(shù)據(jù)位的寫(xiě)入,于第9個(gè)時(shí)鐘

50、周期之后,讀取應(yīng)答位,應(yīng)答位為0時(shí),表示SHT10正確接收。SHT10讀寫(xiě)數(shù)據(jù)的規(guī)則是:在時(shí)鐘線的下降沿之后數(shù)據(jù)線改變狀態(tài),并在時(shí)鐘線的上升沿有效。4.2.3 LCD1602子程序流程圖開(kāi)始LCD1602初始化設(shè)置首行數(shù)據(jù)指針寫(xiě)入首行字符設(shè)置第二行數(shù)據(jù)指針寫(xiě)入第二行字符結(jié)束圖4.4 LCD1602子程序流程圖4.2.4 輸出控制子程序流程圖開(kāi)始返回主程序溫度、濕度是否超出上下限?啟動(dòng)溫濕度調(diào)節(jié)設(shè)備蜂鳴器報(bào)警溫濕度是否回到限定值內(nèi)?停止報(bào)警停止溫濕度控制設(shè)備溫濕度是否留有足夠的裕量?結(jié)束NoYesYesYesNoNo圖4.5 輸出控制子程序4.2.5 鍵盤(pán)掃描子程序流程圖開(kāi)始退出鍵盤(pán)子程序延時(shí)1

51、0ms退出鍵盤(pán)子程序上限或下限加一或減一P2.3或P2.4是否按下?NoP2.3或P2.4是否仍被按下?YesYesNoP2.5或P2.6是否按下?P2.5或P2.6是否按下?YesNo圖4.6 YesNo鍵盤(pán)掃描子程序?yàn)榱朔乐苟秳?dòng),按鍵電路中都要消抖的措施,本設(shè)計(jì)中是采用的軟件消抖,在單片機(jī)檢測(cè)到某個(gè)鍵按下后,延時(shí)10ms再監(jiān)測(cè),如果仍然按下,才視為按下了該鍵。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

52、增加限值,按S3減小限值。設(shè)置好以后,按S4退出設(shè)置。4.3 軟件設(shè)計(jì)所用工具4.3.1 Keil uVision4本次設(shè)計(jì)采用Keil uVision4來(lái)編寫(xiě)C語(yǔ)言程序,通過(guò)它的編譯器進(jìn)行編譯、連接,最后將生成的機(jī)器碼下載到單片機(jī)上。Keil編譯器是目前最流行的單片機(jī)開(kāi)發(fā)的軟件,它是美國(guó)Keil Software公司開(kāi)發(fā)的C語(yǔ)言開(kāi)發(fā)系統(tǒng)。它提供了一個(gè)完整的開(kāi)發(fā)方案,包括宏匯編、C編譯器、庫(kù)管理、連接器和一個(gè)功能強(qiáng)大的仿真調(diào)試器等,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境將這些部份組合在一起。Keil C51整合了豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具。此外,Keil C51生成的目標(biāo)代碼效率非常高,這一點(diǎn)從生

53、成的匯編語(yǔ)言就可以看出,大多生成的匯編語(yǔ)句很緊湊,容易理解。4.3.2 ProteusProteus用來(lái)對(duì)電路進(jìn)行仿真,它的功能強(qiáng)大,包括單片機(jī)在內(nèi)的眾多元器件都可以仿真。把Keil編譯、連接后生成的hex文件導(dǎo)入Proteus單片機(jī)中即可對(duì)單片機(jī)進(jìn)行仿真。Proteus軟件是英國(guó)Labcenter electronics公司出版的EDA工具軟件,它不僅具有其它EDA軟件的仿真功能,還可以對(duì)單片機(jī)及其外圍器件進(jìn)行仿真,是目前在這方面做得最好的EDA工具軟件。Proteus在國(guó)內(nèi)已受到眾多單片機(jī)開(kāi)發(fā)者的喜愛(ài)。Proteus實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì),可以實(shí)現(xiàn)從原理圖繪制和代碼調(diào)試到單片機(jī)與其外

54、圍電路仿真,一鍵切換到印刷電路板的設(shè)計(jì)。目前世界上只有Proteus做到了將電路仿真、印刷電路板設(shè)計(jì)和虛擬模型仿真整合到一個(gè)設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、AVR、ARM、8086和MSP430、PIC10/12/16/18/24/30/DsPIC33等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。 5 系統(tǒng)調(diào)試5.1 用Proteus搭建仿真總圖 打開(kāi)Proteus ISIS,在 Proteus ISIS 編輯窗口中單擊元件列表之上的“P”按鈕 ,添加元件及放置元件。得到界面如圖5.1圖5.1元器件的選擇選好元器件后,要對(duì)元器件進(jìn)行一個(gè)重新的布局,使之看起來(lái)很清晰,并且所占面積較小。若想移動(dòng)某個(gè)元件或多個(gè),單擊

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論