畢業(yè)論文-基于AT89C52單片機(jī)的大棚倉(cāng)庫(kù)溫濕度自動(dòng)控制系統(tǒng)設(shè)計(jì)_第1頁(yè)
畢業(yè)論文-基于AT89C52單片機(jī)的大棚倉(cāng)庫(kù)溫濕度自動(dòng)控制系統(tǒng)設(shè)計(jì)_第2頁(yè)
畢業(yè)論文-基于AT89C52單片機(jī)的大棚倉(cāng)庫(kù)溫濕度自動(dòng)控制系統(tǒng)設(shè)計(jì)_第3頁(yè)
畢業(yè)論文-基于AT89C52單片機(jī)的大棚倉(cāng)庫(kù)溫濕度自動(dòng)控制系統(tǒng)設(shè)計(jì)_第4頁(yè)
畢業(yè)論文-基于AT89C52單片機(jī)的大棚倉(cāng)庫(kù)溫濕度自動(dòng)控制系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(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.1研究目的和意義目前,我國(guó)農(nóng)業(yè)正處于從傳統(tǒng)農(nóng)業(yè)到以優(yōu)質(zhì),高效,高產(chǎn)為目標(biāo)的現(xiàn)代化農(nóng)業(yè)轉(zhuǎn)化的新階段。而大棚作為現(xiàn)代化農(nóng)業(yè)實(shí)施的重要產(chǎn)物,在國(guó)內(nèi)多數(shù)地區(qū)得到了廣泛應(yīng)用?,F(xiàn)代農(nóng)業(yè)生產(chǎn)離不開(kāi)環(huán)境控制,農(nóng)業(yè)大棚控制系統(tǒng)是實(shí)現(xiàn)溫室生產(chǎn)管理自動(dòng)化、科學(xué)化的基本保證。結(jié)合作物生長(zhǎng)規(guī)律,控制環(huán)境條件,使作物在不適宜生長(zhǎng)的反季節(jié)中,可獲得比室外生長(zhǎng)更優(yōu)的環(huán)境條件,從而使作物達(dá)到優(yōu)質(zhì)、高產(chǎn)、高效的栽培目的。由于大棚中各種環(huán)境因素是可以人為控制的,因此控制技術(shù)直接決定著大棚中農(nóng)作物的產(chǎn)量和質(zhì)量。1.2閱讀的主要參考文獻(xiàn)及資料名稱[1]黃遵熹.單片機(jī)原理接口與應(yīng)用[M].西北工業(yè)大學(xué)出版社,2000.147—150.[2]劉文濤.單片機(jī)應(yīng)用開(kāi)發(fā)實(shí)例.清華大學(xué)出版社2005.[3]韓太林.單片機(jī)原理及應(yīng)用.電子工業(yè)出版社.2005.[4]張毅剛.單片機(jī)原理及應(yīng)用.高等教育出版社.2004.[5]何立民.單片機(jī)應(yīng)用技術(shù)選編[第三版].北京航空航天大學(xué)出版社.2003.[6]付家才.單片機(jī)控制工程實(shí)踐技術(shù).北京化學(xué)工業(yè)出版社.2004.[7]嚴(yán)天峰.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與仿真調(diào)試.北京航空航天大學(xué)出版社,2005[8]徐愛(ài)鈞.8051單片機(jī)實(shí)踐教程[M].電子工業(yè)出版社.20061.3國(guó)內(nèi)外現(xiàn)狀和發(fā)展趨勢(shì)與研究的主攻方向美國(guó)是將計(jì)算機(jī)應(yīng)用于大棚和管理最早,最多的國(guó)家之一。美國(guó)開(kāi)發(fā)的大棚計(jì)算機(jī)控制與管理系統(tǒng)可以根據(jù)作物的特點(diǎn)和生長(zhǎng)所需要的條件,對(duì)大棚/倉(cāng)庫(kù)內(nèi)的光照,溫度,濕度等諸多因素進(jìn)行自動(dòng)控制。這種自動(dòng)控制系統(tǒng)需要種植者輸入溫室作物生長(zhǎng)所需的環(huán)境的目標(biāo)參數(shù),計(jì)算編機(jī)根據(jù)傳感器的實(shí)際測(cè)量值與事先設(shè)定的目標(biāo)進(jìn)行比較,以決定大棚/倉(cāng)庫(kù)溫濕度的控制過(guò)程,按照相應(yīng)的機(jī)構(gòu)進(jìn)行加熱,降溫或者是澆水,通風(fēng)等。目前,我國(guó)絕大部分自主開(kāi)發(fā)的大棚溫濕度控制或者進(jìn)口的國(guó)外設(shè)備都屬于這種系統(tǒng)。雖然這種自動(dòng)控制系統(tǒng)實(shí)現(xiàn)了自動(dòng)化,適合規(guī)模化生產(chǎn),提高了勞動(dòng)生產(chǎn)率,通過(guò)改變大棚溫室度的設(shè)定目標(biāo),可以自動(dòng)的對(duì)大棚內(nèi)溫濕度進(jìn)行調(diào)節(jié),但是這種調(diào)節(jié)對(duì)作物的生長(zhǎng)來(lái)說(shuō)還是相對(duì)滯后的,難以介入作物生長(zhǎng)的內(nèi)在規(guī)律。所以在這種自動(dòng)控制系統(tǒng)和實(shí)踐的基礎(chǔ)上,溫濕度自動(dòng)控制向著適合不同作物生長(zhǎng)的智能化控制發(fā)展。國(guó)外大棚業(yè)正致力于高科技發(fā)展,遙測(cè)技術(shù),網(wǎng)絡(luò)技術(shù),控制局域網(wǎng)已逐漸應(yīng)用于大棚的管理和控制中,近幾年各國(guó)溫度控制技術(shù)提出建立大棚行業(yè)標(biāo)準(zhǔn),朝著網(wǎng)絡(luò)化,大眾化,大規(guī)模,無(wú)人化的方向發(fā)展的思路。1.4主要研究?jī)?nèi)容,關(guān)鍵問(wèn)題的解決思路本系統(tǒng)的設(shè)計(jì)的硬件主要包括:主要是單片機(jī)AT89C52,檢測(cè)系統(tǒng),顯示電路,報(bào)警電路等。利用傳感器測(cè)量大棚內(nèi)的溫濕度經(jīng)過(guò)信號(hào)處理,將傳感器測(cè)得的數(shù)據(jù)送至控制系統(tǒng)(AT89C52),與預(yù)設(shè)的農(nóng)作物最適合生長(zhǎng)的溫濕度值的上下限進(jìn)行對(duì)比,并通過(guò)顯示電路將測(cè)得的溫濕度進(jìn)行實(shí)時(shí)顯示。如果不同作物的適合生長(zhǎng)的溫度不一樣,可以通過(guò)鍵盤電路修改預(yù)設(shè)值??刂葡到y(tǒng)根據(jù)比較的結(jié)果對(duì)調(diào)節(jié)系統(tǒng)發(fā)出相應(yīng)的指令,啟動(dòng)相應(yīng)的調(diào)節(jié)設(shè)備如噴水機(jī),吹風(fēng)機(jī),加熱器,降溫等,調(diào)節(jié)大棚內(nèi)的溫濕度狀態(tài)。如果測(cè)得的數(shù)據(jù)超過(guò)了預(yù)設(shè)值的上下限,則報(bào)警電路會(huì)報(bào)警。這樣就實(shí)現(xiàn)了對(duì)大棚溫濕度的自動(dòng)控制。

本文主要研究?jī)?nèi)容如下:

1.進(jìn)行溫濕度控制系統(tǒng)的整體研究與設(shè)計(jì)。

2.利用數(shù)字溫濕度傳感器測(cè)量大棚內(nèi)的溫濕度。

3.利用LCD對(duì)溫濕度進(jìn)行實(shí)時(shí)顯示。4.當(dāng)大棚溫濕度值超出設(shè)定范圍值時(shí),系統(tǒng)可自動(dòng)報(bào)警,并輸出驅(qū)動(dòng)信號(hào)控制繼器對(duì)大棚溫濕度進(jìn)行調(diào)節(jié)。2系統(tǒng)方案設(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è)備,并通過(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è)濕范圍:0~100%RH;(6)通過(guò)鍵盤電路修改上下限:有;(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ì)人身安全產(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)行編程,編程語(yǔ)言形象直觀,難度較低,因此開(kāi)發(fā)周期短,便于擴(kuò)展。而且PLC抗干擾能力強(qiáng),工作穩(wěn)定可靠,這一點(diǎn)已被長(zhǎng)期的工業(yè)控制實(shí)踐所證明。繼電器繼電器鍵盤輸入加熱器制冷器加濕器除濕器液晶顯示蜂鳴器報(bào)警溫濕度傳感器PLC溫室大棚圖2.1用PLC作為主控制器的控制系統(tǒng)2.3.2方案二使用單片機(jī)進(jìn)行控制。采用AT89C52單片機(jī)作為主控制器,可以用C語(yǔ)言進(jìn)行編程,由于它支持ISP在線編程,因此可以通過(guò)RS232串口將程序燒錄到單片機(jī)中,很方便。溫濕度傳感器SHT10通過(guò)I2C總線與單片機(jī)連接。溫濕度傳感器溫濕度傳感器單片機(jī)加熱器制冷器加濕器除濕器鍵盤輸入蜂鳴器報(bào)警繼電器液晶顯示溫室大棚圖2.2用單片機(jī)作為主控制器的控制系統(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à)格難以降低。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)應(yīng)包括振蕩電路和復(fù)位電路等。振蕩電路(時(shí)鐘電路)的主要任務(wù)是為AT89C52單片機(jī)正常工作需要的時(shí)鐘電路提供一個(gè)穩(wěn)定的工作頻率。根據(jù)AT89C52單片機(jī)時(shí)鐘周期的要求,回路需要選用頻率為12MHz的晶振。晶振回路由電容和陶瓷諧振器并聯(lián)組成,作為單片機(jī)的時(shí)鐘源。AT89C52內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,此放大器的輸入和輸出端分別是引腳XTAL1和XTAL2,在XTAL1和XTAL2端口接上時(shí)鐘電源即可構(gòu)成時(shí)鐘電路。本設(shè)計(jì)中采用內(nèi)部時(shí)鐘產(chǎn)生方式。在XTAL1和XTAL2兩端跨接晶振,與內(nèi)部的反相器構(gòu)成穩(wěn)定的自激振蕩器。其發(fā)出的時(shí)鐘脈沖直接送入單片機(jī)內(nèi)定時(shí)控制部件。電容C1和C2對(duì)頻率有微調(diào)作用,應(yīng)盡可能的安裝在單片機(jī)芯片附近,以減少寄生電容,保證振蕩器穩(wěn)定可靠的工作。

復(fù)位電路的功能就是對(duì)CPU進(jìn)行實(shí)時(shí)監(jiān)測(cè),當(dāng)CPU落入死循環(huán)之后,能及時(shí)發(fā)現(xiàn)并使整個(gè)系統(tǒng)復(fù)位。為確保微機(jī)系統(tǒng)中電路穩(wěn)未定可靠工作,復(fù)位可靠工作,復(fù)位電路是必不可少的一部分,復(fù)位電路的第一功能是上電復(fù)位。一般微機(jī)電路正常工作需要供電電源為4.75?5.25V。由于微機(jī)電路是時(shí)序數(shù)字電路,它需要穩(wěn)定的時(shí)鐘信號(hào),因此在電源上電時(shí),只有當(dāng)VCC上電時(shí),只有當(dāng)VCC超過(guò)4.75V,低于5.25V以及晶體振蕩器穩(wěn)定工作時(shí),復(fù)位信號(hào)才被撤除,微機(jī)電路開(kāi)始正常工作。

單片機(jī)在啟動(dòng)時(shí)都需要復(fù)位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開(kāi)始工作。89系列單片機(jī)的復(fù)位信號(hào)是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當(dāng)系統(tǒng)處于正常工作狀態(tài)時(shí),且振蕩器穩(wěn)定后,如果RST引腳上有一個(gè)高電平并維持2個(gè)機(jī)器周期(24個(gè)振蕩周期)以上,則CPU就可以響應(yīng)并將系統(tǒng)復(fù)位。

為了確保系統(tǒng)中的電路溫度可靠工作,復(fù)位電路是必不可少的部分

,其第一功能就是高電平復(fù)位,高電平復(fù)位是在通電瞬間通過(guò)充電來(lái)實(shí)現(xiàn)的。手動(dòng)復(fù)位是指通過(guò)接通一按鍵開(kāi)關(guān),使單片機(jī)進(jìn)入復(fù)位狀態(tài)。系統(tǒng)上電運(yùn)行后,如果需要復(fù)位,只需通過(guò)手動(dòng)復(fù)位就可以實(shí)現(xiàn)。

圖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ì)10uF的電容進(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)按鈕的時(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è)字母的大小寫;CGRAM用來(lái)保存用戶自己取的字模,比如,如果要顯示漢字,就必須自己去漢字字模,在這里我們都用英語(yǔ)字母,故不用CGRAM;DDRAM用來(lái)存儲(chǔ)要顯示的字符的字模,它和屏幕上的位置是對(duì)應(yīng)的,第一行為00H到0FH,第二行為40H到4FH。在這里需要注意的是,在向LCD1602寫入顯示數(shù)據(jù)存儲(chǔ)器地址時(shí),根據(jù)控制指令的格式,最高位D7為1,所以寫入的數(shù)據(jù)為,第一行80H到8FH,第二行C0H到CFH。它與單片機(jī)的接口電路如下圖所示:圖3.3LCD1602與單片機(jī)的接口電路3.1.3溫濕度傳感器模塊溫濕度傳感器選用瑞士Sensirion公司生產(chǎn)的SHT10。SHT1X系列共有三個(gè)型號(hào):SHT10、SHT11、SHT15,他們都是SMD貼片封裝的,他們依次性能越來(lái)越好,其中SHT11屬于經(jīng)濟(jì)型的溫濕度傳感器。三者的溫濕度性能如下圖所示。圖3.4SHT1X系列各型號(hào)傳感器的濕度、溫度最大誤差從曲線中可以看出,無(wú)論是濕度還是溫度,SHT10的誤差都是最大的,SHT15誤差最小,但是它們的價(jià)格也相差很大,SHT10多為二三十元一個(gè),而SHT15價(jià)格上百。因此,從滿足大棚溫濕度監(jiān)測(cè)的要求來(lái)看,SHT11已經(jīng)足夠,故選用SHT11。SHT11與單片機(jī)的接口電路如下所示:圖3.5SHT11與單片機(jī)的接口電路SHT11采用類似于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)的電子器件,采用了直流電壓來(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)有振蕩源,因此一般使用2K~5K方波來(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的電壓加載到蜂鳴器兩端,于是蜂鳴器鳴叫;當(dāng)P1.6高電平時(shí),三極管截至,蜂鳴器不鳴叫。3.1.5按鍵電路設(shè)計(jì)圖3.9按鍵電路圖鍵盤分為編碼式和非編碼式鍵盤。其中,非編碼式鍵盤又包括矩陣式鍵盤和獨(dú)立式鍵盤。矩陣式鍵盤較為復(fù)雜,一般用于按鍵數(shù)目較多,而單片機(jī)可用的I/O口又比較有限時(shí)。本控制系統(tǒng)中只需要用到4個(gè)按鍵,數(shù)目較少,并且可用的I/O口充足,故采用獨(dú)立式鍵盤,一個(gè)按鍵對(duì)應(yīng)一個(gè)單片機(jī)的I/O口管腳。本設(shè)計(jì)中總共用到4個(gè)按鍵式開(kāi)關(guān),他們用來(lái)改變?cè)O(shè)定的溫濕度上下限數(shù)值。從S1到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)榈碗娖健?.2元件清單本次設(shè)計(jì)需要用到的元器件如下表所示:表3.1所需元件列表型號(hào)個(gè)數(shù)AT89C521LCD16021SHT111RES9RESPACK-81CRYSTAL1LED-RED1SPEAKER1BUTTON4PNP1B760011206N23.3關(guān)鍵器件的介紹3.3.1AT89C52AT89C52是一種低功耗、高性能CMOS

8位微控制器,存儲(chǔ)器是采用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品的指令和引腳完全兼容。在單芯片上,擁有靈巧的8

位CPU

和在系統(tǒng)可編程Flash,使得AT89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89C52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32

位I/O

口線,看門狗定時(shí)器,2

個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU

停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作;掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)停止一切工作,直到下一個(gè)中斷或硬件復(fù)位為止。

3.3.2AT89C52引腳圖

AT89C52的引腳結(jié)構(gòu)圖。P0口:P0口是一個(gè)8位漏極開(kāi)路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。在Flash編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。

P1口:P1口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P1端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。

P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P2端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。

P3口:P3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P3端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。

RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平,單片機(jī)復(fù)位。

ALE/PROG:當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。應(yīng)注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。

PSEN:程序儲(chǔ)存允許輸出(PSEN)是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次PSEN信號(hào)。

EA/VPP:外部訪問(wèn)允許,欲使CPU僅訪問(wèn)外部程序存儲(chǔ)器(其地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。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è)主程序調(diào)用多個(gè)子程序,它們包括SHT10溫濕度采集子程序、LCD1602液晶顯示子程序、輸出控制子程序、鍵盤掃描子程序,如下圖所示: 主程序主程序SHT10溫濕度采集子程序LCD1602液晶屏顯示子程序輸出控制子程序鍵盤掃描子程序圖4.1程序總體結(jié)構(gòu)主程序主要就是調(diào)用各個(gè)子程序的C語(yǔ)言文件中定義的函數(shù),實(shí)現(xiàn)SHT11、LCD1602初始化等操作,然后測(cè)量溫濕度,調(diào)用函數(shù)對(duì)數(shù)據(jù)進(jìn)行處理,最后進(jìn)行顯示并輸出控制信號(hào)。在Keil工程中編寫程序的時(shí)候,為了讓整個(gè)工程看起來(lái)?xiàng)l理清晰,要按照各個(gè)模塊分別新建C文件寫子程序。某個(gè)C文件要調(diào)用其它C文件中的函數(shù)時(shí),要在當(dāng)前C語(yǔ)言文件中先進(jìn)行聲明,然后再調(diào)用,或者也可以把每個(gè)C文件中定義的函數(shù)都寫到相同名字下的.h頭文件中,其他C文件要調(diào)用該函數(shù)時(shí)要在前面加上#include<*.h>,將頭文件包括進(jìn)來(lái)。對(duì)于變量也是如此,如果某個(gè)變量也在其他C文件中使用,那么要在一個(gè)C文件總將它定義為全局變量,即在函數(shù)外面定義。其他C文件要使用該變量時(shí),要先使用extern將全局變量的作用域擴(kuò)展到本C語(yǔ)言文件。

4.2主要模塊的設(shè)計(jì)流程框圖4.2.1主程序流程圖YesYes是否超限?將溫濕度與設(shè)定值比較啟動(dòng)溫濕度調(diào)節(jié)設(shè)備對(duì)溫濕度數(shù)據(jù)進(jìn)行修正No在液晶屏上顯示溫濕度測(cè)量溫濕度是否有按鍵?初始化LCD1602Yes開(kāi)始進(jìn)入鍵盤掃描子程序SHT11復(fù)位No圖4.2主程序流程圖

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

4.2.3LCD1602子程序流程圖開(kāi)始開(kāi)始LCD1602初始化設(shè)置首行數(shù)據(jù)指針寫入首行字符設(shè)置第二行數(shù)據(jù)指針寫入第二行字符結(jié)束圖4.4LCD1602子程序流程圖

4.2.4輸出控制子程序流程圖開(kāi)始開(kāi)始返回主程序溫度、濕度是否超出上下限?啟動(dòng)溫濕度調(diào)節(jié)設(shè)備蜂鳴器報(bào)警溫濕度是否回到限定值內(nèi)?停止報(bào)警停止溫濕度控制設(shè)備溫濕度是否留有足夠的裕量?結(jié)束NoYesYesYesNoNo圖4.5輸出控制子程序

YesNoYesNo4.3軟件設(shè)計(jì)所用工具4.3.1KeiluVision4本次設(shè)計(jì)采用KeiluVision4來(lái)編寫C語(yǔ)言程序,通過(guò)它的編譯器進(jìn)行編譯、連接,最后將生成的機(jī)器碼下載到單片機(jī)上。Keil編譯器是目前最流行的單片機(jī)開(kāi)發(fā)的軟件,它是美國(guó)KeilSoftware公司開(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)境將這些部份組合在一起。KeilC51整合了豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具。此外,KeilC51生成的目標(biāo)代碼效率非常高,這一點(diǎn)從生成的匯編語(yǔ)言就可以看出,大多生成的匯編語(yǔ)句很緊湊,容易理解。4.3.2ProteusProteus用來(lái)對(duì)電路進(jìn)行仿真,它的功能強(qiáng)大,包括單片機(jī)在內(nèi)的眾多元器件都可以仿真。把Keil編譯、連接后生成的hex文件導(dǎo)入Proteus單片機(jī)中即可對(duì)單片機(jī)進(jìn)行仿真。Proteus軟件是英國(guó)Labcenterelectronics公司出版的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)試到1與其外圍電路仿真,一鍵切換到印刷電路板的設(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)ProteusISIS,在ProteusISIS編輯窗口中單擊元件列表之上的“P”按鈕,添加元件及放置元件。選放好元器件后,要對(duì)元器件進(jìn)行一個(gè)重新的布局,使之看起來(lái)很清晰,并且所占面積較小。若想移動(dòng)某個(gè)元件或多個(gè),單擊其元件,待其顏色變紅后,在按下鼠標(biāo)左鍵不放,即可拖動(dòng)元件。為了使仿真圖看起來(lái)更整潔,我們部分電路連線選擇連線標(biāo)簽?zāi)J?,以單片機(jī)19引腳為例,將其用線引出,如然后再點(diǎn)擊左側(cè)任務(wù)欄中再單擊引線得到對(duì)話框如圖5.2所示,在窗口中輸入X1得到此效果圖5.2連線標(biāo)簽窗口若要對(duì)某個(gè)元件或一部分電路做出說(shuō)明,則單擊任務(wù)欄中的TextScriptMode得到如圖5.3效果,在界面中輸入文字即可。圖5.3說(shuō)明窗口按照正確的方法將元器件進(jìn)行合理的排布及連線后,得到圖5.4圖5.4系統(tǒng)仿真電路圖5.2用Keil對(duì)程序進(jìn)行調(diào)試、編譯先打開(kāi)keiluvision4這款軟件,新建工程,點(diǎn)擊菜單欄里的newuvisionproject,然后對(duì)工程進(jìn)行保存。再新建文件,點(diǎn)擊菜單欄中File下的new新建文件,進(jìn)行保存。最后把新建的文件添加到工程文件里,右鍵點(diǎn)擊project視圖窗口里的SourceGroup1,選擇Addfilestogroup“sourcegroup1”,如圖所示:圖5.5添加文件到工程這樣,剛才新建的文件便添加到了SourceGroup1中?,F(xiàn)在開(kāi)始在右邊的主界面編寫C語(yǔ)言程序,編寫完成后為了把程序燒錄到單片機(jī)上,還需要把它轉(zhuǎn)換成機(jī)器碼,生成hex文件:右擊工程視圖窗口中的Target1,選擇OptionsforTarget“target1”把Output選項(xiàng)卡里面的CreateHEXFile前面的勾打上,這樣編譯后會(huì)生成機(jī)器碼,如圖所示。圖5.6生成機(jī)器碼6結(jié)論6.1系統(tǒng)的功能本系統(tǒng)能測(cè)量溫室大棚內(nèi)的溫濕度數(shù)據(jù),將其顯示在液晶屏上。如果溫濕度超出了設(shè)定的上下限,將進(jìn)行報(bào)警,并啟動(dòng)溫濕度調(diào)節(jié)設(shè)備。溫度回到限定值內(nèi)后,停止報(bào)警。當(dāng)溫度不僅回到上下限以內(nèi),而且留有一定裕量后,停止溫濕度調(diào)節(jié)設(shè)備。如果需要修改溫濕度上下限,可以通過(guò)按鍵進(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é)果完成程度測(cè)量溫度范圍-40~40℃完成測(cè)量溫度誤差±0.5%完成測(cè)量濕度范圍0~100%RH完成測(cè)量適度誤差±4.5%完成液晶屏顯示用LCD1602顯示完成超限報(bào)警用蜂鳴器報(bào)警完成修改上下限通過(guò)獨(dú)立式鍵盤修改完成6.3系統(tǒng)功能分析該大棚倉(cāng)庫(kù)溫濕度自動(dòng)控制系統(tǒng)能通過(guò)獨(dú)立式鍵盤設(shè)置溫濕度上下限,通過(guò)LCD1602顯示溫濕度,并在超限的情況下報(bào)警、啟動(dòng)調(diào)節(jié)設(shè)備。其中輸出控制和通過(guò)鍵盤設(shè)置上下限都是通過(guò)調(diào)用子程序?qū)崿F(xiàn)的。鍵盤的工作方式分兩種,一種是查詢方式,一種是中斷方式。中斷方式比較節(jié)省系統(tǒng)資源,只有當(dāng)有按鍵按下時(shí)才會(huì)進(jìn)入鍵盤中斷子程序,進(jìn)一步掃描是那些鍵被按下;而查詢方式則是在主程序中調(diào)用鍵盤掃描子程序,不管有沒(méi)有鍵按下,每次程序循環(huán)中都要一一判斷每個(gè)鍵是否按下,故這種方式占用的單片機(jī)的處理時(shí)間更多。但是由于本次設(shè)計(jì)用到的按鍵不多,只有五個(gè),功能比較簡(jiǎn)單,而且單片機(jī)工作比較空閑,因此使用的是查詢方式來(lái)處理鍵盤的輸入。此外,還應(yīng)注意到的是,當(dāng)溫濕度超限后,要報(bào)警并啟動(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í)踐上的不足,無(wú)論是畫電路原理圖、做仿真、做實(shí)物都牽涉到很多自己以前沒(méi)有接觸過(guò)的內(nèi)容。通過(guò)這次畢業(yè)設(shè)計(jì),我感覺(jué)我實(shí)際應(yīng)用知識(shí)的能力有了很大提高。尤其讓我感受頗多的是使用萬(wàn)能板焊接實(shí)物。這個(gè)看似簡(jiǎn)單的事情花了我三天的時(shí)間,而且板子還有很多問(wèn)題。以前焊過(guò)PCB板,于是想當(dāng)然地以為焊萬(wàn)能板也很容易,不就是用飛線連接嗎,還不用畫PCB圖,不用考慮怎么布線,于是就選擇了使用萬(wàn)能板來(lái)焊接實(shí)物。用導(dǎo)線焊了很久,剛開(kāi)始還好,到了后來(lái)線越來(lái)越多,要放置新的元器件都很困難。有些焊點(diǎn)焊多了錫都很難焊上去。由于飛線太多,容易產(chǎn)生很多虛焊,這都為后面的調(diào)試增加了難度。所以說(shuō),考慮問(wèn)題要從實(shí)際出發(fā),不能想當(dāng)然。做復(fù)雜的板子最好用PCB板,用萬(wàn)能板的話很容易出錯(cuò)。而且,畢業(yè)設(shè)計(jì)是一人一個(gè)題目,這很好地鍛煉了我的獨(dú)立思考解決問(wèn)題的能力和綜合分析問(wèn)題的能力。以前做課程設(shè)計(jì)都是幾個(gè)人一組,有什么問(wèn)題都很容易問(wèn)別人,并且自己往往就做自己較為熟悉的部分,這使得自己獲得的知識(shí)很不完整,做一個(gè)設(shè)計(jì)的時(shí)候不能全面地思考問(wèn)題。這次畢業(yè)設(shè)計(jì),自己一個(gè)人從方案的選擇、單元模塊的設(shè)計(jì)、器件的選型、軟件設(shè)計(jì)、原理圖繪制一直做到英文資料的翻譯,自己感覺(jué)對(duì)設(shè)計(jì)的整個(gè)過(guò)程方法有了更深入的了解??偠灾厴I(yè)設(shè)計(jì)大大地鍛煉了我解決實(shí)際問(wèn)題的能力,為我將來(lái)的就業(yè)打下了堅(jiān)實(shí)的基礎(chǔ)。附錄1系統(tǒng)仿真圖附錄2源程序#include<reg52.h>#include<intrins.h>#include<math.h>//Keillibrary#include<stdio.h> //Keillibrary#include"show.h"sbitRS=P1^2;sbitRW=P1^1;sbitE=P1^0;sfrDBPort=0x80;//P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.數(shù)據(jù)端口/********1602函數(shù)聲明********///voidLCD_Initial();//voidGotoXY(unsignedcharx,unsignedchary);//voidPrint(unsignedchar*str);//voidLCD_Write(bitstyle,unsignedcharinput);voiddelay2(){ unsignedinti,j; for(i=0;i<100;i++) for(j=0;j<150;j++);}/*************************************************************************///1602程序//內(nèi)部等待函數(shù)*************************************************************unsignedcharLCD_Wait(void){RS=0;RW=1;_nop_();E=1;_nop_();E=0;returnDBPort;}//向LCD寫入命令或數(shù)據(jù)********************************************************voidLCD_Write(bitstyle,unsignedcharinput){E=0;RS=style;RW=0;_nop_();DBPort=input;_nop_();//注意順序E=1;_nop_();//注意順序E=0;_nop_();LCD_Wait();}voidLCD_SetDisplay(unsignedcharDisplayMode){LCD_Write(LCD_COMMAND,0x08|DisplayMode);}voidLCD_SetInput(unsignedcharInputMode){LCD_Write(LCD_COMMAND,0x04|InputMode);}//初始化LCD************************************************************voidLCD_Initial(){E=0;LCD_Write(LCD_COMMAND,0x38);//8位數(shù)據(jù)端口,2行顯示,5*7點(diǎn)陣LCD_Write(LCD_COMMAND,0x38);LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);//開(kāi)啟顯示,無(wú)光標(biāo)LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);//清屏LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);//AC遞增,畫面不動(dòng)}//液晶字符輸入的位置************************voidGotoXY(unsignedcharx,unsignedchary){if(y==0)LCD_Write(LCD_COMMAND,0x80|x);if(y==1)LCD_Write(LCD_COMMAND,0x80|(x-0x40));}//將字符輸出到液晶顯示voidPrint(unsignedchar*str){while(*str!='\0'){LCD_Write(LCD_DATA,*str);str++;}}//慢速顯示字符voidPrint_slow(unsignedchar*str){while(*str!='\0'){LCD_Write(LCD_DATA,*str);str++; delay2();}}#include<reg52.h>#include<intrins.h>#include<math.h>//Keillibrary#include<stdio.h> //Keillibrary#include"sht11.h"#defineucharunsignedchar/*typedefunion //定義共同類型{unsignedinti; //i表示測(cè)量得到的溫濕度數(shù)據(jù)(int形式保存的數(shù)據(jù))floatf; //f表示測(cè)量得到的溫濕度數(shù)據(jù)(float形式保存的數(shù)據(jù))}value;*/sbitDATA=P2^1;sbitSCK=P2^0;/********SHT11函數(shù)聲明********///voids_connectionreset(void);//chars_measure(unsignedchar*p_value,unsignedchar*p_checksum,unsignedcharmode);//voidcalc_sth10(float*p_humidity,float*p_temperature);/*************************************************************************************///SHT11程序#definenoACK0 //繼續(xù)傳輸數(shù)據(jù),用于判斷是否結(jié)束通訊#defineACK1//結(jié)束數(shù)據(jù)傳輸; //地址命令讀/寫#defineSTATUS_REG_W0x06//00000110#defineSTATUS_REG_R0x07//00000111#defineMEASURE_TEMP0x03//00000011#defineMEASURE_HUMI0x05//00000101#defineRESET0x1e//00011110//寫字節(jié)程序chars_write_byte(unsignedcharvalue){ unsignedchari,error=0; for(i=0x80;i>0;i/=2)//shiftbitformasking高位為1,循環(huán)右移 { if(i&value)DATA=1;//和要發(fā)送的數(shù)相與,結(jié)果為發(fā)送的位 elseDATA=0; SCK=1; _nop_();_nop_();_nop_();//延時(shí)3us SCK=0; } DATA=1;//釋放數(shù)據(jù)線 SCK=1; error=DATA;//檢查應(yīng)答信號(hào),確認(rèn)通訊正常 _nop_();_nop_();_nop_(); SCK=0; DATA=1; returnerror;//error=1通訊錯(cuò)誤}//讀字節(jié)程序chars_read_byte(unsignedcharack)//{ unsignedchari,val=0; DATA=1;//釋放數(shù)據(jù)線 for(i=0x80;i>0;i>>=1)//高位為1,循環(huán)右移 { SCK=1; if(DATA)val=(val|i);//讀一位數(shù)據(jù)線的值 SCK=0; } DATA=!ack;//如果是校驗(yàn),讀取完后結(jié)束通訊; SCK=1; _nop_();_nop_();_nop_();//延時(shí)3us SCK=0; _nop_();_nop_();_nop_(); DATA=1;//釋放數(shù)據(jù)線 returnval;}//啟動(dòng)傳輸voids_transstart(void)//generatesatransmissionstart//_____________//DATA:|_______|//______//SCK:___||___||______{ DATA=1;SCK=0;//準(zhǔn)備 _nop_(); SCK=1; _nop_(); DATA=0; _nop_(); SCK=0; _nop_();_nop_();_nop_(); SCK=1; _nop_(); DATA=1; _nop_(); SCK=0;}//連接復(fù)位voids_connectionreset(void)//communicationreset:DATA-line=1andatleast9SCKcyclesfollowedbytransstart//_____________________________________________________________//DATA:|_______|//_______________//SCK:__||__||__||__||__||__||__||__||__||______||___||______{ unsignedchari; DATA=1;SCK=0;//準(zhǔn)備 for(i=0;i<9;i++)//DATA保持高,SCK時(shí)鐘觸發(fā)9次,發(fā)送啟動(dòng)傳輸,通迅即復(fù)位 { SCK=1; SCK=0; } s_transstart();//啟動(dòng)傳輸}//軟復(fù)位程序/*chars_softreset(void)//resetsthesensorbyasoftreset{ unsignedcharerror=0; s_connectionreset();//啟動(dòng)連接復(fù)位 error+=s_write_byte(RESET);//發(fā)送復(fù)位命令 returnerror;//error=1通訊錯(cuò)誤}*///溫濕度測(cè)量chars_measure(unsignedchar*p_value,unsignedchar*p_checksum,unsignedcharmode)//進(jìn)行溫度或者濕度轉(zhuǎn)換,由參數(shù)mode決定轉(zhuǎn)換內(nèi)容;{// enum{TEMP,HUMI}; //已經(jīng)在頭文件中定義 unsignederror=0; unsignedinti; s_transstart();//啟動(dòng)傳輸 switch(mode)//選擇發(fā)送命令{ caseTEMP:error+=s_write_byte(MEASURE_TEMP);break; //測(cè)量溫度 caseHUMI:error+=s_write_byte(MEASURE_HUMI);break; //測(cè)量濕度 default:break; } for(i=0;i<65535;i++)if(DATA==0)break;//等待測(cè)量結(jié)束 if(DATA)error+=1;//如果長(zhǎng)時(shí)間數(shù)據(jù)線沒(méi)有拉低,說(shuō)明測(cè)量錯(cuò)誤 *(p_value)=s_read_byte(ACK);//讀第一個(gè)字節(jié),高字節(jié)(MSB) *(p_value+1)=s_read_byte(ACK);//讀第二個(gè)字節(jié),低字節(jié)(LSB) *p_checksum=s_read_byte(noACK);//readCRC校驗(yàn)碼 returnerror; //error=1通訊錯(cuò)誤}//溫濕度值標(biāo)度變換及溫度補(bǔ)償voidcalc_sth10(float*p_humidity,float*p_temperature){ constfloatC1=-4.0;//12位濕度精度修正公式 constfloatC2=+0.0405;//12位濕度精度修正公式 constfloatC3=-0.0000028;//12位濕度精度修正公式 constfloatT1=+0.01;//14位溫度精度5V條件修正公式 constfloatT2=+0.00008;//14位溫度精度5V條件修正公式 floatrh=*p_humidity;//rh:12位濕度 floatt=*p_temperature;//t:14位溫度 floatrh_lin;//rh_lin:濕度linear值 floatrh_true;//rh_true:濕度ture值 floatt_C;//t_C:溫度℃ t_C=t*0.01-40;//補(bǔ)償溫度 rh_lin=C3*rh*rh+C2*rh+C1;//相對(duì)濕度非線性補(bǔ)償 rh_true=(t_C-25)*(T1+T2*rh)+rh_lin;//相對(duì)濕度對(duì)于溫度依賴性補(bǔ)償 if(rh_true>100)rh_true=100;//濕度最大修正 if(rh_true<0.1)rh_true=0.1;//濕度最小修正 *p_temperature=t_C;//返回溫度結(jié)果 *p_humidity=rh_true;//返回濕度結(jié)果}

請(qǐng)刪除以下內(nèi)容,O(∩_∩)O謝謝?。。onduction,transferofheatorelectricitythroughasubstance,resultingfromadifferenceintemperaturebetweendifferentpartsofthesubstance,inthecaseofheat,orfromadifferenceinelectricpotential,inthecaseofelectricity.Sinceheatisenergyassociatedwiththemotionsoftheparticlesmakingupthesubstance,itistransferredbysuchmotions,shiftingfromregionsofhighertemperature,wheretheparticlesaremoreenergetic,toregionsoflowertemperature.Therateofheatflowbetweentworegionsisproportionaltothetemperaturedifferencebetweenthemandtheheatconductivityofthesubstance.Insolids,themoleculesthemselvesareboundandcontributetoconductionofheatmainlybyvibratingagainstneighboringmolecules;amoreimportantmechanism,however,isthemigrationofenergeticfreeelectronsthroughthesolid.Metals,whichhaveahighfree-electrondensity,aregoodconductorsofheat,whilenonmetals,suchaswoodorglass,havefewfreeelectronsanddonotconductaswell.Especiallypoorconductors,suchasasbestos,havebeenusedasinsulatorstoimpedeheatflow(seeinsulation).Liquidsandgaseshavetheirmoleculesfartherapartandaregenerallypoorconductorsofheat.Conductionofelectricityconsistsoftheflowofchargesasaresultofanelectromotiveforce,orpotentialdifference.Therateofflow,i.e.,theelectriccurrent,isproportionaltothepotentialdifferenceandtotheelectricalconductivityofthesubstance,whichinturndependsonthenatureofthesubstance,itscross-sectionalarea,anditstemperature.Insolids,electriccurrentconsistsofaflowofelectrons;asinthecaseofheatconduction,metalsarebetterconductorsofelectricitybecauseoftheirgreaterfree-electrondensity,whilenonmetals,suchasrubber,arepoorconductorsandmaybeusedaselectricalinsulators,ordielectrics.Increasingthecross-sectionalareaofagivenconductorwillincreasethecurrentbecausemoreelectronswillbeavailableforconduction.Increasingthetemperaturewillinhibitconductioninametalbecausetheincreasedthermalmotionsoftheelectronswilltendtointerferewiththeirregularflowinanelectriccurrent;inanonmetal,however,anincreaseintemperatureimprovesconductionbecauseitfreesmoreelectrons.Inliquidsandgases,currentconsistsnotonlyintheflowofelectronsbutalsointhatofions.Ahighlyionizedliquidsolution,e.g.,saltwater,isagoodconductor.Gasesathightemperaturestendtobecomeionizedandthusbecomegoodconductors(seeplasma),althoughatordinarytemperaturestheytendtobepoorconductors.Seeelectrochemistry;electrolysis;superconductivity.AlmosteveryonehasexperiencedtheDopplereffect,thoughperhapswithoutknowingwhatcausesit.Forexample,ifoneisstandingonastreetcornerandanambulanceapproacheswithitssirenblaring,thesoundofthesirensteadilygainsinpitchasitcomescloser.Then,asitpasses,thepitchsuddenlylowersperceptibly.ThisisanexampleoftheDopplereffect:thechangeintheobservedfrequencyofawavewhenthesourceofthewaveismovingwithrespecttotheobserver.TheDopplereffect,whichoccursbothinsoundandelectromagneticwaves—includinglightwaves—hasanumberofapplications.Astronomersuseit,forinstance,togaugethemovementofstarsrelativetoEarth.Closertohome,principlesrelatingtotheDopplereffectfindapplicationinradartechnology.Dopplerradarprovidesinformationconcerningweatherpatterns,butsomepeopleexperienceitinalesspleasantway:whenapoliceofficerusesittomeasuretheirdrivingspeedbeforewritingaticket.Soundandlightarebothexamplesofenergy,andbotharecarriedonwaves.Wavemotionisatypeofharmonicmotionthatcarriesenergyfromoneplacetoanotherwithoutactuallymovinganymatter.Itisrelatedtooscillation,atypeofharmonicmotioninoneormoredimensions.Oscillationinvolvesnonetmovement,onlymovementinplace;yetindividualpointsinthewavemediumareoscillatingevenastheoverallwavepatternmoves.Thetermperiodicmotion,ormovementrepeatedatregularintervalscalledperiods,describesthebehaviorofperiodicwaves—wavesinwhichauniformseriesofcrestsandtroughsfolloweachotherinregularsuccession.Aperiod(representedbythesymbolT)istheamountoftimerequiredtocompleteonefullcycleofthewave,fromtroughtocrestandbacktotrough.Periodismathematicallyrelatedtoseveralotheraspectsofwavemotion,includingwavespeed,frequency,andwavelength.Frequency(abbreviatedf)isthenumberofwavespassingthroughagivenpointduringtheintervalofonesecond.ItismeasuredinHertz(Hz),namedafternineteenth-centuryGermanphysicistHeinrichRudolfHertz(1857-1894),andaHertzisequaltoonecycleofoscillationpersecond.Higherfrequenciesareexpressedintermsofkilohertz(kHz;103or1,000cyclespersecond);megahertz(MHz;106or1millioncyclespersecond);andgigahertz(GHz;109or1billioncyclespersecond.)Wavelength(representedbythesymbolλ,theGreekletterlambda)isthedistancebetweenacrestandtheadjacentcrest,oratroughandanadjacenttrough,ofawave.Thehigherthefrequency,theshorterthewavelength.Amplitude,thoughmathematicallyindependentfromtheparametersdiscussed,iscriticaltotheunderstandingofsound.Definedasthemaximumdisplacementofavibratingmaterial,amplitudeisthe"size"ofawave.Thegreatertheamplitude,thegreatertheenergythewavecontains:amplitudeindicatesintensity,which,inthecaseofsoundwaves,ismanifestedaswhatpeoplecommonlycall"volume."Similarly,theamplitudeofalightwavedeterminestheintensityofthelight.electromagneticradiation,energyradiatedintheformofawaveasaresultofthemotionofelectriccharges.Amovingchargegivesrisetoamagneticfield,andifthemotionischanging(accelerated),thenthemagneticfieldvariesandinturnproducesanelectricfield.Theseinteractingelectricandmagneticfieldsareatrightanglestooneanotherandalsotothedirectionofpropagationoftheenergy.Thus,anelectromagneticwaveisatransversewave.Ifthedirectionoftheelectricfieldisconstant,thewaveissaidtobepolarized(seepolarizationoflight).Electromagneticradiationdoesnotrequireamaterialmediumandcantravelthroughavacuum.ThetheoryofelectromagneticradiationwasdevelopedbyJamesClerkMaxwellandpublishedin1865.Heshowedthatthespeedofpropagationofelectromagneticradiationshouldbeidenticalwiththatoflight,about186,000mi(300,000km)persec.SubsequentexperimentsbyHeinrichHertzverifiedMaxwell'spredictionthroughthediscoveryofradiowaves,alsoknownashertzianwaves.Lightisatypeofelectromagneticradiation,occupyingonlyasmallportionofthepossiblespectrumofthisenergy.Thevarioustypesofelectromagneticradiationdifferonlyinwavelengthandfrequency;theyarealikeinallotherrespects.Thepossiblesourcesofelectromagneticradiationaredirectlyrelatedtowavelength:longradiowavesareproducedbylargeantennassuchasthoseusedbybroadcastingstations;muchshortervisiblelightwavesareproducedbythemotionsofchargeswithinatoms;theshortestwaves,thoseofgammaradiation,resultfromchangeswithinthenucleusoftheatom.Inorderofdecreasingwavelengthandincreasingfrequency,varioustypesofelectromagneticradiationinclude:electricwaves,radiowaves(includingAM,FM,TV,andshortwaves),microwaves,infraredradiation,visiblelight,ultravioletradiation,Xrays,andgammaradiation.Accordingtothequantumtheory,lightandotherformsofelectromagneticradiationmayattimesexhibitpropertieslikethoseofparticlesintheirinteractionwithmatter.(Conversely,particlessometimesexhibitwavelike

溫馨提示

  • 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)論