2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  基于LM75A和HS1101的智能溫度濕度檢測系統(tǒng)</p><p><b>  設計與實現(xiàn)</b></p><p> 文作者姓名:</p><p> 申請學位專業(yè):電子信息工程</p><p> 申請學位類別:工學學士</p><p> 指導教師姓名(職稱):</p&g

2、t;<p> 論文提交日期:</p><p>  基于LM75A和HS1101的智能溫度濕度檢測系統(tǒng)</p><p><b>  設計與實現(xiàn)</b></p><p><b>  摘 要</b></p><p>  隨著計算機技術的發(fā)展,智能溫度和濕度的檢測系統(tǒng)在農業(yè)、工業(yè)、國防、倉儲

3、等領域有著極為廣泛的應用。本文設計了一種基于51單片機的智能溫度和濕度檢測系統(tǒng),通過STC89C52RC單片機的控制與處理,采用測量范圍在0%~99%之間的濕度傳感器元件HS1101和測量范圍在-55℃~+125℃之間的溫度檢測器元件LM75A,從而測量出當前空氣相對濕度和溫度,顯示在4位數碼管。并且設置了濕度和溫度的上限制,一旦檢測的濕度或溫度超過了設定值,就會啟動報警裝置。該產品具有體積小巧、成本低、可靠性高,測量精度高等優(yōu)點。 &

4、lt;/p><p>  關鍵詞: 單片機;濕度;溫度;檢測</p><p>  Design and Implementation of an Intelligent Temperature and Humidity Detection System Based on LM75A and HS1101 </p><p><b>  Abstract<

5、/b></p><p>  With computer technology development, automatic measurement and control of temperature and humidity are widely applied to agriculture, industry, national defense, storage and other fields. A

6、temperature and humidity measurement system based on 51 MCU is designed in this paper, by control and treatment of STC89C52RC,use the humidity sensor element HS1101 that the range between 1%~99% and temperature sensor el

7、ement LM75A that the range between -55℃~+125℃.Accordingly measures the current relative h</p><p>  keywords: MCU; Humidity; Temperature; Detection目 錄</p><p><b>  1引言1</b></p>

8、;<p>  1.1課題背景1</p><p>  1.2本課題研究的意義1</p><p>  1.3本課題的研究方法1</p><p>  2濕度和溫度測量2</p><p>  2.1空氣濕度的表示方法2</p><p>  2.2濕度傳感器的發(fā)展史2</p>

9、<p>  2.3空氣溫度的表示方法3</p><p>  2.4溫度傳感器的發(fā)展史5</p><p>  3硬件電路設計5</p><p>  3.1電源電路和單片機電路模塊6</p><p>  3.2濕度檢測模塊7</p><p>  3.3溫度檢測模塊9</p>

10、<p>  3.4數碼管顯示和鍵盤控制模塊12</p><p>  3.5報警電路模塊12</p><p><b>  4軟件設計12</b></p><p>  4.1主程序的設計13</p><p>  4.2中斷函數設計15</p><p>  5調試與測試

11、16</p><p>  5.1軟件調試16</p><p>  5.2電源及硬件電路調試17</p><p>  5.3濕度電路調試18</p><p>  5.4溫度電路調試18</p><p>  5.5報警電路調試19</p><p>  5.6按鍵測試19<

12、;/p><p>  6結論與展望19</p><p>  6.1全文總結19</p><p>  6.2前景展望20</p><p><b>  參考文獻21</b></p><p><b>  致 謝22</b></p><p>&

13、lt;b>  附 錄23</b></p><p><b>  引言</b></p><p><b>  課題背景</b></p><p>  在日常生活中,空氣濕度和溫度直接影響人們的生活與生產。如在電子設備機房,為了保持設備運行良好,延長設備使用壽命。對濕度及溫度都有較高要求。在生活中,當環(huán)境濕

14、度過低時,人體會感覺皮膚干燥不舒服。而濕度過大時,體表汗液不能及時排除蒸發(fā),人體不舒適度會增大。此外如倉庫、博物館、資料室、實驗室等對濕度和溫度要求較高的場合,濕度和溫度檢測的應用前景也很廣泛。所以,溫濕度檢測系統(tǒng)的廣泛應用是必然的,且隨著人們生活水平的提高,多功能、自動化產品越來越受歡迎。智能溫濕度檢測系統(tǒng)采用數碼管顯示,可得到直觀且準確的數據,讓用戶對室內濕度的把握更準確。</p><p><b>

15、  本課題研究的意義</b></p><p>  基于該產品的需求,研究并提供一個小巧、高性價比、多功能的智能溫度和濕度檢測系統(tǒng)很有必要的,物廉價美是每個產品能受到用戶歡迎的主要原因。因此,配置簡單、功能完善、體積適宜是本次研究主要的著重點。本文選用LM75A數字溫度檢測芯片和HS1101電容式濕度傳感器分別作為溫度和濕度的感應器件。應用最簡單的設計達到最實用的功能。</p><p

16、><b>  本課題的研究方法</b></p><p>  本論文所完成的任務是通過產品對環(huán)境大氣相對濕度和空氣溫度進行檢測,并通過數碼管立即顯示,同時當溫度超過設定溫度時及時報警。</p><p>  設計中采用Keil與Proteus連調仿真,再結合硬件調試的辦法。</p><p>  第一章引言,主要介紹智能溫濕度檢測系統(tǒng)的背景及以

17、后的發(fā)展,并且簡單描述該課題的意義。</p><p>  第二章溫度和濕度的測量,分別描述溫度和濕度的表示方法和溫度傳感器及濕度傳感器的發(fā)展史。</p><p>  第三章硬件電路設計,主要介紹智能溫度和濕度檢測系統(tǒng)的硬件設計。詳細的從功能的模塊上闡述工作原理。</p><p>  第四章軟件設計,主要通過流程圖簡單介紹編寫程序的思維和程序的各個功能。</p&

18、gt;<p>  第五章調試與測試。描述本課題的調試過程和相關的數據,分析調試過程中遇到的問題和解決方案。在設計完成時的測試方式。</p><p>  第六章結論和展望,對本課題進行總結和對該設計的發(fā)展進行展望。</p><p><b>  濕度和溫度測量</b></p><p><b>  空氣濕度的表示方法</

19、b></p><p>  人們通常采用絕對濕度、相對濕度和飽和差三種不同量度方式來表示空氣濕度。</p><p>  1、絕對濕度。指每立方米空氣中含有的水汽的克數。通常用水汽壓的大小來表示,其單位為百帕或毫米。絕對濕度大,空氣比較潮濕;絕對濕度小,空氣比較干燥。而在一定溫度下,空氣中的水汽含量有一個最大的限度,達到這個限度時的水汽壓,叫飽和水汽壓。飽和水汽壓隨著空氣溫度的增高而迅速

20、變大。</p><p>  2、相對濕度。指空氣中的實際的水汽壓(即絕對濕度)與當時溫度下飽和水汽壓的百分比。相對濕度是一個百分數,沒有單位。相對濕度小,說明當時的空氣遠沒有達到飽和狀態(tài),空氣干燥;相對濕度大,表明接近水汽壓飽和,空氣潮濕。這種表示方法,方便于對不同溫度下的濕度進行比較,其用途最為廣泛,</p><p>  3、飽和差。指測量時的溫度下的飽和水汽壓和空氣中實際的水汽壓之間的

21、差值。飽和差越小,說明空氣越潮濕,飽和差越大,說明空氣越干燥。</p><p>  人們經常采用相對濕度來表示空氣的濕度,本文設計的產品也采用相對濕度的表示方式[1]。</p><p><b>  濕度傳感器的發(fā)展史</b></p><p>  最早的濕度檢測法是達芬奇用羊毛或人頭發(fā)制成的毛發(fā)濕度計。這種機械式濕度檢測儀曾在測濕歷史上發(fā)揮重大作

22、用。</p><p>  但是隨著電子技術的發(fā)展, 人們開始對電子濕度傳感器進行研究。1939年, 頓蒙利用材料的電氣特性研制出世界上第一個濕度傳感器。頓蒙濕度傳感器是利用電解質制成的。根據電阻值的變化可以檢測相對濕度。但是, 這種傳感器的檢測范圍太小, 要想測量較寬的濕度變化必須使用多個特性不同的傳感器。同時進入測濕市場的還有利用聚合物薄膜或碳膜吸濕膨脹原理制作的濕度傳感器。然而, 這些傳感器都不能批量生產,

23、因為它們的制作過程需要大量的人工技巧,因此需要龐大的生產資金。</p><p>  后來, 人們又開始研究如何用半導體制造濕度傳感器, 于是研制出若干種以陶瓷金屬氧化物為主要材料的濕度傳感器。測試了用含金屬氧化物的厚膜硅或膠體涂印的傳感器。此外, 還通過減小膠體電阻的辦法提高響應速度。陶瓷濕度傳感器會由于吸水、界面捕獲現(xiàn)象和環(huán)境中, 分子等因素而使性能變壞。為防止這種情況, 又研制出能耐受定時加熱清洗的傳感器元件

24、。</p><p>  本文設計所采用的濕度傳感器為濕敏電容式傳感器。濕敏電容一般是用高分子薄膜電容制成的,常用的高分子材料有聚苯乙烯、聚酰亞胺、酷酸醋酸纖維等。當環(huán)境濕度發(fā)生改變時,濕敏電容的介電常數發(fā)生變化,使其電容量也發(fā)生變化,其電容變化量與相對濕度成正比。濕敏電容的主要優(yōu)點是靈敏度高、產品互換性好、響應速度快、濕度的滯后量小、便于制造、容易實現(xiàn)小型化和集成化,但其精度一般比濕敏電阻要低一些。國外生產濕敏電

25、容的主要廠家有Humirel公司、Philips公司、Siemens公司等。除電阻式、電容式濕敏元件之外,還有電解質離子型濕敏元件、重量型濕敏元件(利用感濕膜重量的變化來改變振蕩頻率)、光強型濕敏元件、聲表面波濕敏元件等。</p><p><b>  空氣溫度的表示方法</b></p><p>  溫度的表示方式有幾種,我們常用的是攝氏度的表示方式,但不同的國家和不同

26、的環(huán)境為了方便人們會用不同的表示方式,</p><p>  1、攝氏溫度。目前被通常使用的一種溫度表示方式,是設定在一個標準大氣壓下水的冰點為零度,沸點為100度,其中間分成100等分,每個等分被定為1攝氏度。</p><p>  2、絕對溫度。是從物理學考慮到的最低溫度(-273.15℃)作為0度;1度的刻度和攝氏相同,單位用K表示,"0" K 被假定為分子的熱運動處

27、于靜止狀態(tài)時的溫度;稱之為“絕對溫度”。 </p><p>  絕對溫度T(K)=攝氏溫度t(℃)+273.15 (1-1)</p><p>  3、華氏溫度。早前規(guī)定冰和食鹽的混合物溫度為0度,冰點為32度,人們的體溫為96度的表示方法,單位為:℉;后來更改為水的溫度為32度,沸點為212度中間分為180等分。</p&g

28、t;<p>  攝氏溫度t(℃)=5/9 ×[華氏溫度(℉)-32 ] (1-2)</p><p>  華氏溫度(℉)=9/5×攝氏溫度t(℃)+32 (1-3)</p><p>  國際實用溫標是一個國際協(xié)議性溫標,它與熱力學溫標相接近,而且復現(xiàn)精度高,使用方便。目前

29、國際通用的溫標是1975年第15屆國際權度大會通過的《1968年國際實用溫標-1975年修訂版》,記為:IPTS-68(Rev-75)。但由于IPTS-68溫示存在一定的不足,國際計量委員會在18屆國際計量大會第七號決議授權予1989年會議通過了1990年國際溫標ITS-90,ITS-90溫標替代IPTS-68。我國自1994年1月1日起全面實施ITS-90國際溫標。</p><p>  1990年國際溫標(IT

30、S-90)簡介如下。 1.溫度單位   熱力學溫度(符號為T)是基本功手物理量,它的單位為開爾文(符號為K),定義為水三相點的熱力學溫度的1/273.16。由于以前的溫標定義中,使用了與273.15K(冰點)的差值來表示溫度,因此現(xiàn)在仍保留這各方法。 根據定義,攝氏度的大小等于開爾文,溫差亦可以用攝氏度或開爾文來表示。 國際溫標ITS-90同時定義國際開爾文溫度(符號為T90)和國際攝氏溫度(符號為t90) 2.國際溫標ITS-90的通

31、則, ITS-90由0.65K向上到普朗克輻射定律使用單色輻射實際可測量的最高溫度。ITS-90是這樣制訂的,即在全量程中,任何溫度的T90值非常接近于溫標采納時T的最佳估計值,與直接測量熱力學溫度相比,T90的測量要方便得多,而且更為精密,并具有很高的復現(xiàn)性。 3.ITS-90的定義 第一溫區(qū)為0.65K到5.00K之間, T90由3He和4He的蒸氣壓與溫度的關系式來定義。 第二溫區(qū)為3.0K到氖三相點(24.5661K)之間T90

32、是用氦氣體溫度計來定義. 第二溫區(qū)為平衡氫三相點(13.8033K)到銀的凝固點(961.78℃</p><p><b>  溫度傳感器的發(fā)展史</b></p><p>  溫度傳感器的發(fā)展大致經歷了以下3個階段:1、傳統(tǒng)的分立式溫度傳感器(含敏感元件),主要是能夠進行非電量和電量之間的轉換。2、模擬集成溫度傳感器/控制器。3、智能溫度傳感器。目前,國際上新型溫度傳感

33、器正從模擬式向數字式、集成化向智能化及網絡化的方向發(fā)展。溫度傳感器按傳感器與被測介質的接觸方式可分為兩大類:一類是接觸式溫度傳感器,一類是非接觸式溫度傳感器。接觸式溫度傳感器的測溫元件與被測對象要有良好的熱接觸,通過熱傳導及對流原理達到熱平衡,這時的示值即為被測對象的溫度。這種測溫方法精度比較高,并可測量物體內部的溫度分布。但對于運動的,熱容量比較小的及對感溫元件有腐蝕作用的對象,這種方法將會產生很大的誤差。非接觸測溫的測溫元件與被測對

34、象互不接觸。常用的是輻射熱交換原理。此種測溫方法的主要特點是可測量運動狀態(tài)的小目標及熱容量小或變化迅速的對象,也可以測量溫度場的溫度分布,但受環(huán)境的影響比較大。</p><p><b>  硬件電路設計</b></p><p>  圖3-1 硬件原理框圖</p><p>  本系統(tǒng)電源電路采用穩(wěn)定的5V電壓,使電路進行工作正常。單片機的定時/計

35、數器來測量由濕度傳感器電路所產生的頻率值,并經過單片機的程序處理后,轉換為相應的空氣相對濕度,顯示在數碼管上。另一方面,單片機直接讀取溫度傳感器中檢測的溫度值,再由單片機處理后傳給數碼管顯示。如果測量溫度超過設定的溫度值,溫度傳感器立即向單片機發(fā)出信號,啟動報警系統(tǒng)。顯示方式是通過按鍵控制的,由按鍵來控制濕度顯示和溫度顯示的切換,在顯示中,分別用“C”和“H”來表示溫度和濕度的單位符號。根據以上分析,可將本電路劃分為:電源電路和單片機電

36、路模塊、數碼管顯示和鍵盤控制模塊、濕度檢測模塊、溫度檢測模塊和報警電路模塊。硬件結構框圖如圖3-1所示。</p><p>  電源電路和單片機電路模塊</p><p>  圖3-2 電源電路模塊</p><p>  電源電路模塊中,電源兩端并聯(lián)一個10uF的電解電容與105電容作為電源去耦電容。而電源和地的接線也是獨立的,是為了在實際操作中避免電源與地的短路,而且也

37、讓產品的操作更加方便。</p><p>  圖3-3 單片機電路模塊</p><p>  本電路使用的STC89C52RC單片機是一種低功耗、高性能、高抗干擾的CMOS 8位微控制器,它的結構與MCS-51單片機產品完全兼容,8K字節(jié)在系統(tǒng)可編程Flash存儲器,三個16位定時器/計數器,六個中斷源,32個可編程I/O口, 1000次擦寫周期,全雙工UART串行通道,低功耗空閑和掉電模式,

38、掉電后中斷可喚醒,看門狗定時器等[3]。</p><p>  單片機電路部分包括復位電路與晶振電路。復位電路部分采用上電復位方式。方便在使用過程中產品的復位。復位后單片機所有引腳高電平有效。單片機電路圖如圖3-2所示。晶振電路采用的是11.0592M的晶振和兩個22pF電容組成使單片機正常工作。</p><p><b>  濕度檢測模塊</b></p>

39、<p>  本設計濕度檢測模塊使用的濕度傳感器HS1101是法國Humirel生產的電容式濕度傳感器。它具有以下特點:</p><p>  全互換性,在標準環(huán)境下不需校正。</p><p>  長時間飽和下快速脫濕。</p><p>  可以自動化焊接,包括波峰焊或水沒</p><p>  高可靠性與長時間穩(wěn)定性。</p>

40、;<p>  專利的固態(tài)聚合物結構。</p><p>  可用于線性電壓或頻率輸出回路。</p><p><b>  快速反應時間。</b></p><p>  可見HS1101是不僅具有較高精度,還具有高可靠性的濕度傳感器。它的濕度</p><p>  響應曲線接近線性,能夠使設計更加的方便可靠。<

41、/p><p>  圖3-4 HS1101的濕度電容響應曲線</p><p>  HS1101是基于獨特工藝設計的固態(tài)聚合物結構,在電路中等效于一個電容器,其電容值隨所測空氣的相對濕度的增大而增大。具有極好的線性輸出,在相對濕度為0%RH~100%RH的范圍內,電容的容量由163 pF變化到202 pF,其誤差不超過±2%RH;濕度量程為1%RH~99%RH,工作的溫度范圍為-40℃~

42、+100℃;濕度輸出受溫度影響極小(溫度系數僅為0.04 pF/℃);常溫下使用不需要溫度補償,也不用進行校準[4]。</p><p>  HS1101是一種在高分子薄膜上形成的電容。高分子薄膜上的電極是一種很薄的金屬微孔蒸發(fā)膜,水分子被兩端的電極被高分子薄膜吸附或釋放,隨著其水分子的吸附或釋放,高分子的介電系數將發(fā)生相應的變化。由于介電系數隨空氣的相對濕度變化而變化,所以只要測定HS1101的電容值就可得到相對

43、濕度。其濕度電容響應曲線如圖3-4所示。</p><p>  為了能讓單片機方便的讀取HS1101電容值的變化,將HS1101接入555非穩(wěn)態(tài)電路,把電容值的變化轉換為頻率值的變化,這樣可以直接由單片機測出,不需要再經過A/D器件,簡化了電路的設計。</p><p>  圖3-5所示[5],HS1101作為電容變量接在555芯片的TRIG與THR兩引腳上,引腳DIS用作電阻R4的短路,在R

44、4上串聯(lián)一個可變電阻,用作實際操作中調節(jié)R4的的阻值,使頻率的計算更加方便。等量電容HS1101通過R1與R4充電到門限電壓,通過R4放電到觸發(fā)電平,然后R1通過引腳7短路到地,555振蕩器輸出口腳3與單片機14腳T0連接,達到輸出頻率到單片機的目的。</p><p>  圖3-5濕度傳感器電路模塊</p><p>  555電路的非平衡電阻R2用作內部溫度補償,目的是為了引入溫度效應,使

45、他與HS1101的溫度效應相匹配,由于不同型號的555內部溫度不常有所不同,R2的值必須與特定的芯片相匹配,為了保證在55%RH的典型濕度值時頻率為6271HZ,R4也要做稍許修正。表3-1[6]給出了本次設計中采用的頻率輸出參數(參考點:28℃,相對濕度:50%,輸出頻率:6271Hz)[7]。</p><p>  表3-1頻率輸出典型參數</p><p><b>  溫度檢測

46、模塊</b></p><p>  本次設計溫度檢測模塊選用的是LM75A溫度檢測芯片。它的特性如下:</p><p>  1、提供環(huán)境溫度對應的數 字信息,直接表示溫度。 </p><p>  2、對某一特定溫度做出反應,可以配置成中斷或者比較器模式。 </p><p>  3、小型8腳封裝。 </p><p&

47、gt;  4、具有I²C總線接口。 </p><p>  5、寬電源電壓范圍:2.8V~5.5V。 </p><p>  6、溫度范圍:-55℃~+125℃。</p><p>  7、提供0.125℃精度的11位ADC。 </p><p>  8、溫度精度:-25℃~+100℃時為±2℃,-55℃~+125℃時為±

48、;3℃.</p><p>  9、可編程溫度閥值和之后設定點。 </p><p>  10、低功耗設計,工作電流為250uA,掉電模式為3.5uA。 </p><p>  LM75A是一個使用了內置帶隙溫度傳感器和∑-△模數轉換技術的溫度-數字轉換器,它也是一個溫度檢測器,可提供一個過熱檢測輸出。LM75A 包含許多數據寄存器:配置寄存器(Conf),用來存儲器件的

49、某些配置,如器件的工作模式、OS工作模式、OS極性和 OS故障隊列等(在功能描述一節(jié)中有詳細描述);溫度寄存器(Temp),用來存儲讀取的數字溫度;設定點寄存器(Tos & Thyst),用來存儲可編程的過熱關斷和滯后限制,器件通過 2 線的串行 I²C 總線接口與控制器通信。LM75A 還包含一個開漏輸出(OS),當溫度超過編程限制的值時該輸出有效。LM75A有 3個可選的邏輯地址管腳,使得同一總線上可同時連接8個器

50、件而不發(fā)生地址沖突。LM75A可以在-55℃~+125℃的溫度范圍內將溫度直接轉換為數字信號存儲在內部寄存器中,并可實現(xiàn)0.125℃的精度。MCU可以通過I²C總線直接讀取其內部寄存器中的數據,并可通過I²C對4個數據寄存器進行操作,設置成不同的工作模式 [8]。</p><p>  圖3-6溫度傳感器模塊</p><p>  如圖3-6所示,LM75A的時鐘和數據串口

51、及OS過熱關斷輸出與單片機相接,并且分別接10K的上拉電阻,而A0,A1,A2數字輸出的地址線全部接地,表示只有一個地址。</p><p>  溫度的報警是由LM75A設置的,由于該芯片中設定點寄存器(Tos & Thyst),特定用來存儲可編程的過熱關斷和滯后限制,器件通過 2 線的串行 I²C 總線接口與控制器通信。LM75A 還包含一個開漏輸出(OS),當溫度超過編程限制的值時該輸出有效。

52、所以當設置了過熱關斷點和滯后點以后,檢測溫度達到設置溫度值,OS輸出有效,單片機收到OS是信號后,啟動報警裝置,當檢測溫度下降到滯后點后,OS輸出無效,報警接觸。圖3-7[9]所示的就是OS的響應溫度時序圖。</p><p>  圖3-7 OS響應溫度</p><p>  *=OS 可通過讀寄存器或使器件進入關斷狀態(tài)來復位。</p><p>  假設故障隊列在每個T

53、os 和Thyst 交叉點處都被滿足。</p><p>  數碼管顯示和鍵盤控制模塊</p><p>  本設計由于STC89C52RC單片機P0口沒有內部上拉電阻,所以在接數碼管時需要外接上拉電阻。本設計采用一個4位8段共陰數碼管作為顯示,由P0口提供段選,P2.4-P2.7提供位選碼,上拉電阻選用2.2K的排阻。</p><p>  本設計提供一個按鍵作為溫度和

54、濕度顯示的切換功能。連接的是P2.2口。</p><p><b>  報警電路模塊</b></p><p>  當前溫度和濕度值分別超過LM75A內設定的溫度和單片機設定的濕度值時,單片機將置低P2.3,三極管Q1導通,蜂鳴器將發(fā)出報警聲。報警電路模塊如圖3-8所示。</p><p>  圖3-8 報警電路原理</p><p

55、><b>  軟件設計</b></p><p>  軟件設計是本次設計的另一個重點,在此次設計中,采用C語言進行程序的編寫,程序可讀性較高,易理解和修改。對頻率的計數采用中斷方式,節(jié)省CPU資源,讀出的頻率轉換為濕度值輸出時采用查表方式,提高運算速度,降低運算難度。</p><p><b>  主程序的設計</b></p>&

56、lt;p>  主程序流程圖如圖4-1所示。</p><p>  在主程序中,首先對中斷及各類寄存器狀態(tài)進行初始化,將T0作為計數器,對測濕度的振蕩電路進行計數,T1作為定時器每隔1/20秒產生一次中斷,在中斷程序中讀取計數器的值并對其進行處理,計算出濕度。</p><p>  初始化完成后主程序將依次運行溫度采集、數碼管顯示、報警控制、按鍵判斷等子例程并不斷循環(huán)。</p>

57、<p>  溫度采集時通過I²C總線與LM75A通信,采集到LM75A的寄存器中存儲的相關數據并對其進行處理,轉換為溫度值。</p><p>  報警控制則是判斷濕度值是否超出或低于正常值以及LM75A的OS端是否發(fā)出報警。如果超出范圍或者OS端發(fā)出報警的話,就把控制蜂鳴器的端口置1,使得蜂鳴器工作。</p><p><b>  圖4-1 主流程圖<

58、/b></p><p>  顯示子程序對顯示模式標志進行判斷,根據顯示模式的不同則顯示不同的單位以及數值(溫度值或者濕度值)。</p><p>  進行按鍵判斷時如果發(fā)現(xiàn)按鍵被按下則首先進行軟件延時去抖。如果判斷是按鍵按下的話,若顯示模式是顯示溫度則換為顯示濕度;若顯示模式是顯示濕度的話則換為顯示溫度。</p><p><b>  中斷函數設計<

59、;/b></p><p>  圖4-2 中斷流程圖</p><p>  中斷流程圖4-2所示。當定時器1中斷到來時,將調用中斷服務程序。中斷服務程序執(zhí)行后,先關閉中斷,防止因為別的事情產生的中斷影響此服務程序。然后判斷計數器0是否溢出。若果計數器0溢出的話則是不正常,因為根據設計振蕩器頻率不過超過8000Hz。所以如果溢出的話就放棄本次的數據。如果正常的話就對其進行相應的運算,計算出

60、相應的濕度。為了方便并且簡化運算,本程序使用分段的一次函數來逼近實際的濕度-頻率曲線。</p><p><b>  調試與測試</b></p><p>  測試過程分為硬件調試和軟件測試。硬件部分采用萬用表對硬件進行靜態(tài)分析,檢查各電路是否能夠正常工作。之后使用示波器,觀察晶振與頻率產生是否正常。軟件部分使用Keil軟件進行程序的編寫和調試,并通過Proteus與Ke

61、il軟件進行濕度模塊的仿真連調(由于在Proteue軟件里沒有LM75A芯片,所以無法進行溫度模塊的仿真),修改程序中的錯誤。最后進行軟件與硬件的連調工作,檢查能否達到技術要求,并實現(xiàn)預定功能,</p><p><b>  軟件調試</b></p><p>  將程序調入Proteus原理圖,運行仿真。由于Proteus中無HS1101和LM75A,所以只能用以電容代

62、替HS1101做濕度功能的仿真,通過對照電容值-濕度值表格,改變替代HS1101的電容值,觀察輸出頻率變化是否正常,數碼管濕度數值是否正常。經過測試,程序各功能正常,顯示數值達到預定目標,程序運行中無不正?,F(xiàn)象,說明程序基本完成,達到預期要求。</p><p>  仿真圖如圖5-1所示。</p><p><b>  圖5-1仿真原理圖</b></p>&

63、lt;p><b>  電源及硬件電路調試</b></p><p>  測試儀器包括數字萬用表、示波器、+5V USB電源,溫濕度表等。</p><p>  在通電前,先用數字萬用表的蜂鳴器測試電路板是否有虛焊,漏焊,短路和斷路現(xiàn)象,避免在通電調試時,由于電路焊接問題影響電路的正常工作。通電后,用數字萬用表對每個芯片管腳進行測試,檢查各芯片供電是否正常。檢查單片機

64、為空的時,各管腳高低電平是否正常。用示波器測量晶振是否起振,單片機頻率是否正常。用示波器觀察555振蕩器輸出引腳輸出的頻率是否正常。</p><p>  燒制程序,觀察數碼管顯示是否正常,按鍵控制是否正常。</p><p>  測試結果每個芯片的供電達到5V要求,晶振與555振蕩器頻率符合要求,數碼管顯示正常,各按鍵功能符合要求,基本完成硬件預期功能。</p><p&g

65、t;<b>  濕度電路調試</b></p><p>  將程序燒入單片機之后,接通電源,數碼管顯示出當前環(huán)境相對濕度值,人為減濕(使用吹風機吹風),濕度值降低。停止吹風后,看見數碼管顯示中,濕度值明顯回升,說明本機濕度傳感器焊接到位,設計合理,達到功能要求。</p><p>  在實際的調試中,由于剛開始電路的錯誤而無法起振,所以對NE555的各引腳進行了電壓的測試

66、,便于查找錯誤。表5-1是NE555正常工作后,各引腳的電壓值。</p><p>  表5-1 芯片NE555正常工作的引腳電壓表</p><p>  在實際測試中,通過吹風機能降低到最低相對濕度36h,通過對著濕度傳感器呼氣能升高到相對濕度的最高值82h,如表5-2,是HS1101濕度和555振蕩電路所對應的頻率值。</p><p>  表5-2 HS1101濕度

67、和頻率值對應表</p><p><b>  溫度電路調試</b></p><p>  在電路接通之后,數碼管顯示出當前環(huán)境中空氣溫度,人為的升高溫度(用吹風機的熱風檔吹風),溫度升高。停止吹風后,看見數碼管顯示的溫度值明顯降低。當溫度升至芯片內部設定溫度值時,使用萬用表查看芯片的OS引腳有電平的改變,證明芯片本身的報警裝置已經啟動,說明本機溫度傳感器焊接到位,設計合理

68、,達到功能要求。</p><p><b>  報警電路調試</b></p><p>  在程序中將上限報警值設定存入LM75A,加溫后,讓當前濕度值不小于報警上限,蜂鳴器鳴叫,上限報警功能正常。在程序中設置濕度的上限報警值,當濕度超過上限值時,報警系統(tǒng)啟動,說明報警電路設計合理,完全符合程序控制,功能實現(xiàn)。</p><p><b> 

69、 按鍵測試</b></p><p>  電路連接電源之后,將相關程序燒入單片機,要求預設的按鍵控制溫度和濕度顯示模式。</p><p>  經過測試,按下按鍵,數碼管顯示符合按鍵預設功能。通過多次測試,與理論預設的完全一樣。這樣就說明了本機按鍵電路設計合理,電路焊接到位。</p><p><b>  結論與展望</b></p&

70、gt;<p><b>  全文總結</b></p><p>  本文所介紹的是基于LM75A和HS1101的智能溫度濕度檢測系統(tǒng)的設計與實現(xiàn),主要闡述了硬件設計中的各模塊設計和軟件的設計。在設計中將溫度和濕度的檢測分別用了兩個傳感器來分別檢測,是為了使每一方面的檢測在獨立的狀態(tài)下更加的簡單和精確,也方便了之后調試的方便。另外溫度檢測芯片是直接將內部傳感器測量的溫度轉換為數字信號

71、直接傳給單片機,而濕度傳感器是用555振蕩電路來實現(xiàn)濕度-頻率的轉換,所以一個是數字信號,一個是模擬信號,在電路設計時,需要將兩部分分開布置,避免不同信號的干擾。在報警電路方面,溫度采用的是溫度檢測芯片設定的報警值,有上限設定點和滯后點,當溫度達到上限設定值后報警,當溫度下降到滯后值時取消報警。濕度報警是由單片機設置,當超過了設定的報警值后,啟動蜂鳴器。各項功能基本實現(xiàn),達到設計目標。</p><p>  在畢業(yè)

72、設計中,通過自己的學習與研究,特別是將書本和自己搜索的資料結合一起時在實際中運用,讓我更加的掌握了理論知識,加深了理論和原理的了解,讓我更深刻的理解到處理實際問題時所面臨的困難以及全面考慮問題的重要性。在這個設計過程中,提升了查閱文獻資料的水平,增加了獨立思考解決問題的能力,提高了了單片機硬件設計和軟件編寫的水平。</p><p>  不過由于對51單片機程序編寫的不完善性以及傳感器本身的誤差,還有由于不熟悉液晶

73、顯示軟件運用,在顯示這方面也沒有做的更好,無法設計更高精度的溫濕度檢測系統(tǒng)。下一步研究可以在顯示上使用液晶顯示,完善產品的可操作性,更要著重于配合更好精度的傳感器,如何在單片機中處理更高位數的數據,以增強測量精度,再配合其他器件,達到控制環(huán)境濕度和溫度的目標。</p><p><b>  前景展望</b></p><p>  隨著科技的發(fā)展以及人們生活需求的不斷增加和

74、提升,對各種環(huán)境中空氣的濕度和溫度的要求也越來也大。特別是民用的,體積小巧,價格低廉智能溫度和濕度檢測系統(tǒng)將有很大的市場前景。</p><p>  本文研究的是基于LM75A和HS1101的智能溫度和濕度檢測系統(tǒng),有了初步的進展,不過可以通過對電路的改進和程序的加深使兩者的功能得到更加高效的發(fā)揮。未來的智能溫濕度檢測系統(tǒng)儀器外觀更加好看,形狀更加小巧,操作更加簡便,數據更加全面,精度更加準確。另外,將延伸更多的附

75、加功能,例如在電力的維持方面將更加的長久,在不同的領域根據不同的需求設計相應的功能產品,根據消費者的需要,添加燈光,語音控制,電子音樂報警,在智能方面,可以通過設定使用者的愛好,在不同的季節(jié)和不同的天氣自動控制溫濕度的變化等。總而言之,溫度和濕度的檢測將有更科學,更高性能,更長久的發(fā)展[10]。</p><p><b>  參考文獻</b></p><p>  [1]

76、 中華人民共和國衛(wèi)生部. GBT 18204.14-2000. 中華人民共和國國家標準-公共場所空氣濕度測定方法.北京:中國標準出版社,2000</p><p>  [2] 溫度及其表示方法.老茶的BLOG,文化教育類,2009</p><p>  [3]張俊謨,單片機中級教程[M].北京:北京航空航天大學出版社,1996,75-85</p><p>  [4] H

77、UMIREL.HPC001.Relative Humiditu Sensor HS1101/HS1101[Z].HUMIREL,2002 </p><p>  [5]楊志忠,數字電路技術基礎.北京:高等教育出版社,2004,288-289</p><p>  [6] 濕度傳感器HS1101的原理與應用.中國電子科技信息網</p><p>  [7]冉彥中,基于單片機

78、的軍需倉庫溫濕度測控系統(tǒng)研究,中國學術期刊電子雜志社,2008</p><p>  [8]數字溫度傳感器和溫度監(jiān)控器-LM75A.周立功單片機公司網站,2004</p><p>  [9]LM75A Digital temperature sensor and thermal watchdog TM.PHILIPS,2004</p><p>  [10]新一代TES

79、TO溫濕度記錄儀系列——溫濕度長期記錄的最佳幫手.德國儀器國際貿易有限公司,德國中國總部網站,2011</p><p><b>  致 謝</b></p><p>  本文是在胡仕兵老師的關心和指導下完成的,他耐心的指導和淵博的知識使我受益匪淺,胡老師的指導和我所學習到的知識將使我終身受用,特別是胡老師的指導使我能順利完成本課題。在此向他表示我最衷心的感謝!&l

80、t;/p><p>  論文完成過程中,我還得到了許多同學的幫助,在這里向他們表示誠摯的謝意。</p><p>  感謝所有給與我?guī)椭睦蠋熍c同學。</p><p>  感謝我的家人給予我的支持與鼓勵。</p><p>  最后向在百忙之中評審本文的各位專家、老師表示衷心的感謝!</p><p><b>  附

81、錄</b></p><p><b>  1:設計實物圖</b></p><p><b>  2:主程序</b></p><p>  /* 定義相關變量,wet0,wet1,(記錄頻率的變量)wetdata(濕度),tempdata(溫度)*/</p><p>  unsigned cha

82、r wet0=0,wet1=0;</p><p>  int wetdata = 0;</p><p>  int tempdata = 0;</p><p>  #include"reg52.h"</p><p>  #include"LM75A.h"</p><p>  #i

83、nclude"HS1101.h"</p><p>  /* 定義定時器定時時間,1/20秒*/</p><p>  #define THdef0x4b</p><p>  #define TLdef0xff</p><p><b>  /* 定義端口*/</b></p><p&

84、gt;  sbit BUTTON = P2^2;</p><p>  sbit BUZZER = P2^3;</p><p>  sbit INFORM = P3^1;</p><p>  /*顯示模式,顯示溫度或者顯示濕度*/</p><p>  #define DIS_TEMP 1</p><p>  #d

85、efine DIS_WET2</p><p><b>  /*數碼管碼表*/</b></p><p>  unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};</p><p>  //0, 1, 2 3 4 5 6

86、 7 8 9</p><p><b>  /*延時*/</b></p><p>  void delay_xms (unsigned int count) {</p><p>  register unsigned char j;</p><p>  while (count --)</p>&

87、lt;p>  for (j=0;j<125;j++); //約1MS</p><p><b>  }</b></p><p>  /*數碼管顯示程序*/</p><p>  void Led_Display (int i, char mode) {</p><p>  unsigned char p2ori

88、= P2&0xf;//保存P2端口其他IO口的狀態(tài),防止隨意改變而造成某些讓人不愉快的錯誤</p><p>  char zero_con = 1;//此變量用于判斷在遇到數字0時應該顯示0還是不顯示,比如02的0不用顯示,而102的0需要顯示</p><p>  /* 如果輸入超過可顯示的范圍則退出*/</p><p>  if (i > 999

89、) i=999;</p><p>  else if (i < -99) i=-99;</p><p>  /* 第一個數字,正負號或者數字*/</p><p>  if (i < 0) {</p><p>  P0 = 0x40;</p><p><b>  i = -i;</b>&

90、lt;/p><p><b>  } else {</b></p><p>  if (i/100 == 0) {</p><p>  P0 = 0x00;</p><p><b>  } else {</b></p><p>  zero_con = 0;</p>

91、<p>  P0 = ~tab[i/100];</p><p><b>  }</b></p><p><b>  }</b></p><p>  P2 = p2ori|(~0x10);</p><p><b>  i%=100;</b></p><

92、;p>  delay_xms(1);</p><p>  /* 第二個數字,顯示數字 */</p><p>  if (i/10 == 0 && zero_con) P0 = 0x00;</p><p>  else P0 = ~tab[i/10];</p><p>  P2 = p2ori|(~0x20);</p

93、><p>  delay_xms(1);</p><p>  /*第三個數字,顯示數字*/</p><p>  P0 = ~tab[i%10];</p><p>  P2 = p2ori|(~0x40);</p><p>  delay_xms(1);</p><p>  /* 第四個數字,顯示單位

94、,C或者H */</p><p>  if (mode == DIS_TEMP)</p><p>  P0 = 0x39;</p><p><b>  else</b></p><p>  P0 = 0x76;</p><p>  P2 = p2ori|(~0x80);</p>&l

95、t;p><b>  }</b></p><p>  /*定時器1,用于定時1/20秒,然后從計數器0中讀出計數值,計數值乘以20即頻率,根據頻率即可換算出相應數據*/</p><p>  void timer1() interrupt 3 {</p><p><b>  int a,b;</b></p>

96、<p>  /*為防止意外,關閉中斷,并且復位1/20秒的定時器*/</p><p><b>  EA=0;</b></p><p><b>  TR0=0;</b></p><p><b>  TR1=0;</b></p><p>  TL1=TLdef;<

97、/p><p>  TH1=THdef;</p><p>  /* 如果計數器0溢出則不正常,因為計數器0的計數最大為65535,是不可能溢出的 */</p><p>  if (TF0) {</p><p><b>  wet0 = 0;</b></p><p><b>  wet1 = 0

98、;</b></p><p><b>  TF0 = 0;</b></p><p>  /*沒有溢出的話,讀取數據并計算。計算時為減輕計算量使用分段的一次函數擬合原曲線。相關參數定義在HS1101.h中</p><p>  * 一次函數對應為rh=f*a+b,為減小整形除法帶來的小數忽略造成的誤差,更改為rh=(b-f*10)/a *

99、/</p><p><b>  } else {</b></p><p><b>  wet0=TL0;</b></p><p><b>  wet1=TH0;</b></p><p>  wetdata=wet0|(wet1<<8);</p><

100、;p>  wetdata=20*wetdata;</p><p>  if (wetdata >= wetf0 && wetdata <= wetf1) {</p><p>  a = weta0; b = wetb0;</p><p>  } else if (wetdata >= wetf1 &&am

101、p; wetdata <= wetf2) {</p><p>  a = weta1; b = wetb1;</p><p>  } else if (wetdata >= wetf2 && wetdata <= wetf3) {</p><p>  a = weta2; b = wetb2;</p><p>

102、;  } else if (wetdata >= wetf3 && wetdata <= wetf4) {</p><p>  a = weta3; b = wetb3;</p><p>  } else if (wetdata >= wetf4 && wetdata <= wetf5) {</p><p> 

103、 a = weta4; b = wetb4;</p><p>  } else if (wetdata >= wetf5 && wetdata <= wetf6) {</p><p>  a = weta5; b = wetb5;</p><p>  } else if (wetdata >= wetf6 && we

104、tdata <= wetf7) {</p><p>  a = weta6; b = wetb6;</p><p>  } else if (wetdata >= wetf7 && wetdata <= wetf8) {</p><p>  a = weta7; b = wetb7;</p><p>  }

105、else if (wetdata >= wetf8 && wetdata <= wetf9) {</p><p>  a = weta8; b = wetb8;</p><p>  } else if (wetdata >= wetf9 && wetdata <= wetf10){</p><p>  a =

106、weta9; b = wetb9;</p><p><b>  } else {</b></p><p>  a = 0; b = 0;</p><p><b>  }</b></p><p>  if (a == 0 && b == 0) wetdata = 0;</p>

107、;<p>  else wetdata = (b - wetdata * 10)/a + 15;</p><p><b>  }</b></p><p>  /*計數器復位,重新啟動定時器和中斷*/</p><p><b>  TL0=0x00;</b></p><p><b&g

108、t;  TH0=0x00;</b></p><p><b>  TR0=1;</b></p><p><b>  TR1=1;</b></p><p><b>  EA=1;</b></p><p><b>  }</b></p>

109、<p>  void main() {</p><p>  unsigned char i = 0;//此變量用于某些情況下的計數</p><p>  char dis_mode = DIS_TEMP;//顯示模式</p><p>  char ci = 0;</p><p>  /*初始化定時器。因為初始化這種行為只會發(fā)生一

110、次,所以沒有包裝為函數,增加軟件運行速度。*/</p><p>  SCL_LM75=1;</p><p>  SDA_LM75=1;</p><p>  TMOD=0x15;</p><p><b>  TL0=0x00;</b></p><p><b>  TH0=0x00;<

111、/b></p><p><b>  TL1=0xaf;</b></p><p><b>  TH1=0x3c;</b></p><p><b>  ET1=1;</b></p><p><b>  EA=1;</b></p><p

112、><b>  TR1=1;</b></p><p><b>  TR0=1;</b></p><p><b>  /* 初始化*/</b></p><p>  BUTTON = 1;</p><p>  BUZZER = 1;</p><p>  

113、INFORM = 1;</p><p>  /*初始化測溫芯片,更改報警溫度,詳情見LM75A.h */</p><p>  delay_xms(100);</p><p>  write_conf();</p><p>  write_limit();</p><p>  write_delay();</p&g

114、t;<p>  /*以下進入主例程*/</p><p>  while (1) {</p><p>  /*從LM75A讀出溫度數據并轉換為相應溫度,精確到個位 */</p><p><b>  ci++;</b></p><p>  if (ci >= 100) {</p><p

115、><b>  ci = 0;</b></p><p>  read_intpre();</p><p>  tempdata=tempdata/8;</p><p><b>  } else {</b></p><p>  delay_xms(1);</p><p>&

116、lt;b>  }</b></p><p>  INFORM = 1;</p><p>  if (INFORM == 0 || tempdata >= 40) {</p><p>  BUZZER = 0;</p><p><b>  }</b></p><p>  /*

117、根據現(xiàn)實模式不同顯示不同數據 */</p><p>  if (dis_mode == DIS_TEMP) {</p><p>  Led_Display(tempdata,DIS_TEMP);//tempdata</p><p><b>  } else {</b></p><p>  Led_Display(wetd

118、ata,DIS_WET);//wetdata</p><p><b>  }</b></p><p>  /* 視察按鍵是否被按下。如果按鍵被按下過又沒有彈起的話會進入else if。 */</p><p>  if (i == 0 && BUTTON==0) {</p><p>  BUTTON = 1

119、;</p><p>  for (i = 100; i > 0; i--);//按鍵去抖</p><p>  /*更改顯示模式*/</p><p>  if (BUTTON==0) {</p><p>  if (dis_mode == DIS_TEMP) dis_mode = DIS_WET;</p><p>

120、;  else dis_mode = DIS_TEMP;</p><p><b>  }</b></p><p>  BUTTON = 1;</p><p><b>  i = 222;</b></p><p>  /*在按鍵被下過而又沒有彈起的情況下會進入這個else if。 */</p&g

溫馨提示

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

評論

0/150

提交評論