基于溫濕度監控系統畢業設計畢業論文管理資料_第1頁
基于溫濕度監控系統畢業設計畢業論文管理資料_第2頁
基于溫濕度監控系統畢業設計畢業論文管理資料_第3頁
基于溫濕度監控系統畢業設計畢業論文管理資料_第4頁
基于溫濕度監控系統畢業設計畢業論文管理資料_第5頁
已閱讀5頁,還剩34頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

摘要溫濕度監控是人們對居室要求的重要指標之一,也是影響人體健康的重要因素之一。為了保證對溫濕度良好的監測和控制,本文采用數字式溫濕度傳感器SHTll來設計居室溫濕度監測系統,以達到簡化軟硬件系統設計,提高測量精度的目的。首先介紹了SHTll的結構特點、接口電路,以及溫濕度測量系統的軟硬件設計方案,最后基于AT89C51單片機和光電耦合器設計了電路簡潔、大大節省I/O口資源的居室溫濕度監控系統,保證了由AT89C51單片機輸出的弱電來控制外圍的強電電路,本設計不僅僅只是在原理上可行,而且在實際運用中也了能實現對人們居室溫濕度的精確測量與控制,該電路簡單且工作穩定,集成度高,操作方便、靈活,對滿足人們居室環境的要求具有一定的實用價值和意義。關鍵字:AT89C51單片機,SHT11,LM016L,光電耦合器ABSTRACTThetemperatureandhumiditycontroltotherequirementsofthebedroomispeopleimportantindexes,andalsooneoftheimportantfactorsaffecthumanhealthofone.Inordertoguaranteetothetemperatureandhumiditygoodmonitoringandcontrol,thispaperusingdigitaltemperatureandhumiditysensorstodesignSHTllbedroomtemperatureandhumiditymonitoringsystem,inordertoachievethesimplifiedthehardwareandsoftwaresystemdesign,improvetheaccuracyofmeasurementpurposes.FirstintroducedthestructurecharacteristicsoftheSHTll,interfacecircuit,andthetemperatureandhumiditymeasurementsystemhardwareandsoftwaredesignscheme,thenbasedonAT89C51single-chipmicrocomputerandphotoelectriccouplingcontrolcircuitdesignthesimplecircuit,savetheI/Omouthoftemperatureandhumiditycontrolsystemresourcesbedroom,ensuretheelectricityoutputbyAT89C51single-chipmicrocomputertocontrolintheouterreachesofthehighvoltagecircuit,thisdesignisnotjustinprincipleonfeasible,butalsointhepracticalapplicationofthebedroomcanrealizetopeopletheprecisemeasurementofthetemperatureandhumidityandcontrol,thecircuitissimpleandstableoperation,highlevelofintegration,convenientoperation,flexible,tomeettherequirementsofthepeoplebedroomenvironmenthascertainpracticalvalueandmeaning.Keywords:AT98C51,SHT11,LM016L,Photoelectriccoupledcircuit目錄TOC\o"1-3"\h\u摘要 IABSTRACT II1緒言 2 2 2 42系統設計方案的研究 5 5 63硬件的設計89C51芯片 7SHT11傳感器 7LCDLM016L顯示模塊 9 104軟件系統與實現 11Proteus簡介 17C語言介紹 17Keil軟件介紹 18仿真結果 18 18 19 195總結與展望 20致謝 21參考文獻 22附錄 241緒言改革開放以來,人們對生活質量要求顯著提高,對自己居室的環境要求也越來越高,這對以從事居室裝修工人來說是一個機遇,同時也是一個挑戰,而基于單片機的溫濕度控制系統對解決這個問題有著非常重大的意義。以前單純地依靠空調、室內溫度加熱器等設備對居室溫濕度進行調節,既不節能效率也不高,這就必需有一套科學的,先進的管理方法,用以對各個時期的溫度及濕度等進行實時的監控。溫濕度控制對于單片機的應用具有一定的實際意義,它代表了一類自動控制的方法,而且其應用十分廣泛。8051單片機是常用于控制的芯片,在智能儀器儀表、工業檢測控制、機電一體化等方面取得了令人矚目的成果,用其作為溫濕度控制系統的實例也很多。使用8051單片機能夠實現溫濕度全程的自動控制,而且8051單片機易于學習、掌握,性價比高。使用8051型單片機設計溫濕度控制系統,可以及時、精確的反映室內的溫度以及濕度的變化。完成諸如升溫到特定溫度、降溫到特定溫度等多種控制方式,在濕度控制方面也是如此。將此系統應用到人們居住的住房提供了更加適宜的環境。從17世紀初伽利略發明溫度計,把玻璃管倒過來,把液體放在管內,把玻璃管封閉進行測量溫度。在1659年法國人布利奧把玻璃泡的體積縮小,并把測溫物質改為水銀,這樣的溫度計已具備了現在溫度計的雛形。以后荷蘭人華倫海特在1709年利用酒精,在1714年又利用水銀作為測量物質,制造了更精確的溫度計。瑞典人攝爾修斯于1742年改進了華倫海特溫度計的刻度,他把水的沸點定為100度,把水的冰點定為0度。而真正把溫度變成電信號的傳感器是1821年由德國物理學家賽貝發明的,這就是后來的熱電偶傳感器。五十年以后,另一位德國人西門子發明了鉑電阻溫度計。在半導體技術的支持下,20世紀相繼開發了半導體熱電偶傳感器、PN結溫度傳感器和集成溫度傳感器。與之相應,根據波與物質的相互作用規律,相繼開發了聲學溫度傳感器、紅外傳感器和微波傳感器。從此電子溫度計隨著傳感器的發展越來越成熟。智能溫度傳感器(亦稱數字溫度傳感器)在20世紀90年代中期問世。它是微電子技術、計算機技術和自動測試技術(ATE_)的結晶。目前,國際上已開發出多種智能溫度傳感器系列產品。智能溫度傳感器內部包含溫度傳感器、A/D傳感器、信號處理器、存儲器(或寄存器)和接口電路。有的產品還帶多路選擇器、中央控制器(CPU)、隨機存取存儲器(RAM)和只讀存儲器(ROM)。智能溫度傳感器能輸出溫度數據及相關的溫度控制量,適配各種微控制器(MCU),并且可通過軟件來實現測試功能,溫度計也越來越智能化。而濕度計好像是里安納度一個在15世紀在意大利里出生的人是第一個想出這一個儀器量度出空氣中的水蒸氣含量的人開始探索的。他將一干燥的棉花放在一個天砰的一側上。然后他安置一個正是與棉花相同的重量的對象在天砰的另一側。當干燥的棉花從空氣吸收水蒸汽,它變得更重并且這個天砰的這側開始降落。在兩重量之間的不同是濕度的度量標準。現在科學家使用一臺稱為”psychrometer”的儀器測量相對濕度。”psychrometer”由兩個綁在一起的溫度計造成。一個溫度計的泡被用清水浸過的材料包著。開始量度相對濕度時,要把psychrometer旅轉直至被包著的溫度計維持一個穩定的溫度,而這溫度一定比干的那個溫度計低。實際的空氣溫度被干燥的那個溫度計量度。在兩溫度之間的不同被叫為”wet-bulbdepression”是來自物質的水的蒸發的結果。科學家記錄低干的溫度計的溫度和”wet-bulbdepression”,然后制成一個圖表,來計算相對濕度。這個也是干濕球濕度計的工作原理。跟電子溫度計一樣濕度計隨著濕度傳感器的發展趨于成熟。現在常用的溫度傳感器AD590,DS18B20濕度傳感器HMxx系列,HS1xx系列,隨著溫濕度計的發展溫室監控系統也越來越成熟,更好的為人們服務。近年來,國內外在濕度傳感器研發領域取得了長足進步。濕敏傳感器正從簡單的濕敏元件向集成化、智能化、多參數檢測的方向迅速發展,為開發新一代濕度/溫度測控系統創造了有利條件,也將濕度測量技術提高到新的水平。目前,國外生產集成濕度傳感器的主要廠家及典型產品分別為Honeywell公司(HIH-3602、HIH-3605、HIH-3610型),Humirel公司(HM1500、HM1520、HF3223、HTF3223型),Sensiron公司(SHT11、SHT15型)。但是,在濕度測試領域大部分濕敏元件性能還只能使用在通常溫度環境下。在需要特殊環境下測濕的應用場合大部分國內包括許多國外濕度傳感器都會”皺起眉頭”!例如在上面提到紡織印染行業,食品行業,耐高溫材料行業等,都需要在高溫情況下測量濕度。一般情況下,印染行業在紗錠烘干中,溫度能達到120攝氏度或更高溫度;在食品行業中,食物的烘烤溫度能達到80-200攝氏度左右;耐高溫材料,如陶瓷過濾器的烘干等能達到200攝氏度以上。在這些情況下,普通的濕度傳感器是很難測量的。。界限溫度值及濕度值能夠由用戶根據不同的各種需求設定。、準確的顯示采樣溫度值與濕度值。,準確的判斷標準值與當前值之間的差異,及時的啟動報警裝置(包括警報燈的提示功能以及提示音等)進行報警,并采取相應的方案。,用戶可隨機更改溫度及濕度值,以滿足用戶不同的需求。2系統設計方案的研究利用單片機最小系統,外接顯示電路,數據采集電路以及控制電路實現對設計的要求的滿足,對數據采集電路的選擇沒有選擇熱敏電阻和濕敏電阻是因為sht11傳感器既簡單,又有較為合適的工作范圍,簡化了電路又提高效率。方案一:采用熱電阻溫度傳感器。熱電阻是利用導體的電阻隨溫度變化的特性制成的測溫元件[1]。現應用較多的有鉑、銅、鎳等熱電阻。其主要的特點為精度高、測量范圍大、便于遠距離測量。采用HOS-201濕敏傳感器[2]。HOS-201濕敏傳感器為高濕度開關傳感器,它的工作電壓為交流1V以下,頻率為50HZ~1KHZ,測量濕度范圍為0~100%RH,工作溫度范圍為0~50℃,阻抗在75%RH(25℃)時為1MΩ。這種傳感器原是用于開關的傳感器,不能在寬頻帶范圍內檢測濕度,因此,主要用于判斷規定值以上或以下的濕度電平。然而,這種傳感器只限于一定范圍內使用時具有良好的線性,可有效地利用其線性特性。方案二:采用SHT11溫濕度傳感器,SHT11是瑞士Scnsirion公司推出的一款數字溫濕度傳感器芯片[2,3,4,5]。該芯片廣泛應用于暖通空調、汽車、消費電子、自動控制等領域。主要特點如下:高度集成,將溫度感測、濕度感測、信號變換、A/D轉換和加熱器等功能集成到一個芯片上;提供二線數字串行接口SCK和DATA,接口簡單,支持CRC傳輸校驗,傳輸可靠性高;測量精度可編程調節,內置A/D轉換器(分辨率為8~12位,可以通過對芯片內部寄存器編程選擇);測量精確度高,由于同時集成溫濕度傳感器,可以提供溫度補償的濕度測量值和高質量的露點計算功能;封裝尺寸超小(mm××mm),測量和通信結束后,自動轉入低功耗模式;高可靠性,采用CMOSens工藝,測量時可將感測頭完全浸于水中。綜合這兩種方案,從性能的比較,測量精度,市場的使用情況,以及該設計的可操作性方案二中的SHT11溫濕度傳感器都表現出它的優勢因此本設計采用方案二。、、濕度控制電路,,,P0口接LCDLM016L的D0~D7,當溫濕度不在范圍,、,光耦控制電路導通對其進行控制并在LCD顯示。。結構框圖由單片機最小系統,外加數據采集模塊,控制模塊,顯示模塊極其報警部分構成溫濕度檢測和控制系統。3硬件的設計89C51芯片89C51是Intel公司于80年代初推出的8位嵌入式微控制器(內部數據總線為8位,外部數據總線為8位),它與MCS-96系統中的其它芯片相比,具有性能高、功能全、售價低廉、使用方便(48PINDIP)等優點。89C51在工業應用方面有許多明顯的特點,它具有靈活方便的8位總線外圍支持器擴展功能,而在數據處理方面又有8位微機的快速功能。由于大的高度集成化已把許多常駐用的輸入檢測輸出控制通道都制作在同一塊硅片上,大大地靈活了外部連線,增強了系統的穩定性并且速度快(時鐘12MHz),非常適合于工業環境下安裝使用。因此本系統CPU選用89C51芯片。89C51單片機引腳采用40雙列直插式封裝結構。89C51系統CPU中的主要組件有:高速寄存器陣列、特殊功能寄存器(SFR)、寄存器控制器和算術邏輯單元(RALU)。它與外部通訊是通過特殊功能寄存器SFR或存儲器,控制器進行的。8051系統的CPU的主要特色是體積小,重量輕,抗干擾能力強,售價低,使用方便。此外,通過SFR還可以直接控制I/O、A/D、PWM、串行口等部件的有效運行。CPU內部的一個控制單元和兩條總線寄存器陣列和EALU連接起來。這兩條總線是:16位地址總線(A-BUS)和8位數據總線(D-BUS)。數據總線僅在RALU與寄存器陣列或SFR之間傳送數據,地址總線用作上述數據傳送的地址總線或用作與寄存器控制器連接的多路復用地址/數據總線。CPU對片內RAM訪問是直接訪問和通過寄存器R0,R1間接訪問的。89C51工作時所需的時鐘可通過其XTALL輸入引腳由外部輸入,也可采用芯片內部的振蕩器。其工作頻率為6~12MHz。。SHT11傳感器1.SHT11重要部分SHT11是瑞士Scnsirion公司推出的一款數字溫濕度傳感器芯片。該芯片廣泛應用于暖通空調、汽車、消費電子、自動控制等領域[6,7]。共主要特點如下:高度集成,將溫度感測、濕度感測、信號變換、A/D轉換和加熱器等功能集成到一個芯片上;提供二線數字串行接口SCK和DATA,接口簡單,支持CRC傳輸校驗,傳輸可靠性高;測量精度可編程調節,內置A/D轉換器(分辨率為8~12位,可以通過對芯片內部寄存器編程選擇);測量精確度高,由于同時集成溫濕度傳感器,可以提供溫度補償的濕度測量值和高質量的露點計算功能;封裝尺寸超小(mm××mm),測量和通信結束后,自動轉入低功耗模式;高可靠性,采用CMOSens工藝,測量時可將感測頭完全浸于水中。2.SHT11的引腳功能SHT11溫濕度傳感器采用SMD(LCC)表面貼片封裝形式,接口非常簡單,。

SHT11引腳各引腳的功能如下:

腳1和4--信號地和電源,~V;

腳2和腳3--二線串行數字接口,其中DA-TA為數據線,SCK為時鐘線;

腳5~8--未連接。3SHT11的內部結構和工作原理圖溫濕度傳感器SHT11將溫度感測、濕度感測、信號變換、A/D轉換和加熱器等功能集成到一個芯片上,。該芯片包括一個電容性聚合體濕度敏感元件和一個用能隙材料制成的溫度敏感元件。這兩個敏感元件分別將濕度和溫度轉換成電信號,該電信號首先進入微弱信號放大器進行放大;然后進入一個14位的A/D轉換器;最后經過二線串行數字接口輸出數字信號。SHT11在出廠前,都會在恒濕或恒溫環境巾進行校準,校準系數存儲在校準寄存器中;在測量過程中,校準系數會自動校準來自傳感器的信號。此外,SHT11內部還集成了一個加熱元件,加熱元件接通后可以將SHT11的溫度升高5℃左右,同時功耗也會有所增加。此功能主要為了比較加熱前后的溫度和濕度值,可以綜合驗證兩個傳感器元件的性能。在高濕(>95%RH)環境中,加熱傳感器可預防傳感器結露,同時縮短響應時間,提高精度。加熱后SHT11溫度升高、相對濕度降低,較加熱前,測量值會略有差異。然而在改變溫度的同時濕度也會略微變化,因為濕度測量測的是相對濕度,相對濕度跟溫度相關,溫度變則相對濕度變,其自身帶有溫度補償功能。SHT11內部結構微處理器是通過二線串行數字接口與SHT11進行通信的。通信協議與通用的I2C總線協議是不兼容的,因此需要用通用微處理器I/O口模擬該通信時序。微處理器對SHT11的控制是通過5個5位命令代碼來實現的,。SHT11控制命令代碼命令代碼含義00011測量溫度00101測量濕度00111讀內部狀態寄存器00110寫內部狀態寄存器11110復位命令,是內部寄存器恢復默認值其他保留LCDLM016L顯示模塊LM016l與LCD1602原理是一樣的,只不過PROTEUS中016沒顯示調亮度的那兩個端口,但并不影響[8]。在日常生活中,我們對液晶顯示器并不陌生。液晶顯示模塊已作為很多電子產品的通過器件,如在計算器、萬用表、電子表及很多家用電子產品中都可以看到,顯示的主要是數字、專用符號和圖形。在單片機的人機交流界面中,一般的輸出方式有以下幾種:發光管、LED數碼管、液晶顯示器。發光管和LED數碼管比較常用,軟硬件都比較簡單,[9]。LCDLM016L引腳在單片機系統中應用晶液顯示器作為輸出器件有以下幾個優點:A顯示質量高由于液晶顯示器每一個點在收到信號后就一直保持那種色彩和亮度,恒定發光,而不像陰極射線管顯示器(CRT)那樣需要不斷刷新新亮點。因此,液晶顯示器畫質高且不會閃爍。B數字式接口液晶顯示器都是數字式的,和單片機系統的接口更加簡單可靠,操作更加方便。C體積小、重量輕液晶顯示器通過顯示屏上的電極控制液晶分子狀態來達到顯示的目的,在重量上比相同顯示面積的傳統顯示器要輕得多。報警模塊具備報警功能,只要溫濕度不在預設區間內報警器會發出聲響提醒工作人員,其中蜂鳴器一端接單片機的單片機17腳,其輸出具有復合功能,此處用到了單片機引腳的IO端口功能,單片機通過內部定時器的操作實現交替變換的波形輸出驅動揚聲器發聲[10]。4軟件系統與實現溫濕度判斷控制模塊也是系統的核心模塊之一,所謂判斷控制模塊,就是對用戶輸入的溫度和濕度與當前溫室內的實際溫濕度進行比較,先進行判斷,然后再進行控制,控制模塊是決定系統將要進行什么工作的。如溫度高于上限時需要降溫,低于下限時需要升溫,同時還要啟動警報等等。。程序流程圖上面已經討論了采取中間值作為控制參數,采取中間值一定區間作為控制區間的原理,按照上圖原理,:系統流程圖本流程分為溫度和適度監控,我們以溫度的監控為例闡述該流程:首先系統初始化由SHT11傳感器讀取環境溫度并自身將其轉換成數字信號,然后送入51單片機,如果該數據低于預設最低值或高于預設最高值,則報警電路和控制電路將被接通,起到提醒和控制的作用,并將數據送入51單片機,在LCD上顯示。如果溫度正常,即處于預設范圍,則報警電路和控制電路不會動作,并將數據送入單片機,在LCD上顯示,之后進入下次的監控流程。濕度的監控流程和溫度基本一致,不再贅述。。系統總圖(1)AT89C51單片機AT89C51是一種帶4K字節FLASH存儲器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低電壓、高性能CMOS8位微處理器,俗稱單片機[11]。AT89C2051是一種帶2K字節閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本[12]。AT89C單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。。AT89C51引腳引腳介紹:VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫”1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址”1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入”1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,RXD(串行輸入口)TXD(串行輸出口)/INT0(外部中斷0)/INT1(外部中斷1)T0(記時器0外部輸入)T1(記時器1外部輸入)/WR(外部數據存儲器寫選通)/RD(外部數據存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。(2)晶振電路單片機必須在時鐘的驅動下才能工作,電容大小沒有固定值,一般二三十pF。晶振是給單片機提供工作信號脈沖的[13,14,15]。單片機必須在時鐘的驅動下才能這個脈沖就是單片機的工作速度,比如12M晶振。單片機工作速度就是每秒12M,和電腦的,不能太大,一般24M就不上往了,不然不穩定。在單片機內部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產生一定的時鐘信號送到單片機內部的各個單元,決定單片機的工作速度。。晶振電路(3)復位電路為確保微機系統中電路穩定可靠工作,復位電路是必不可少的一部分,復位電路的第一功能是上電復位。一般微機電路正常工作需要供電電源為5V±5%,~。由于微機電路是時序數字電路,它需要穩定的時鐘信號,因此在電源上電時,,復位信號才被撤除,微機電路開始正常工作[19,20,21]。。(4)溫濕度控制電路本電路主要是直觀的看到溫濕度控制的體現,本人在元件列表中難以找到能很好控制溫濕度的元器件就以電熱絲或電阻與發光二極管的來帶替,然而只有二者遠遠不夠,雖然在原理上,該電路可以達到預期效果,在實際應用一般選擇空調或噴霧器等來改變環境的溫濕度,這就要考慮到電路的工作電流、電壓所以本控制電路接入一個光電耦合器以求達到弱電控制強電的目的,,還有晶閘管,繼電器等都可以考慮。[22,23,24,25]溫濕度控制電路Proteus簡介Proteus軟件是英國Labcenterelectronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件[26,27]。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發應用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協同仿真,一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟合并在一起,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯。C語言介紹C語言是一種計算機程序設計語言[28]。它既有高級語言的特點,又具有匯編語言的特點。它可以作為系統設計語言,編寫工作系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。因此,它的應用范圍廣泛。C語言對操作系統和系統使用程序以及需要對硬件進行操作的場合,用C語言明顯優于其它解釋型高級語言,有一些大型應用軟件也是用C語言編寫的。C語言具有繪圖能力強,可移植性,并具備很強的數據處理能力,因此適于編寫系統軟件,三維,二維圖形和動畫。它是數值計算的高級語言。常用的C語言IDE(集成開發環境)有MicrosoftVisualC++,BorlandC++,WatcomC++,BorlandC++,BorlandC++Builder,BorlandC++forDOS,WatcomC++forDOS,GNUDJGPPC++,Lccwin32CCompiler,MicrosoftC,HighC,TurboC等等Keil軟件介紹KeilC51軟件提供豐富的庫函數和功能強大的集成開發調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到KeilC51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。下面詳細介紹KeilC51開發系統各部分功能和使用。[29,30]仿真結果結果一,光電耦合器開始工作,并通過三極管放大(其放大作用是為了對那些功率稍大的用電器在實際中的能夠更好地被利用),并能看到放光二極管D1發光動作。:,光電耦合器開始工作,并通過三極管放大(其放大作用是為了對那些功率稍大的用電器在實際中的能夠更好地利用),并能看到放光二極管D2發光動作。注:上圖中電感L1和電阻R2等效的看作多功能空調(能增減溫濕度),并將及其設置為自動模式,即將設置好溫濕度范圍和程序設置的統一,一旦溫濕度失常,空調(自動模式)被接通,按照設置好的溫濕度要求進行控制調節。:報警器工作,使得報警裝置動作發生。5總結與展望我選的題目基于51單片機的溫濕度監控系統,本設計研究的重點是利用單片機最小系統結合光電耦合器對溫濕度的控制。本系統的設計,經歷了課題分析、方案研究、硬件設計、軟件設計以及仿真測試的過程。包含了對單片機應用,各種器件的功能的應用以及電路連接仿真調試等。從原理上達到了預期目的,并且初見理論知識與實際相結合的端倪。通過本次畢業設計,我感到自己應用基礎知識及專業知識解決問題的能力有了很大的提高,但是我的個人能力有限,本設計還有許多不足之處有待改進。我對自己充滿信心。致謝畢業論文的寫作鍛煉了我收集和整合信息以及創新和對以前學習知識運用的能力,凝聚著無數人對我的關懷和幫助,沒有他們的支持和鼓勵,我是不會這么順利完成的。首先要特別感謝我的指導老師孫玲姣老師,在教學繁忙、事務纏身的情況下,孫老師多次抽出時間,對我進行悉心的指導,從論文的選題到論文的總體框架,再到論文撰寫過程中的語言組織,她都進行過細致的批閱,使得我的論文越來越規整,更加符合標準。然后要感謝我的同學們,四年來對我學習和精神上的幫助,每當我遇到困難,請教他們,他們都熱心的幫助我,讓我知道什么是集體。最后要感謝我的父母,沒有他們我就不會在大學這個溫馨的大家庭里讓我四年的學習生活充實而有意義。參考文獻[1]劉振全,[J].傳感器世界,2006,12(12):25-27,36.[2]呂東,[J].武漢化工學院學報,2000,22(2):64-67.[3]馮顯英,[J].自動化儀表,2006,27(1):59-61.[4]馮達,余軒,[J].電子產品世界,2011,18(12)::[5]張艷麗,[J].工礦自動化,2007,(3):113-114.[6]謝敏,[J].現代電子技術,2005,28(14):89-91,94.[7]王漢芝,(R)技術的數字濕度/溫度傳感器SHT11及其應用[J].傳感器世界,2004,10(9):35-37.[8]朱清慧,[J].南陽理工學院學報,2010,02(6):9-13.[9]王志奎,ISIS[J].液晶與顯示,2009,24(4):586-591.[10]徐瑋,彭敏芳,[J].電子制作,2010,(5):70-71,69.[11]黃保瑞,賈之豪,[J].現代電子技術,2011,34(6):142-143,147.[12]梁偉,(FLASH)Am29LV400B及其在DSP系統中的應用[J].情報指揮控制系統與仿真技術,2002,(2):15-22.[13]程雯,戎蒙恬,[J].信息技術,2009,33(1):15-17,86.[14]Rahman,K.M.,Choudhury,M.A..Dead-TimeCompensatedPulsewidthModulatorfora3-PhaseVSIImplementedwithanAT89C52Microcontroller[C].ElectricalandComputerEngineering,2006InternationalConferenceon;Dhaka,Bangladesh,2006:467.[15][J].硅谷,2012,(2):50-51.[16]HANXing,ZHANGXu,LIUofTemperature-HumidityIndependentControlAir-ConditioningUnitforResidentialBuildings[J].湖南大學學報(自然科學版),2009,36(z1):83-87.[17]鐘應善,楊家強,[J].農業機械學報,2001,32(3):75-78.[18]TemperaturemonitoringsystembasedonAT89C51microcontroller[C].2009IEEEInternationalSymposiumonITinMedicine&Education(ITME2009).[v.1],2009:316-317[19]黎暉,魏光輝,[J].兵工自動化,2007,26(2):81-82.[20]一種片上系統設計中的復位電路設計方法[Z].[21]尉廣軍,郝永生,[J].儀器儀表學報,2002,23(z2):577-578[22]李廷軍,徐永漢,[J].海軍航空工程學院學報,2003,18(5):589.[23][J].柳州師專學報,2002,17(2):95-96.[24][J].物理教學探討,2008,26(15):59-60.[25][J].中國科技信息,2011,(15)::[26]李生明,[J].清遠職業技術學院學報,2010,03(6):40-42.[27]李栓明,李栓明,[J].科技信息,2010,(35):203,222.[28]黃定華,[J].工業控制計算機,2001,14(5):3-6.[29]伍馮潔,謝陳躍,[J].電子測量技術,2008,31(6):100-103,107.[30]寧成軍,[J].現代電子技術,2006,29(18):142-143,146.附錄#include<>#include<>#include<>//Keillibrary#include<>//Keillibrary#include""#include""sbitjb=P1^0;sbitwendujb=P3^4;sbitshidujb=P3^5;voidmain(void){ unsignedchari; valuehumi_val,temp_val;unsignedcharerror,checksum;unsignedintwendu,shidu;s_connectionreset(); LcdReset(); for(i=0;i<=31;i++) Show_Buf[i]=0x20; FIRST_SHOW(); DisplayAll(Show_Buf); while(1){error=0;error+=s_measure((unsignedchar*)&,&checksum,HUMI);//measurehumidityerror+=s_measure((unsignedchar*)&,&checksum,TEMP);//measuretemperatureif(error!=0)s_connectionreset();//incaseofanerror:connectionresetelse{=(float);//convertsintegertofloat=(float);//convertsintegertofloatcalc_dht90(&,&);//calculatehumidity,temperaturewendu=10*; Show_Buf[0]=wendu/1000+0x30; Show_Buf[1]=(wendu%1000)/100+'0'; Show_Buf[2]=(wendu%100)/10+'0'; Show_Buf[4]=(wendu%10)+'0'; Show_Buf[3]='.';shidu=10*; Show_Buf[16]=shidu/1000+0x30; Show_Buf[17]=(shidu%1000)/100+'0'; Show_Buf[18]=(shidu%100)/10+'0'; Show_Buf[20]=(shidu%10)+'0'; Show_Buf[19]='.'; } DisplayAll(Show_Buf); if(wendu<110||wendu>320) { wendujb=0;jb=~jb; } else { wendujb=1; } if(shidu<400||shidu>600) { shidujb=0;jb=~jb; } else { shidujb=1; }} }Sht11相關程序/**************定義接口*************************************************************//******定義函數****************/#defineucharunsignedchar#defineuintunsignedint//*********************第二部分SHT11設置START****************************************sbitSCK=P2^6;//定義通訊時鐘端口sbitDATA=P2^7;//定義通訊數據端口typedefunion{unsignedinti;//定義了兩個共用體floatf;}value;enum{TEMP,HUMI};//TEMP=0,HUMI=1#definenoACK0//用于判斷是否結束通訊#defineACK1//結束數據傳輸//adrcommandr/w#defineSTATUS_REG_W0x06//00000110#defineSTATUS_REG_R0x07//00000111#defineMEASURE_TEMP0x03//00000011#defineMEASURE_HUMI0x05//00000101#defineRESET0x1e//00011110/****************定義函數****************/voids_transstart(void);//啟動傳輸函數voids_connectionreset(void);//連接復位函數chars_write_byte(unsignedcharvalue);//sht11寫函數chars_read_byte(unsignedcharack);//sht11讀函數chars_measure(unsignedchar*p_value,unsignedchar*p_checksum,unsignedcharmode);//測量溫濕度函數voidcalc_dht90(float*p_humidity,float*p_temperature);//溫濕度補償/*;模塊名稱:s_transstart();;功能:啟動傳輸函數;占用資源:--;參數說明:--;版本:(函數版本FunctionVersion);修改日期:--;修改說明:--;*/voids_transstart(void)//generatesatransmissionstart//_____________//DATA:|_______|//______//SCK:___||___||______{DATA=1;SCK=0;//Initialstate_nop_();SCK=1;_nop_();DATA=0;_nop_();SCK=0;_nop_();_nop_();_nop_();SCK=1;_nop_();DATA=1;_nop_();SCK=0;}/*;模塊名稱:s_connectionreset();;功能:連接復位函數;占用資源:--;參數說明:--;版本:(函數版本FunctionVersion);修改日期:--;修改說明:--;*/voids_connectionreset(void)//communicationreset:DATA-line=1andatleast9SCKcyclesfollowedbytransstart//_____________________________________________________________//DATA:|_______|//_______________//SCK:__||__||__||__||__||__||__||__||__||______||___||______{unsignedchari;DATA=1;SCK=0;//Initialstatefor(i=0;i<9;i++)//9SCKcycles{SCK=1;SCK=0;}s_transstart();//transmissionstart}/*;模塊名稱:s_write_byte();;功能:sht11寫函數;占用資源:--;參數說明:--;版本:(函數版本FunctionVersion);修改日期:--;修改說明:--;*/chars_write_byte(unsignedcharvalue)////writesabyteontheSensibusandcheckstheacknowledge{unsignedchari,error=0;for(i=0x80;i>0;i/=2)//shiftbitformasking{if(i&value)DATA=1;//maskingvaluewithi,writetoSENSI-BUSelseDATA=0;SCK=1;//clkforSENSI-BUS_nop_();_nop_();_nop_();//pulswithapprox.3usSCK=0;}DATA=1;//releaseDATA-lineSCK=1;//clk#9forackerror=DATA;//checkack(DATAwillbepulleddownbyDHT90),DATA在第9個上升沿將被DHT90自動下拉為低電平。_nop_();_nop_();_nop_();SCK=0;DATA=1;//releaseDATA-linereturnerror;//error=1incaseofnoacknowledge//返回:0成功,1失敗}/*;模塊名稱:s_read_byte();;功能sht11讀函數;占用資源:--;參數說明:--;創建日期:;版本:(函數版本FunctionVersion);修改日期:--;修改說明:--;*/chars_read_byte(unsignedcharack)//readsabyteformtheSensibusandgivesanacknowledgeincaseof"ack=1"{unsignedchari,val=0;DATA=1;//releaseDATA-linefor(i=0x80;i>0;i/=2)//shiftbitformasking{SCK=1;//clkforSENSI-BUSif(DATA)val=(val|i);//readbit_nop_();_nop_();_nop_();//pulswithapprox.3usSCK=0;}if(ack==1)DATA=0;//incaseof"ack==1"pulldownDATA-LineelseDATA=1;//如果是校驗(ack==0),讀取完后結束通訊_nop_();_nop_();_nop_();//pulswithapprox.3usSCK=1;//clk#9forack_nop_();_nop_();_nop_();//pulswithapprox.3usSCK=0;_nop_();_nop_();_nop_();//pulswithapprox.3usDATA=1;//releaseDATA-linereturnval;}/*;模塊名稱:s_measure();;功能:測量溫濕度函數;占用資源:--;參數說明:--;版本:(函數版本FunctionVersion);修改日期:--;修改說明:--;*/chars_measure(unsignedchar*p_value,unsignedchar*p_checksum,unsignedcharmode)//makesameasurement(humidity/temperature)withchecksum{unsignederror=0;unsignedinti;s_transstart();//transmissionstartswitch(mode){//sendcommandtosensorcaseTEMP: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;//waituntilsensorhasfinishedthemeasurementif(DATA)error+=1;//ortimeout(~2sec.)isreached*(p_value)=s_read_byte(ACK);//readthefirstbyte(MSB)*(p_value+1)=s_read_byte(ACK);//readthesecondbyte(LSB)*p_checksum=s_read_byte(noACK);//readchecksumreturnerror;}/*;模塊名稱:calc_sht11();;功能:溫濕度補償函數;占用資源:--;參數說明:--;創建日期:;版本:(函數版本FunctionVersion);修改日期:--;修改說明:--;*/voidcalc_dht90(float*p_humidity,float*p_temperature)//calculatestemperature[C]andhumidity[%RH]//input:humi[Ticks](12bit)//temp[Ticks](14bit)//output:humi[%RH]//temp[C]{constfloatC1=;//for12BitconstfloatC2=+;//for12BitconstfloatC3=;//for12BitconstfloatT1=+;//for14Bit@5VconstfloatT2=+;//for14Bit@5Vfloatrh=*p_humidity;//rh:Humidity[Ticks]12Bitfloatt=*p_temperature;//t:Temperature[Ticks]14Bitfloatrh_lin;//rh_lin:Humiditylinearfloatrh_true;//

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論