基于單片機(jī)溫濕度監(jiān)測系統(tǒng)設(shè)計(jì)(完整資料)_第1頁
基于單片機(jī)溫濕度監(jiān)測系統(tǒng)設(shè)計(jì)(完整資料)_第2頁
基于單片機(jī)溫濕度監(jiān)測系統(tǒng)設(shè)計(jì)(完整資料)_第3頁
基于單片機(jī)溫濕度監(jiān)測系統(tǒng)設(shè)計(jì)(完整資料)_第4頁
基于單片機(jī)溫濕度監(jiān)測系統(tǒng)設(shè)計(jì)(完整資料)_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于單片機(jī)溫濕度監(jiān)測系統(tǒng)設(shè)計(jì)(完整資料)(可以直接使用,可編輯優(yōu)秀版資料,歡迎下載)

基于單片機(jī)溫濕度監(jiān)測系統(tǒng)設(shè)計(jì)(完整資料)(可以直接使用,可編輯優(yōu)秀版資料,歡迎下載)基于單片機(jī)機(jī)房溫濕度監(jiān)測系統(tǒng)設(shè)計(jì)學(xué)院(系):自動(dòng)化學(xué)院專業(yè)班級(jí):學(xué)生姓名:指導(dǎo)教師:年月號(hào)學(xué)位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包括任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫的成果作品。本人完全意識(shí)到本聲明的法律后果由本人承擔(dān)。作者簽名:年月日學(xué)位論文版權(quán)使用授權(quán)書本學(xué)位論文作者完全了解學(xué)校有關(guān)保障、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向有關(guān)學(xué)位論文管理部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)省級(jí)優(yōu)秀學(xué)士論文評(píng)選機(jī)構(gòu)將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。本學(xué)位論文屬于1、保密囗,在年解密后適用本授權(quán)書2、不保密囗。(請(qǐng)?jiān)谝陨舷鄳?yīng)方框內(nèi)打“√")作者簽名:年月日導(dǎo)師簽名:年月日(注:此頁內(nèi)容裝訂在論文扉頁)摘要隨著科技的進(jìn)步,新的通信儀器也不斷被發(fā)明出來,為了使通信儀器始終工作在最佳狀態(tài)并且達(dá)到最長使用壽命,對(duì)通信機(jī)房的環(huán)境要求也越來越苛刻。溫濕度控制系統(tǒng)的功能是對(duì)機(jī)房內(nèi)空氣的溫度、濕度、潔凈度、空氣流速等參數(shù)進(jìn)行調(diào)節(jié)以滿足人體舒適和通信機(jī)房機(jī)器工作的要求。本文設(shè)計(jì)了一種基于AT89C51的溫濕度的控制系統(tǒng),系統(tǒng)以單片機(jī)為主,將溫濕度傳感器、通信接口等器件聯(lián)系起來,對(duì)數(shù)據(jù)進(jìn)行處理轉(zhuǎn)換。通過溫濕度控制技術(shù)將溫濕度控制在一定范圍內(nèi),并且盡量提高溫度控制的精確度。系統(tǒng)利用空調(diào)和風(fēng)機(jī)的協(xié)調(diào)控制進(jìn)行溫濕度改變,同時(shí)通過風(fēng)機(jī)充分利用室外的溫濕度來保持室內(nèi)的溫濕度,可以避免單獨(dú)用空調(diào)的不斷電控制時(shí)造成的電能浪費(fèi),從而達(dá)到節(jié)能的目的。本系統(tǒng)采用可靠性好,溫濕度測量精確度高的SHT11溫濕度傳感器以達(dá)到更高的控制精度。本設(shè)計(jì)控制方法簡單,通過簡單的人機(jī)交互將需要的溫度范圍設(shè)定好,然后通過對(duì)機(jī)房溫濕度的實(shí)時(shí)監(jiān)測將溫濕度反饋,在不滿足溫度設(shè)定時(shí),系統(tǒng)發(fā)出警報(bào)通知工作人員打開空調(diào)工作。在濕度控制方面原理也類似,通過鍵盤設(shè)定濕度,然后當(dāng)濕度不滿足時(shí),系統(tǒng)發(fā)出警報(bào)通知工作人員采取相應(yīng)措施使?jié)穸冗_(dá)到設(shè)定濕度范圍。本設(shè)計(jì)人機(jī)交互簡單,只需按鍵盤的上下鍵即可進(jìn)行溫度的設(shè)定,具有很好的實(shí)用推廣作用。關(guān)鍵詞:單片機(jī);溫濕度監(jiān)測;溫濕度控制AbstractWiththeadvancementoftechnology,newcommunicat(yī)ionequipmenthasalsobeendevised,inordertomakethecommunicationequipmentisalwaysworkinginthebestconditionandachievethelongestservicelifeofthecommunicationsroomenvironmentalrequirementshavebecomemoredemanding.Temperatureandhumiditycontrolsystemfunctionsistheengineroomairtemperature,humidity,cleanliness,airvelocityandotherparametersadjustedtomeethumancomfortandtelecommunicationsroommachineworkrequirements。ThisarticleisdesignedbasedonAT89C51temperatureandhumiditycontrolsystem,amicrocontroller-basedsystemwillbetemperatureandhumiditysensors,communicationinterfacesandotherdeviceslinkedtothedataprocessingconversion。Temperatureandhumiditycontrolbythetemperatureandhumiditycontrolinacertainrange,andtomaximizetheaccuracyofthetemperaturecontrol。Theuseofairconditioningandfansystemscoordinatedcontroltemperatureandhumiditychanges,throughfulluseoftheoutdoorfantokeepthetemperatureandhumidityindoortemperatureandhumidity,airconditioningalonecanavoidtheconstantpowercontrolenergywastecaused,soastoachieveenergy-savingpurposes。Thesystemusesahighreliability,highaccuracymeasurementoftemperatureandhumiditySHT11temperatureandhumiditysensorstoachievehighercontrolprecision.Thedesignofthecontrolmethodissimple,throughsimpleinteractivesetthedesiredtemperature,andthenthroughtheroomtemperatureandhumidityofthereal-timemonitoringthetemperatureandhumidityfee(cuò)dback,whenthetemperaturesettingisnotsatisfied,sendingasignaltotheair—conditioningoperationuntilreachesthesettemperat(yī)ure,timeandthensendasignaltotheairconditioningcontrolterminal,makeitstopworkinginordertoachievethepurposeofenergysaving.Inthehumiditycontrolprincipleissimilar,setthehumiditythroughthekeyboard,andthenwhenthehumidityisnotsatisfied,airconditioningandfanworkinordertoachievethepurposeofhumidificationordehumidification,whenthehumidityreachesthesethumidityrange,air-conditioningandfanoffintoenergymode.Thedesignofhuman—computerinteractionissimple,justpressthekeyboardarrowkeystosetthetemperature,hasgoodpracticalroleinthepromotion.Keywords:SCM,;temperatureandhumiditymonitor,;temperatureandhumiditycontrol目錄TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc389664031”摘要PAGEREF_Toc389664031\hIHYPERLINK\l"_Toc389664032"AbstractPAGEREF_Toc389664032\hIIHYPERLINK\l”_Toc389664033"目錄PAGEREF_Toc389664033\h1第1章緒論P(yáng)AGEREF_Toc389664034\h1HYPERLINK\l"_Toc389664035”1。1設(shè)計(jì)背景及意義PAGEREF_Toc389664035\h11。2國內(nèi)外動(dòng)態(tài)及發(fā)展前景PAGEREF_Toc389664036\h1HYPERLINK\l"_Toc389664037"第2章系統(tǒng)總體設(shè)計(jì)PAGEREF_Toc389664037\h32。1系統(tǒng)概述PAGEREF_Toc389664038\h32。2器件選型PAGEREF_Toc389664039\h3HYPERLINK\l"_Toc389664040"2.2.1單片機(jī)選型PAGEREF_Toc389664040\h32。2.2傳感器選型PAGEREF_Toc389664041\h4HYPERLINK\l"_Toc389664042"第3章SHT11傳感器PAGEREF_Toc389664042\h63。1SHT11溫濕度傳感器的基本原理PAGEREF_Toc389664043\h63.2SHT11溫濕度傳感器特性PAGEREF_Toc389664044\h6HYPERLINK\l"_Toc389664045”3。3SHT11傳感器的命令與接口時(shí)序PAGEREF_Toc389664045\h8HYPERLINK\l"_Toc389664046"第4章系統(tǒng)硬件設(shè)計(jì)PAGEREF_Toc389664046\h10HYPERLINK\l”_Toc389664047”4。1室內(nèi)溫濕度監(jiān)測電路原理及設(shè)計(jì)過程PAGEREF_Toc389664047\h104.2LCD1602的優(yōu)點(diǎn)及硬件連線圖PAGEREF_Toc389664048\h11HYPERLINK\l”_Toc389664049”4.3按鍵輸入的硬件連線圖及分析PAGEREF_Toc389664049\h114.4系統(tǒng)總體硬件接線圖PAGEREF_Toc389664050\h12HYPERLINK\l”_Toc389664051”第5章系統(tǒng)軟件設(shè)計(jì)PAGEREF_Toc389664051\h13HYPERLINK\l”_Toc389664052”5。1系統(tǒng)主程序設(shè)計(jì)PAGEREF_Toc389664052\h13HYPERLINK\l"_Toc389664053”5。2室內(nèi)溫濕度監(jiān)測模塊程序設(shè)計(jì)PAGEREF_Toc389664053\h14第6章仿真結(jié)果及分析PAGEREF_Toc389664054\h156。1程序調(diào)試PAGEREF_Toc389664055\h15HYPERLINK\l”_Toc389664056"6。2仿真結(jié)果截圖PAGEREF_Toc389664056\h16HYPERLINK\l"_Toc389664057”第7章結(jié)論P(yáng)AGEREF_Toc389664057\h19HYPERLINK\l”_Toc389664058"附錄PAGEREF_Toc389664058\h20參考文獻(xiàn)PAGEREF_Toc389664059\h33致謝PAGEREF_Toc389664060\h34第1章緒論1.1設(shè)計(jì)背景及意義現(xiàn)代通信機(jī)房通信設(shè)備密集,提高了對(duì)通信機(jī)房安全性的要求,因此對(duì)溫度和濕度的控制也更加重視。任何溫度和濕度的急劇變化都可能會(huì)導(dǎo)致這些通信設(shè)備不能正常工作或失效,嚴(yán)重時(shí)甚至可能會(huì)導(dǎo)致通信系統(tǒng)崩潰。因此,研究可靠的通信機(jī)房溫度和濕度控制系統(tǒng),已經(jīng)迫切成為當(dāng)前的需要。溫度和濕度控制使用人工手段有許多缺點(diǎn)和不足之處,如占用人力資源,控制精確度太低,不能預(yù)測溫度和濕度的變化趨勢等[1]。綜合各種核心通信設(shè)備的最佳工作環(huán)境,可以設(shè)定通信機(jī)房的溫度范圍為22至24攝氏度,相對(duì)濕度在35%?50%之間[2]。人工加熱,加濕,通風(fēng)和制冷設(shè)備的操作控制費(fèi)時(shí)費(fèi)力,而且精確度不高?;趩纹瑱C(jī)的通信機(jī)房溫濕度控制系統(tǒng),卻能夠滿足通信機(jī)房溫度和濕度的監(jiān)測和控制要求。溫濕度控制系統(tǒng)的功能是對(duì)機(jī)房內(nèi)空氣的溫度、濕度、潔凈度、空氣流速等參數(shù)進(jìn)行調(diào)節(jié)以滿足人體舒適和電信機(jī)房機(jī)器工作的要求。它使得電信機(jī)房的儀器能處在最佳工作狀態(tài),達(dá)到最長的使用壽命[3]。本設(shè)計(jì)采用單片機(jī)作為核心設(shè)備,單片機(jī)具有體積小、靈活性強(qiáng)、功能強(qiáng)大等眾多優(yōu)點(diǎn),越來越廣泛地應(yīng)用于智能儀表、工業(yè)控制、日常生活等許多領(lǐng)域.本文的基于單片機(jī)的通信機(jī)房溫濕度控制系統(tǒng)設(shè)計(jì)主要在于讓使用者可以從現(xiàn)場或者遠(yuǎn)處精確監(jiān)測并且控制通信機(jī)房的溫度和濕度[4]。1。2國內(nèi)外動(dòng)態(tài)及發(fā)展前景目前先進(jìn)國家通信機(jī)房的自動(dòng)化水平較高,裝備有完善的檢測儀表和計(jì)算機(jī)控制系統(tǒng).其計(jì)算機(jī)控制系統(tǒng)已采用集散系統(tǒng)和分布式系統(tǒng)的形式,大部分配有先進(jìn)的控制算法,能夠獲得較好的操作性能指標(biāo).單片微型計(jì)算機(jī)是隨著超大規(guī)模集成電路的技術(shù)的發(fā)展而誕生的。由于它具有體積小,功能強(qiáng),性價(jià)比高等優(yōu)點(diǎn),所以廣泛應(yīng)用于通信裝置,電子儀表,家用電器,節(jié)能裝置,軍事裝置,機(jī)器人,工業(yè)控制等諸多領(lǐng)域,使產(chǎn)品小型化,智能化,既提高了產(chǎn)品的功能和質(zhì)量又降低了成本,簡化了設(shè)計(jì)。國內(nèi)外大部分控制算法都采用PID算法及改進(jìn)的PID算法,PID控制是最早發(fā)展起來的控制策略之一,由于其算法簡單、兼容性好、可靠性高等優(yōu)點(diǎn),被廣泛應(yīng)用于通信機(jī)房的溫濕度控制。當(dāng)用計(jì)算機(jī)實(shí)現(xiàn)后,數(shù)字PID控制器更顯示出參數(shù)調(diào)整靈活、算法變化多樣、簡單方便的優(yōu)點(diǎn)。隨著生產(chǎn)的發(fā)展,對(duì)控制的要求也越來越高,隨之發(fā)展出許多以計(jì)算機(jī)為基礎(chǔ)的新型控制算法,如自適應(yīng)PID控制、模糊PID控制、智能PID控制等等[5]。我國目前的溫濕度控制總體技術(shù)水平處于發(fā)達(dá)國家20世紀(jì)80年代中后期水平,成熟產(chǎn)品主要以“點(diǎn)位”控制及常規(guī)的PID控制器為主,他只能適應(yīng)一般溫度控制,難于高控制精度的溫濕度控制。在較高精度控制場合和高智能化控制場合領(lǐng)域內(nèi),國內(nèi)技術(shù)還不成熟[6]??刂扑惴ǚ矫?國內(nèi)基本上都是采用PID算法,或者改進(jìn)的PID算法。很少有采用在書面資料上描述的現(xiàn)代先進(jìn)算法。因此我國的溫濕度控制技術(shù)與發(fā)達(dá)國家還有一定的差距。溫控器控制性能方面,國內(nèi):0.1℃控制精度的溫控器,現(xiàn)在國內(nèi)有好幾個(gè)品牌都能夠達(dá)到這個(gè)標(biāo)準(zhǔn)。但0。01℃控制精度就難說了,更高的控制精度就基本上沒有了。國外:有好幾個(gè)品牌能達(dá)到0.01℃控制精度,有個(gè)別品牌能達(dá)0.005℃控制精度[7].檢測性能方面,國內(nèi)溫控器的溫度漂移基本上都是0.1℃以上。國外的有幾個(gè)品牌溫度漂移能保持在0.03℃以下。對(duì)于通信機(jī)房的溫濕度監(jiān)測系統(tǒng)的發(fā)展前景,有人提出了以下幾點(diǎn):(1)監(jiān)視/控功能系統(tǒng)具有通過遙信、遙測、遙控和遙調(diào),所謂“四遙”功能,對(duì)整個(gè)系統(tǒng)進(jìn)行集中監(jiān)控管理,實(shí)現(xiàn)少人值守和無人值守的目標(biāo)。(2)系統(tǒng)可實(shí)時(shí)收集各設(shè)備的運(yùn)行參數(shù)、工作狀態(tài)及告警信息.系統(tǒng)能對(duì)智能型和非智能型的設(shè)備進(jìn)行監(jiān)控,準(zhǔn)確的實(shí)現(xiàn)遙信、遙調(diào)、遙控及遙調(diào)等四遙功能.即既能真實(shí)的監(jiān)測被監(jiān)控現(xiàn)場對(duì)象設(shè)備的各種工作狀態(tài)、運(yùn)行參數(shù),又能根據(jù)需要遠(yuǎn)程地對(duì)監(jiān)控現(xiàn)場對(duì)象進(jìn)行方便的控制操作,還能遠(yuǎn)程的對(duì)具有可配置運(yùn)行參數(shù)的現(xiàn)場對(duì)象的參數(shù)進(jìn)行修改.(3)系統(tǒng)設(shè)置各級(jí)控制操作權(quán)限.如果需要并得到相應(yīng)授權(quán),系統(tǒng)管理人員可以對(duì)系統(tǒng)監(jiān)控對(duì)象、人員權(quán)限等進(jìn)行配置;系統(tǒng)值班操作人員可以對(duì)有關(guān)設(shè)備進(jìn)行遙控或遙調(diào),以便處理相關(guān)事件或調(diào)整設(shè)備工作狀態(tài),確保機(jī)房設(shè)備等在最佳狀態(tài)下運(yùn)行[8]。(4)告警功能a)無論監(jiān)控系統(tǒng)控制臺(tái)處于任何界面,均應(yīng)及時(shí)自動(dòng)提示告警,顯示并打印告警信息。所有告警一律采用可視、可聞聲光告警信號(hào)。b)不同等級(jí)的告警信號(hào)應(yīng)采用不同的顯示顏色和告警聲響.緊急告警標(biāo)識(shí)為紅色標(biāo)識(shí)閃爍,重要告警為粉紅色標(biāo)識(shí)閃爍,一般告警為黃色標(biāo)識(shí)閃爍。c)發(fā)生告警時(shí),應(yīng)由維護(hù)人員進(jìn)行告警確認(rèn)。如果在規(guī)定時(shí)間內(nèi)(根據(jù)通信線路情況確定)未確認(rèn),可根據(jù)設(shè)定條件自動(dòng)通過電話或手機(jī)等通知相關(guān)人員。告警在確認(rèn)后,聲光告警應(yīng)停止,在發(fā)生新告警時(shí),應(yīng)能再次觸發(fā)聲光告警功能。d)具有多地點(diǎn)、多事件的并發(fā)告警功能,無丟失告警信息,告警準(zhǔn)確率為100%.e)系統(tǒng)能對(duì)不需要做出反應(yīng)的告警進(jìn)行屏蔽、過濾。f)系統(tǒng)能根據(jù)需要對(duì)各種歷史告警的信息進(jìn)行查詢、統(tǒng)計(jì)和打印。各種告警信息不能在任何地方進(jìn)行更改。g)系統(tǒng)除對(duì)被監(jiān)控對(duì)象具有告警功能外,還能進(jìn)行自診斷(例如,系統(tǒng)掉電、通訊線路中斷等),能直觀地顯示故障內(nèi)容,從而系統(tǒng)穩(wěn)定具有穩(wěn)定自保護(hù)能力[9].第2章系統(tǒng)總體設(shè)計(jì)2.1系統(tǒng)概述此機(jī)房溫濕度控制系統(tǒng)以單片機(jī)為主,將溫濕度傳感器、通信接口等器件聯(lián)系起來,對(duì)數(shù)據(jù)進(jìn)行處理轉(zhuǎn)換。通過溫濕度控制技術(shù)將溫濕度控制在一定范圍內(nèi),并且盡量提高溫度控制的精確度。該系統(tǒng)的工作流程:傳感器感應(yīng)機(jī)房內(nèi)溫濕度,將溫濕度信息轉(zhuǎn)化成數(shù)字信息,通過I2C總線與單片機(jī)通信,傳輸給單片機(jī)存儲(chǔ)起來,并將此信息與鍵盤輸入的溫濕度閾值作比較。若溫濕度在設(shè)定閾值內(nèi),則表示此時(shí)機(jī)房溫濕度正常;若溫濕度不在設(shè)定閾值內(nèi),則表示此時(shí)機(jī)房溫濕度不正常,單片機(jī)控制報(bào)警器發(fā)出警報(bào),工作人員聽到警報(bào)采取相應(yīng)措施調(diào)節(jié)機(jī)房內(nèi)溫濕度.使機(jī)房內(nèi)溫濕度達(dá)到設(shè)定范圍內(nèi),警報(bào)消除。同時(shí),單片機(jī)將溫濕度信息送至液晶顯示器實(shí)時(shí)顯示,便于工作人員記錄觀察。AT89C51單片機(jī)AT89C51單片機(jī)機(jī)房內(nèi)溫濕度SHT11傳感器鍵盤輸入報(bào)警器液晶顯示圖2.1系統(tǒng)總體設(shè)計(jì)框圖2.2器件選型2。2.1單片機(jī)選型單片機(jī)的的選型是一件重要而費(fèi)心的事情,如果單片機(jī)型號(hào)選擇得合適,單片機(jī)應(yīng)用系統(tǒng)就會(huì)經(jīng)濟(jì)可靠;如果選擇得不合適,就會(huì)造成經(jīng)濟(jì)浪費(fèi),影響單片機(jī)應(yīng)用系統(tǒng)的正常運(yùn)行,甚至根本就達(dá)不到預(yù)先設(shè)計(jì)的功能。對(duì)于一個(gè)已經(jīng)設(shè)計(jì)好的單片機(jī)應(yīng)用系統(tǒng)來說,它的技術(shù)要求和系統(tǒng)功能都應(yīng)當(dāng)十分明確.如果選擇功能過于少的單片機(jī),這個(gè)單片機(jī)應(yīng)用系統(tǒng)就無法完成控制任務(wù);但是如果選擇的單片機(jī)功能過于強(qiáng)大,這不但沒有必要,還會(huì)造成資源浪費(fèi),增加實(shí)用成本[10]。本設(shè)計(jì)對(duì)單片機(jī)的要求很高,于是選擇了性能卓越的AT89C51單片機(jī)。AT89C51是51系列單片機(jī)的一個(gè)型號(hào),它是ATMEL公司生產(chǎn)的。AT89C51是一個(gè)低電壓,高性能CMOS8位單片機(jī),片內(nèi)含8kbytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS—51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,功能強(qiáng)大的AT89C51單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合[11]。AT89C51有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線,AT89C51可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程(S系列的才支持在線編程).其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲(chǔ)器可有效地降低開發(fā)成本[12]。AT89C51為40腳雙列直插封裝的8位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的C51內(nèi)核。主要管腳有:XTAL1(19腳)和XTAL2(18腳)為振蕩器輸入輸出端口,外接12MHz晶振。RST/Vpd(9腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路.VCC(40腳)和VSS(20腳)為供電端口,分別接+5V電源的正負(fù)端。P0~P3為可編程通用I/O腳,其功能用途由軟件定義[13].圖2.2AT89C51單片機(jī)2。2。2傳感器選型現(xiàn)在國內(nèi)外主要使用的溫濕度傳感器有DHT90,SHT7x系列,SHT1x系列,THTK—01等。DHT90和THTK-01在溫濕度測量精確度上有所不足,而本設(shè)計(jì)對(duì)通信機(jī)房的溫濕度監(jiān)測精確度要求很高,因此排除。SHT7x系列是立式插針型溫濕度傳感器,SHT1x系列是貼片型溫濕度傳感器,在實(shí)用方面,貼片型傳感器安裝簡便而且價(jià)格相對(duì)較低,故選擇SHT1x系列傳感器[14]。本設(shè)計(jì)系統(tǒng)溫濕度傳感器采用的瑞士生產(chǎn)的SHT11單片集成傳感器.SHT11的濕度檢測運(yùn)用電容式結(jié)構(gòu),并采用具有不同保護(hù)的“微型結(jié)構(gòu)”檢測電極系統(tǒng)與聚合物覆蓋層來組成傳感器芯片的電容,除保持電容式濕敏器件的原有特性外,還可抵御來自外界的影響。由于它將溫度傳感器與濕度傳感器結(jié)合在一起而構(gòu)成了一個(gè)單一的個(gè)體,因而測量精度較高且可精確得出露點(diǎn),同時(shí)不會(huì)產(chǎn)生由于溫度與濕度傳感器之間隨溫度梯度變化引起的誤差[15]。CMOSensTM技術(shù)不僅將溫濕度傳感器結(jié)合在一起,而且還將信號(hào)放大器、模/數(shù)轉(zhuǎn)換器、校準(zhǔn)數(shù)據(jù)存儲(chǔ)器、標(biāo)準(zhǔn)I2C總線等電路全部集成在一個(gè)芯片內(nèi).SHT11的每一個(gè)傳感器都是在極為精確的濕度室中校準(zhǔn)的.SHT11傳感器的校準(zhǔn)系數(shù)預(yù)先存在OTP內(nèi)存中。經(jīng)校準(zhǔn)的相對(duì)濕度和溫度傳感器與一個(gè)14位的A/D轉(zhuǎn)換器相連,可將轉(zhuǎn)換后的數(shù)字溫濕度值送給二線I2C總線器件,從而將數(shù)字信號(hào)轉(zhuǎn)換為符合I2C總線協(xié)議的串行數(shù)字信號(hào)[16].第3章SHT11傳感器3.1SHT11溫濕度傳感器的基本原理SHT11的濕度檢測運(yùn)用電容式結(jié)構(gòu),并采用具有不同保護(hù)的“微型結(jié)構(gòu)”檢測電極系統(tǒng)與聚合物覆蓋層來組成傳感器芯片的電容,除保持電容式濕敏器件的原有特性外,還可抵御來自外界的影響。由于它將溫度傳感器與濕度傳感器結(jié)合在一起而構(gòu)成了一個(gè)單一的個(gè)體,因而測量精度較高且可精確得出露點(diǎn),同時(shí)不會(huì)產(chǎn)生由于溫度與濕度傳感器之間隨溫度梯度變化引起的誤差.CMOSensTM技術(shù)不僅將溫濕度傳感器結(jié)合在一起,而且還將信號(hào)放大器、模/數(shù)轉(zhuǎn)換器、校準(zhǔn)數(shù)據(jù)存儲(chǔ)器、標(biāo)準(zhǔn)I2C總線等電路全部集成在一個(gè)芯片內(nèi).SHT11傳感器的內(nèi)部結(jié)構(gòu)框圖如圖3。1所示[17]。圖3.1SHT11內(nèi)部結(jié)構(gòu)圖SHT11的每一個(gè)傳感器都是在極為精確的濕度室中校準(zhǔn)的.SHT11傳感器的校準(zhǔn)系數(shù)預(yù)先存在OTP內(nèi)存中。經(jīng)校準(zhǔn)的相對(duì)濕度和溫度傳感器與一個(gè)14位的A/D轉(zhuǎn)換器相連,可將轉(zhuǎn)換后的數(shù)字溫濕度值送給二線I2C總線器件,從而將數(shù)字信號(hào)轉(zhuǎn)換為符合I2C總線協(xié)議的串行數(shù)字信號(hào)[18]。

由于將傳感器與電路部分結(jié)合在一起,因此,該傳感器具有比其它類型的濕度傳感器優(yōu)越得多的性能.首先是傳感器信號(hào)強(qiáng)度的增加增強(qiáng)了傳感器的抗干擾性能,保證了傳感器的長期穩(wěn)定性,而A/D轉(zhuǎn)換的同時(shí)完成,則降低了傳感器對(duì)干擾噪聲的敏感程度.其次在傳感器芯片內(nèi)裝載的校準(zhǔn)數(shù)據(jù)保證了每一只濕度傳感器都具有相同的功能,即具有100%的互換性。最后,傳感器可直接通過I2C總線與任何類型的微處理器、微控制器系統(tǒng)連接,從而減少了接口電路的硬件成本,簡化了接口方式。3.2SHT11溫濕度傳感器特性(1)濕度值輸出SHT11可通過I2C總線直接輸出數(shù)字量濕度值,其相對(duì)濕度數(shù)字輸出特性曲線如圖3。2所示.圖3.2濕度特性曲線由圖3可看出,SHT11的輸出特性呈一定的非線性,為了補(bǔ)償濕度傳感器的非線性,可按如下公式修正濕度值:RHlinear=c1+c2SORH+c3SORH2式中,SORH為傳感器相對(duì)濕度測量值,系數(shù)取值如下:12位:SORH:c1=-4,c2=0.0405,c3=-2.8×10-68位:SORH:c1=-4,c2=0.648,c3=—7.2×10-4(2)溫度值輸出由于SHT11溫度傳感器的線性非常好,故可用下列公式將溫度數(shù)字輸出轉(zhuǎn)換成實(shí)際溫度值:T=d1+d2SOT當(dāng)電源電壓為5V,且溫度傳感器的分辨率為14位時(shí),d1=-40d2=0。01,當(dāng)溫度傳感器的分辨率為12位時(shí),d1=—40d2=0.04.(3)露點(diǎn)計(jì)算空氣的露點(diǎn)值可根據(jù)相對(duì)濕度和溫度值來得出,具體的計(jì)算公式如下:LogEW=(0.66077+7.5T/(237.3+T)+[log10(RH)—2]Dp=[(0.66077-logEW)×237.3]/(logEW—8.16077)3.3SHT11傳感器的命令與接口時(shí)序SHT11傳感器共有5條用戶命令,具體命令格式見表1所列。下面介紹一下具體的命令順序及命令時(shí)序。表3。1SHT11傳感器命令列表命令編碼說明測量溫度00011溫度測量測量濕度00101濕度測量讀寄存器狀態(tài)00111“讀”狀態(tài)寄存器寫寄存器狀態(tài)00110“寫”狀態(tài)寄存器軟啟動(dòng)11110重啟芯片,清除狀態(tài)記錄器的錯(cuò)誤記錄11毫秒后進(jìn)入下一個(gè)命令(1)傳輸開始初始化傳輸時(shí),應(yīng)首先發(fā)出“傳輸開始”命令,該命令可在SCK為高時(shí)使DATA由高電平變?yōu)榈碗娖?并在下一個(gè)SCK為高時(shí)將DATA升高.接下來的命令順序包含三個(gè)地址位(目前只支持“000”)和5個(gè)命令位,當(dāng)DATA腳的ack位處于低電位時(shí),表示SHT11正確收到命令。(2)連接復(fù)位順序如果與SHT11傳感器的通訊中斷,下列信號(hào)順序會(huì)使串口復(fù)位:即當(dāng)DATA線處于高電平時(shí),觸發(fā)SCK9次以上(含9次),此后應(yīng)接著發(fā)一個(gè)“傳輸開始”命令。?表3.2位類型說明缺省7保留06讀工檢限(低電壓檢查)X5保留04保留03只用于試驗(yàn),不可以使用02讀/寫加熱0關(guān)1讀/寫不從OTP重下載0重下載0讀/寫’1'=8位相對(duì)濕度,12位溫度分辨率。’0'=12位相對(duì)濕度,14位濕度分辨率012位相對(duì)濕度,14位濕度(3)溫濕度測量時(shí)序當(dāng)發(fā)出了溫(濕)度測量命令后,控制器就要等到測量完成。使用8/12/14位的分辨率測量分別需要大約11/55/210ms的時(shí)間。為表明測量完成,SHT11會(huì)使數(shù)據(jù)線為低,此時(shí)控制器必須重新啟動(dòng)SCK,然后傳送兩字節(jié)的測量數(shù)據(jù)與1字節(jié)CRC校驗(yàn)和.控制器必須通過使DATA為低來確認(rèn)每一個(gè)字節(jié),所有的量均從右算,MSB列于第一位。通訊在確認(rèn)CRC數(shù)據(jù)位后停止。如果沒有用CRC-8校驗(yàn)和,則控制器就會(huì)在測量數(shù)據(jù)LSB后保持ack為高來停止通訊,SHT11在測量和通訊完成后會(huì)自動(dòng)返回睡眠模式。需要注意的是:為使SHT11的溫升低于0。1℃此時(shí)的工作頻率不能大于標(biāo)定值的15%(如:12位精確度時(shí),每秒最多進(jìn)行3次測量).第4章系統(tǒng)硬件設(shè)計(jì)4.1室內(nèi)溫濕度監(jiān)測電路原理及設(shè)計(jì)過程可選的溫度和濕度傳感器SHT11瑞士生產(chǎn)的單片集成的傳感器,全量程標(biāo)定,兩線數(shù)字輸出,濕度測量范圍為0?100%RH,溫度范圍為-40?+123.8℃,濕度測量精度為3。0%RH,溫度測量精度為0.4℃,響應(yīng)時(shí)間小于4ms,低功耗(30LW),可以完全被海水淹沒。它是一種同時(shí)測量溫度和濕度傳感器,可以直接輸出,無需外部元件,包括一個(gè)相對(duì)濕度傳感器,溫度傳感器,放大器,14位A/D轉(zhuǎn)換器,校準(zhǔn)存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器,狀態(tài)寄存器,循環(huán)冗余校驗(yàn)碼寄存器,兩線串行接口,一個(gè)控制單元,一個(gè)加熱器和一個(gè)低電壓檢測電路。SHT11數(shù)字溫濕度一體傳感器芯片采用CMOS工藝專利的微機(jī)械加工技術(shù)(CMOSens科技),以確保產(chǎn)品的高可靠性和優(yōu)異的長期穩(wěn)定性。SHT11與單片機(jī)的連接電路如圖3—1所示。圖4。1單片機(jī)與溫濕度傳感器的接口電路SHT11的供電電壓為2。4?5.5V。串行時(shí)鐘輸入(SCK)是用于同步與微處理器之間的通信,串行數(shù)據(jù)終端(DATA)是用來讀取數(shù)據(jù)。數(shù)據(jù)下降沿SCK時(shí)鐘狀態(tài)發(fā)生變化,并且僅僅是在SCK時(shí)鐘的上升沿有效。4。2LCD1602的優(yōu)點(diǎn)及硬件連線圖液晶顯示器因?yàn)樗捏w積小,顯示內(nèi)容豐富,超薄輕巧等優(yōu)點(diǎn),它在各類儀表和低功耗系統(tǒng)中得到廣泛的應(yīng)用,現(xiàn)在很多產(chǎn)品它都是用液晶顯示器。我們見到的很多液晶顯示器它顯示的內(nèi)容卻不同,有字符型液晶,圖形液晶的,又根據(jù)顯示容量可以分為單行16字,二行16字的等等。每一類的液晶模塊它的使用方法都是通用的.下面介紹16字x2行的字符型液晶模塊的優(yōu)點(diǎn).這類模塊相比之下,它有的優(yōu)點(diǎn)是:位數(shù)多,可以顯示32位,32個(gè)數(shù)碼管體積相當(dāng)龐大。顯示內(nèi)容豐富,可顯示所有數(shù)字和大、小寫字母.程序簡單,如果用數(shù)碼管動(dòng)態(tài)顯示,會(huì)占用很多時(shí)間來刷新顯示,而1602自動(dòng)完成此功能。1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了不同的點(diǎn)陣字符圖形,這些字符有,阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)等,每一個(gè)字符都有一個(gè)固定的代碼,其中數(shù)字與字母同ASCII碼兼容。1602連線圖如下:圖4。2LCD1602接線圖4。3按鍵輸入的硬件連線圖及分析本設(shè)計(jì)人機(jī)交互簡單,由于單片機(jī)引腳資源足夠,設(shè)計(jì)了4個(gè)鍵位來選定溫濕度的最小值和最大值,再用兩個(gè)鍵來控制增減。使用者可以通過這6個(gè)鍵位輕松設(shè)定通信機(jī)房內(nèi)的溫濕度范圍。鍵盤輸入連線圖如圖,P3。0-P3。5引腳為高,若有鍵按下,對(duì)應(yīng)的引腳電平將拉低.圖4.3鍵盤輸入接線圖系統(tǒng)總體硬件接線圖圖4.4系統(tǒng)總體硬件接線圖第5章系統(tǒng)軟件設(shè)計(jì)5.1系統(tǒng)主程序設(shè)計(jì)該系統(tǒng)的核心是AT89C51,其監(jiān)測程序和應(yīng)用軟件全部在EPROM內(nèi)進(jìn)行.他的工作過程是:當(dāng)系統(tǒng)上電后,進(jìn)入監(jiān)控狀態(tài)的AT89C51單片機(jī),同時(shí)完成為每個(gè)端口的初始化,按下一個(gè)按鈕時(shí),應(yīng)用程序會(huì)產(chǎn)生相應(yīng)動(dòng)作,改變溫濕度的設(shè)定范圍.當(dāng)沒有外部的控制輸入端的信息時(shí),系統(tǒng)將自動(dòng)收集的溫度和濕度傳感器的電壓值,在LCD顯示屏上的最終數(shù)據(jù).主程序流程圖如圖5.1所示:按鍵處理按鍵處理初始化各端口初始化溫濕度傳感器溫濕度值是否符合正常值?發(fā)出警報(bào)通知工作人員查詢鍵盤,是否有鍵按下?顯示開始調(diào)用濕度檢測電路測量溫濕度值YYN圖5。1主程序流程圖5.2室內(nèi)溫濕度監(jiān)測模塊程序設(shè)計(jì)溫濕度利用SHT11溫濕度傳感器測量溫度。溫濕度監(jiān)測程序流程圖如圖5.2所示:開始開始SHT11初始化讀取溫濕度值結(jié)束計(jì)算溫濕度值圖5.2溫濕度監(jiān)測流程圖第6章仿真結(jié)果及分析6。1程序調(diào)試整個(gè)軟件通過C語言編程,先在KeilC51集成開發(fā)環(huán)境下將編好的程序進(jìn)行編譯、調(diào)試,調(diào)試通過后會(huì)生成。HEX文件。具體過程如下:新建一個(gè)項(xiàng)目文件,然后新建一個(gè)C語言程序,并把新建的C語言程序加到項(xiàng)目中,然后編譯項(xiàng)目。(編譯的目的就是把我們能看懂的程序設(shè)計(jì)語言轉(zhuǎn)化為上面的機(jī)器語言,即.hex文件)。第一步:建立您的第一個(gè)C項(xiàng)目:(1)點(diǎn)擊Project菜單,選擇彈出的下拉式菜單中的NewProject,如圖6.1圖6.1keil編程圖項(xiàng)目名稱,這里我們用“test“,“保存“后的文件擴(kuò)展名為。uv2,這是LuVision2項(xiàng)目文件擴(kuò)展名,以后我們可以直接點(diǎn)擊此文件以打開此項(xiàng)目(你安裝的軟件是KEILUV3,可能與圖略有不同)。(2)選擇所要的單片機(jī),這里我們選擇常用的Ateml公司的AT89C51.(3)首先我們要在項(xiàng)目中創(chuàng)建新的程序文件。如果您沒有現(xiàn)成的程序,那么就要新建一個(gè)程序文件。File->New或快捷鍵Ctrl+N來實(shí)現(xiàn)。好了,現(xiàn)在可以編寫程序了,光標(biāo)已出現(xiàn)在文本編輯窗口中,輸入本系統(tǒng)設(shè)計(jì)的程序。(4)File-—>Save或快捷鍵Ctrl+S進(jìn)行保存。我們把程序命名為test.c,保存在項(xiàng)目所在的目錄中,這時(shí)您會(huì)發(fā)現(xiàn)程序單詞有了不同的顏色,說明KEIL的語法檢查生效了。如圖鼠標(biāo)在屏幕左側(cè)的SourceGroup1文件夾圖標(biāo)上右擊彈出菜單,在這里可以做在項(xiàng)目中增加減少文件等操作.我們選”AddFiletoGroup‘SourceGroup1’”彈出文件窗口,選擇剛剛保存的文件,按ADD按鈕,關(guān)閉文件窗,程序文件已加到項(xiàng)目中了。這時(shí)在SourceGroup1文件夾圖標(biāo)左邊出現(xiàn)了一個(gè)小+號(hào)說明,文件組中有了文件,點(diǎn)擊它可以展開查看.(5)C程序文件已被我們加到了項(xiàng)目中了,下面就開始編譯運(yùn)行了,默認(rèn)情況下,還不能產(chǎn)生我們需要的text.hex,我們還需要修改一下相關(guān)參數(shù):在Project—->Buildtarget如果順利運(yùn)行,表示已經(jīng)順利地編譯通過了,在項(xiàng)目所在的目錄中,已經(jīng)生成了test。hex文件.6.2仿真結(jié)果截圖在proteus軟件中測試一下,運(yùn)行PROTEUS模擬仿真軟件,打開已繪制好的仿真電路原圖,選中單片機(jī)AT89C51,右鍵點(diǎn)擊AT89C51,出現(xiàn)對(duì)應(yīng)的對(duì)話框,在ProgramFile中找到編譯好的“*.HEX"文件,然后點(diǎn)擊“OK”就可以進(jìn)行仿真了。進(jìn)入仿真界面,將溫度范圍設(shè)定為10至30攝氏度,相對(duì)濕度設(shè)定在30%?50%之間.本系統(tǒng)設(shè)計(jì)理論上要求溫濕度不在設(shè)定范圍報(bào)警器啟動(dòng),通知工作人員。(1)運(yùn)用仿真程序調(diào)節(jié)溫濕度,使其達(dá)到25攝氏度,濕度調(diào)節(jié)在40%,此時(shí)溫濕度都在設(shè)定的范圍內(nèi),系統(tǒng)正常工作,P3.7引腳電平為高,蜂鳴器無響應(yīng),如圖6。2:圖6。2溫濕度正常仿真圖(2)運(yùn)用仿真軟件調(diào)節(jié)溫濕度,使溫度為31攝氏度,濕度為40%,此時(shí)濕度處在設(shè)定范圍內(nèi),而溫度度超出設(shè)定范圍,P3.7引腳電平為低,蜂鳴器工作發(fā)出警報(bào),如圖6。3:圖6.3溫度不正常仿真圖(3)運(yùn)用仿真軟件調(diào)節(jié)溫濕度,使溫度為25攝氏度,濕度為51%,此時(shí)溫度處在設(shè)定范圍內(nèi),而濕度度超出設(shè)定范圍,P3.7引腳電平為低,蜂鳴器工作發(fā)出警報(bào),如圖6。4:圖6.4濕度不正常仿真圖通過仿真實(shí)驗(yàn)可以發(fā)現(xiàn),當(dāng)溫濕度超出設(shè)定范圍時(shí),蜂鳴器均工作發(fā)出警報(bào),從而達(dá)到通知工作人員的目的,當(dāng)溫濕度回到正常范圍時(shí),報(bào)警器停止響應(yīng),仿真結(jié)果與本系統(tǒng)設(shè)計(jì)要求完全相同,故仿真成功。第7章結(jié)論隨著科技的進(jìn)步,各種先進(jìn)的通信設(shè)備被研發(fā)出來,同時(shí)也對(duì)通信機(jī)房的溫濕度提出了苛刻的要求,本文針對(duì)這一現(xiàn)狀設(shè)計(jì)了基于單片機(jī)的通信機(jī)房溫濕度控制系統(tǒng)。本設(shè)計(jì)采用的是高效單片機(jī)作為核心,集溫度傳感器和濕度傳感器于一體的SHT11傳感器作為主要的采集與測量系統(tǒng),其中它自帶的A/D轉(zhuǎn)換器,使得此溫濕度控制儀具有精度高、成本低、體積小、接口簡單等優(yōu)點(diǎn),還具有良好抗干擾能力。加上優(yōu)化程序,使得本系統(tǒng)具有很高的實(shí)用性。同時(shí)對(duì)溫濕度傳感器SHT11的工作原理其技術(shù)指標(biāo)進(jìn)行了深入分析,提出了一種基于單片機(jī)SHT11的溫濕度控制系統(tǒng),克服了傳統(tǒng)溫濕度傳感器在技術(shù)方面、精度方面的局限性,避免了一些其他傳感器可能出現(xiàn)的誤差和失誤,同時(shí)大大簡化了軟硬件的設(shè)計(jì),使系統(tǒng)結(jié)構(gòu)較為緊湊,實(shí)現(xiàn)了溫濕度同時(shí)測量的功能。在控制算法方面采用了傳統(tǒng)的PID算法,設(shè)計(jì)了比較精確的PID控制程序,并且盡量提高了PID對(duì)階躍干擾的調(diào)節(jié)能力,使得溫濕度控制精度有了很大提高.單片機(jī)的應(yīng)用如今已經(jīng)在工業(yè)、電子等方方面面展示出了它的優(yōu)越性,利用單片機(jī)在設(shè)計(jì)電路逐漸成了趨勢,它與外圍的簡單電路再加上優(yōu)化程序就可以構(gòu)建任意的產(chǎn)品,使得本設(shè)計(jì)成為現(xiàn)實(shí).隨著單片機(jī)的日益發(fā)展,它必將在未來顯示出更大的活力,為電子設(shè)計(jì)增加更多精彩.在設(shè)計(jì)過程中,由于時(shí)間和本人能力的限制,設(shè)計(jì)中存在一些需要改進(jìn)和優(yōu)化的地方。測量精度有待進(jìn)一步提高,軟件設(shè)計(jì)也存在不合理之處.但從設(shè)計(jì)過程中,對(duì)于單片機(jī)有更進(jìn)一步的認(rèn)識(shí),對(duì)用于單片機(jī)仿真的軟件操作能力也明顯提高,通過此設(shè)計(jì),本人受益頗豐.附錄源程序代碼/********************************************************基于51單片機(jī)SHT11溫濕度傳感器檢測程序********************************************************/#include<reg52.h〉#include<intrins.h〉/********************************************************宏定義********************************************************/#defineuintunsignedint#defineucharunsignedchar#definenoACK0 #defineACK1#defineSTATUS_REG_W0x06#defineSTATUS_REG_R0x07#defineMEASURE_TEMP0x03#defineMEASURE_HUMI0x05#defineRESET0x1eenum{TEMP,HUMI};typedefunion?? ?//定義共用同類型{? unsignedinti;?floatf;}value;/********************************************************位定義********************************************************/sbitlcdrs=P2^0;sbitrw=P2^1;sbitlcden=P2^2;sbitSCK=P1^0;sbitDATA=P1^1;sbitt_low=P3^0;sbitt_high=P3^1;sbitr_low=P3^2;sbitr_high=P3^3;sbitzeng=P3^4;sbitjian=P3^5;sbitbeep=P3^7;/********************************************************變量定義********************************************************/uchartable3[]="T:";uchartable4[]="R:";uchartable5[]=".";ucharwendu[5]; ?ucharshidu[5];??uchart_fanwei[]="1050";ucharr_fanwei[]=”1090”; chart_a=10,t_b=50,r_a=10,r_b=90;ucharflag_tlow=0,flag_thigh=0,flag_rlow=0,flag_rhigh=0;/********************************************************1ms延時(shí)函數(shù)********************************************************/? ? voiddelay(uintz){ uintx,y;?for(x=110;x>0;x—-)? for(y=z;y〉0;y——);}/********************************************************50us延時(shí)函數(shù)********************************************************/voiddelay_50us(uintt){?uintj;?for(;t>0;t-—) for(j=19;j〉0;j--);}/********************************************************50ms延時(shí)函數(shù)********************************************************/voiddelay_50ms(uintt){?uintj;?for(;t〉0;t——)? for(j=6245;j>0;j——);}voidwrite_dat(yī)a(uchardataa){?rw=0; lcdrs=1; P0=dataa; delay(5); lcden=1;?delay(20); lcden=0;}voidwrite_con(ucharcon){ rw=0;?lcdrs=0; P0=con;?delay(5);?lcden=1;?delay(20); lcden=0;}voidinit(){rw=0;write_con(0x38);write_con(0x06);write_con(0x0c);write_con(0x01); }/********************************************************1602液晶顯示函數(shù) ? T********************************************************/voiddisplay2(void){ uchari;?write_con(0x80);??for(i=0;i<8;i++) { ?write_data(table3[i]); ?delay_50us(1); ?}?? write_con(0x86);?write_data(0xdf);write_dat(yī)a(’C');}/********************************************************1602液晶顯示函數(shù) R********************************************************/voiddisplay3(void){ uchari;?write_con(0x80+0x40); for(i=0;i<2;i++) {? write_data(table4[i]); ?delay_50us(1);? } write_con(0x80+0x46); write_data(’%');}/********************************************************1602液晶顯示函數(shù)********************************************************/voiddisplaywendu(void){?uchari;?write_con(0x82);??for(i=0;i<2;i++) { write_dat(yī)a(wendu[i]);? delay_50us(1);?? }?for(i=0;i〈1;i++) { ?write_data(table5[i]);??delay_50us(1); ? }?for(i=3;i<4;i++)?{ write_dat(yī)a(wendu[i]); delay_50us(1); }}/********************************************************1602液晶顯示函數(shù)********************************************************/voiddisplayshidu(void){?uchari;?write_con(0x80+0x42); ?for(i=0;i<2;i++) {??write_data(shidu[i]);? delay_50us(1);? ?}?for(i=0;i<1;i++) { write_data(table5[i]); ? //. ?delay_50us(1);? ?}?for(i=3;i<4;i++)?{ write_data(shidu[i]);? delay_50us(1);? ?}}/********************************************************SHT11寫字節(jié)程序********************************************************/chars_write_byte(unsignedcharvalue){ unsignedchari,error=0; for(i=0x80;i>0;i>>=1)//高位為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ò)誤}/********************************************************SHT11讀字節(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;}/********************************************************SHT11啟動(dòng)傳輸********************************************************/voids_transstart(void){?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;}/********************************************************SHT11連接復(fù)位********************************************************/voids_connectionreset(void){ 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)傳輸}/********************************************************SHT11溫濕度檢測********************************************************/chars_measure(unsignedchar*p_value,unsignedchar*p_checksum,unsignedcharmode){?unsignederror=0; unsignedinti;?s_transstart();//啟動(dòng)傳輸?switch(mode)//選擇發(fā)送命令{? ?caseTEMP:error+=s_write_byte(MEASURE_TEMP);break; ?//測量溫度?caseHUMI:error+=s_write_byte(MEASURE_HUMI);break; ?//測量濕度? default:break; }?for(i=0;i<65535;i++)if(DATA==0)break;//等待測量結(jié)束?if(DATA)error+=1;//如果長時(shí)間數(shù)據(jù)線沒有拉低,說明測量錯(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ò)誤}/********************************************************SHT11溫濕度值標(biāo)度變換及溫度補(bǔ)償********************************************************/voidcalc_sth10(float*p_humidity,float*p_temperature){?constfloatC1=-4.0;//12位濕度精度修正公式 constfloatC2=+0.0405;//12位濕度精度修正公式?constfloat(yī)C3=-0.0000028;//12位濕度精度修正公式?constfloatT1=+0.01;//14位溫度精度5V條件修正公式?constfloatT2=+0。00008;//14位溫度精度5V條件修正公式?floatrh=*p_humidity;//rh:12位濕度?floatt=*p_temperature;//t:14位溫度?float(yī)rh_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é)果}/********************************************************主函數(shù)********************************************************/ ? ? ?voidmain(void){ unsignedinttemp,humi,i,j;?valuehumi_val,temp_val; //定義兩個(gè)共同體,一個(gè)用于濕度,一個(gè)用于溫度?unsignedcharerror;??//用于檢驗(yàn)是否出現(xiàn)錯(cuò)誤?unsignedcharchecksum;? ?//CRC ?? init();//?display1(); display2();??display3(); beep=1; s_connectionreset();???//啟動(dòng)連接復(fù)位 while(1)?{ ?error=0; ? ? //初始化error=0,即沒有錯(cuò)誤? error+=s_measure((unsignedchar*)&temp_val。i,&checksum,TEMP);//溫度測量 ?error+=s_measure((unsignedchar*)&humi_val.i,&checksum,HUMI);//濕度測量 if(error!=0)s_connectionreset();////如果發(fā)生錯(cuò)誤,系統(tǒng)復(fù)位 else?{ humi_val。f=(float)humi_val。i;//轉(zhuǎn)換為浮點(diǎn)數(shù) ?temp_val.f=(float)temp_val。i;//轉(zhuǎn)換為浮點(diǎn)數(shù) calc_sth10(&humi_val.f,&temp_val。f);//修正相對(duì)濕度及溫度 ? temp=temp_val.f*10; ?humi=humi_val.f*10; // wendu[0]=temp/1000+'0'; //溫度百位 wendu[0]=temp%1000/100+'0’;?//溫度十位? ??wendu[1]=temp%100/10+'0'; ?//溫度個(gè)位 ?wendu[2]=0x2E;? ???//小數(shù)點(diǎn) ??wendu[3]=temp%10+’0';?? ?//溫度小數(shù)點(diǎn)后第一位? displaywendu();? ???? // shidu[0]=humi/1000+'0';??//濕度百位 ?shidu[0]=humi%1000/100+'0';?//濕度十位 ? shidu[1]=humi%100/10+'0’; //濕度個(gè)位 shidu[2]=0x2E;?? ???//小數(shù)點(diǎn) ?shidu[3]=humi%10+’0';??? //濕度小數(shù)點(diǎn)后第一位 ? displayshidu(); ?} ?//delay(800);//等待足夠長的時(shí)間,以現(xiàn)行下一次轉(zhuǎn)換??if(t_low==0)? { ? ?delay(10);?? if(t_low==0) ??{??? flag_tlow=1; ??? flag_thigh=0; ? flag_rlow=0; ? ? flag_rhigh=0;? ??} ??}? if(t_high==0) ?{? ?delay(10);? ? if(t_h(yuǎn)igh==0) ? ?{ ? ?flag_tlow=0;? ??flag_thigh=1; ?? ?flag_rlow=0; ? flag_rhigh=0; ??}? }? if(r_low==0)???{ ? delay(10);? ??if(r_low==0)????{ ?flag_tlow=0; ? ?flag_thigh=0; ?flag_rlow=1; ??flag_rhigh=0; ??} ??} ? ?if(r_high==0) ?{ ? ?delay(10);??? if(r_h(yuǎn)igh==0)? { ? ? flag_tlow=0;?? ?flag_thigh=0; ???flag_rlow=0;? ???flag_rhigh=1; ? ?} ??} ?if( flag_tlow==1) ?//1 ?{???if(zeng==0)???{ ?delay(10); ?if(zeng==0) ?? { ? t_a++;? ? if(t_a==99) ?? t_a=0;? ?? if(t_a>=t_b) ??? t_a=t_b;??? }?? } ? ?if(jian==0) ??{ delay(10); ?if(jian==0)? ? {? ???t_a--;???? if(t_a〈=0) ? ?? t_a=0;????}???} } ? ?? ??//2? ?if( flag_thigh==1)??{ ??if(zeng==0) ? {????delay(10);? ??if(zeng==0) ? {? ??t_b++; ? ?if(t_b==99)?? ???t_b=t_a; ?}???} ? if(jian==0)???{? ??delay(10);????if(jian==0) ??{? ? t_b—-;? ???if(t_b<=t_a) ? ? ?t_b=t_a;? ?} ??} ?}? if(?flag_rlow==1)???//3??{? ?if(zeng==0)? ?{ ???delay(10);?? if(zeng==0)??? {?? r_a++;?? ??if(r_a==99) ? ?r_a=0;??? if(r_a〉=r_b)? ? ? r_a=r_b;? ? } ??} ?if(jian==0) { ? ?delay(10); ?if(jian==0) { ? r_a—-; ?? ?if(r_a<=0) ?? ??r_a=0;? }? ?} }? if(flag_rhigh==1) ?{? if(zeng==0)???{??? delay(10); ? ?if(zeng==0)? ??{ ?r_b++;? ???if(r_b==99) ???? r_b=r_a; ???}???} ???if(jian==0) ? { ?delay(10); ?if(jian==0) { ??? ?r_b——; ???if(r_b<=r_a)? ? ?r_b=r_a;? }???} ?}? t_fanwei[0]=t_a/10; t_fan

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論