版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 數(shù)字溫濕度計(jì)的設(shè)計(jì)</b></p><p><b> 摘 要</b></p><p> 溫度和濕度是兩個(gè)最基本的環(huán)境參數(shù),人們生活與溫濕度息息相關(guān)。在工農(nóng)業(yè)生產(chǎn)、氣象、環(huán)保、國(guó)防、科研等部門(mén),經(jīng)常需要對(duì)環(huán)境溫度與濕度進(jìn)行測(cè)量和控制。準(zhǔn)確測(cè)量溫濕度在生物制藥、食品加工、造紙等行業(yè)更是至關(guān)重要的。因此研究溫濕度的測(cè)
2、量方法和控制具有重要的意義。</p><p> 本論文介紹了一種以單片機(jī)AT89C52為主要控制器件,以DHT91為數(shù)字溫濕度傳感器的新型數(shù)字溫濕度計(jì)。本設(shè)計(jì)主要包括硬件電路的設(shè)計(jì)和系統(tǒng)軟件的設(shè)計(jì)。硬件電路主要包括主控制器,測(cè)溫濕控制電路和顯示電路等。主控制器采用單片機(jī)AT89C52,溫濕度傳感器采用盛世瑞恩半導(dǎo)體公司生產(chǎn)的DHT91,顯示電路采用8位共陽(yáng)極LED數(shù)碼管,驅(qū)動(dòng)電路用八個(gè)PNP型的小電壓大電流三極
3、管(S9012)。測(cè)溫濕控制電路由溫濕度傳感器和預(yù)置溫濕度值比較報(bào)警電路組成,當(dāng)實(shí)際測(cè)量溫濕度值大于預(yù)置溫濕度值時(shí),發(fā)出報(bào)警信號(hào)(發(fā)光二極管點(diǎn)亮)。軟件部分主要包括主程序,測(cè)溫濕度子程序,顯示子程序和按鍵子程序等。</p><p> 本次設(shè)計(jì)采用的DHT91數(shù)字溫濕度傳感器包括一個(gè)電容式聚合體測(cè)濕元件和一個(gè)能隙式測(cè)溫元件,并與一個(gè)14位的A/D器以及串行接口電路在同一芯片上實(shí)現(xiàn)無(wú)縫鏈接,從而具有超快響應(yīng),抗干擾
4、能力強(qiáng),性價(jià)比高等優(yōu)點(diǎn)。用DHT91與AT89C52做的數(shù)字溫濕度計(jì)不僅外圍電路簡(jiǎn)單,而且測(cè)量精度比較高。</p><p> 關(guān)鍵詞:溫度測(cè)量, 濕度測(cè)量,AT89C52,DHT91</p><p> THE DESIGN OF DIGITAL </p><p> THERMOMETERS AND HYGROMETER</p><p>
5、<b> ABSTRACT</b></p><p> Temperature and humidity are two basic environmental parameters. people's lives are closely related to temperature and humidity. In the industrial and agricultural
6、production, meteorology, environmental protection, national defense, scientific research, and other departments, we often need to ambient temperature and humidity measurements and control. Accurate measurement of tempera
7、ture and humidity in the pharmaceutical, food processing, paper making and other sectors is essential. So the temper</p><p> This paper presents a new design of digital thermometers and hygrometer. It inclu
8、des a main control device-microcontroller AT89C52 and a digital temperature and humidity sensor. This design includes hardware and system software .The hardware design includes a main controller circuit, Temperature and
9、Humidity measurement and control circuits and show circuit. Main controller uses SCM AT89C52.temperature and humidity sensor uses DHT91 which is yielded by Sensirion (a Semiconductor Corp). Show circ</p><p>
10、 The digital temperature and humidity sensor (DHT91) in this design includes a capacitive polymer sensing element for power consumption makes it the ultimate choice for even relative humidity and a band gap temperature
11、sensor. Both the most demanding applications are seamlessly coupled to a 14bit analog to digital converter with a 14 and the A / D, as well as serial interface circuits in the same chip on the realization of a Gap link t
12、o a super-fast response, anti-interference capability and cost</p><p> KEY WORDS: temperature measurement, humidity measurements, AT89C52, DHT91 </p><p><b> 目 錄</b></p><
13、;p><b> 前 言1</b></p><p> 第一章 設(shè)計(jì)任務(wù)要求和溫濕度計(jì)的發(fā)展史2</p><p> §1.1 設(shè)計(jì)任務(wù)及要求2</p><p> §1.2 設(shè)計(jì)數(shù)字溫濕度計(jì)的依據(jù)和意義2</p><p> §1.3 溫度計(jì)的發(fā)展史3</p
14、><p> §1.4 濕度計(jì)的由來(lái)4</p><p> §1.5 露點(diǎn)意義4</p><p> 第二章 設(shè)計(jì)任務(wù)分析及方案論證5</p><p> §2.1 設(shè)計(jì)總體方案及方案論證5</p><p> §2.2 元器件的選擇6</p>&l
15、t;p> §2.2.1 主控制器芯片6</p><p> §2.2.2 數(shù)字溫濕度傳感器7</p><p> §2.2.3 驅(qū)動(dòng)顯示電路8</p><p> §2.3 溫濕度測(cè)量的方法及分析9</p><p> 第三章 硬件電路的設(shè)計(jì)10</p><
16、;p> §3.1 主控制電路和測(cè)溫濕控制電路10</p><p> §3.2 驅(qū)動(dòng)顯示電路11</p><p> 第四章 軟件設(shè)計(jì)及分析13</p><p> §4.1 DHT91傳輸時(shí)序和指令集13</p><p> §4.1.1 通訊復(fù)位時(shí)序13</p>
17、;<p> §4.1.2 啟動(dòng)傳輸時(shí)序13</p><p> §4.1.3 數(shù)據(jù)傳輸和指令集14</p><p> §4.1.4 濕度的測(cè)量時(shí)序15</p><p> §4.1.5 輸出轉(zhuǎn)換為物理量15</p><p> §4.1.6 DHT91的DC特
18、性。16</p><p> §4.2 程序流程圖17</p><p> §4.3 程序的設(shè)計(jì)18</p><p> §4.3.1 通訊復(fù)位子程序18</p><p> §4.3.2 傳輸啟動(dòng)子程序18</p><p> §4.3.3 寫(xiě)一個(gè)
19、字節(jié)子程序19</p><p> §4.3.4 讀一個(gè)字節(jié)子程序20</p><p> §4.3.5 數(shù)據(jù)處理子程序20</p><p> §4.3.6 顯示子程序21</p><p> §4.3.7 按鍵子程序23</p><p> §4.
20、3.8 中斷刷新顯示數(shù)碼管子程序26</p><p> §4.3.9 軟件在硬件上的調(diào)試分析27</p><p><b> 結(jié) 論29</b></p><p><b> 參考文獻(xiàn)30</b></p><p><b> 致 謝31</b><
21、;/p><p><b> 附 錄32</b></p><p><b> 前 言</b></p><p> 溫度與濕度與人們的生活息息相關(guān)。在工農(nóng)業(yè)生產(chǎn)、氣象、環(huán)保、國(guó)防、科研等部門(mén),經(jīng)常需要對(duì)環(huán)境溫度與濕度進(jìn)行測(cè)量及控制。準(zhǔn)確測(cè)量溫濕度在生物制藥、食品加工、造紙等行業(yè)更是至關(guān)重要的。傳統(tǒng)的溫度計(jì)是用水銀柱來(lái)顯示的,
22、雖然結(jié)構(gòu)簡(jiǎn)單、價(jià)格便宜,但是它的精確度不高,不易讀數(shù)。傳統(tǒng)濕度計(jì)采用干濕球顯示法,不僅復(fù)雜而且測(cè)量精度不高。而采用單片機(jī)對(duì)溫濕度進(jìn)行測(cè)量控制,不僅具有控制方便,簡(jiǎn)單和靈活等優(yōu)點(diǎn),而且可以大幅度提高溫度控制的技術(shù)指標(biāo)。用LED數(shù)碼管來(lái)顯示溫濕度的數(shù)值,看起來(lái)更加直觀。</p><p> 測(cè)量溫濕度的關(guān)鍵是溫濕度傳感器。過(guò)去測(cè)量溫度與濕度是分開(kāi)的。隨著技術(shù)的進(jìn)步和人們生活的需要出現(xiàn)了溫濕度傳感器。溫度傳感器的發(fā)展經(jīng)
23、歷了3個(gè)階段:傳統(tǒng)的分立式溫度傳感器、模擬集成溫度傳感器、智能集成溫度傳感器。目前,國(guó)際上新型溫度傳感器正從模擬式向數(shù)字式、從集成化向智能化、網(wǎng)絡(luò)化的方向發(fā)展。濕度傳感器也是經(jīng)歷了這樣一個(gè)階段逐漸走向數(shù)字智能化。</p><p> 現(xiàn)今國(guó)內(nèi)外用的最多的溫濕度傳感器是SHTxx系列。不過(guò)很多客戶都反應(yīng)SHTxx不方便手工焊接,很容易在焊接的時(shí)候,由于溫度過(guò)高造成傳感器直接損害,因此利用SHTxx傳感器重新在國(guó)內(nèi)封
24、裝得到了DHT 9x系列。SHTxx系列單芯片傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專利的工業(yè)COMS過(guò)程微加工技術(shù)(CMOSens®),確保產(chǎn)品具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器包括一個(gè)電容式聚合體測(cè)濕元件和一個(gè)能隙式測(cè)溫元件,并與一個(gè)14位的A/D器以及串行接口電路在同一芯片上實(shí)現(xiàn)無(wú)縫鏈接,從而具有超快響應(yīng),抗干擾能力強(qiáng),性價(jià)比高等優(yōu)點(diǎn)。</p><p> 采用DHT
25、91數(shù)字溫濕度傳感器與單片機(jī)AT89C52相連外圍電路比較簡(jiǎn)單。 所以,本次設(shè)計(jì)以DHT91數(shù)字溫濕度傳感器為例,介紹基于單片機(jī)的數(shù)字溫濕度計(jì)的設(shè)計(jì)。</p><p> 第一章 設(shè)計(jì)任務(wù)要求和溫濕度計(jì)的發(fā)展史</p><p> §1.1 設(shè)計(jì)任務(wù)及要求</p><p> 設(shè)計(jì)一個(gè)以單片機(jī)為核心的溫濕度測(cè)量系統(tǒng),可實(shí)現(xiàn)的功能為:</p>
26、<p> ?。?)測(cè)量溫度值精度為±1℃,測(cè)量濕度值精確1%;</p><p> (2)系統(tǒng)允許的誤差范圍為1℃和1%以內(nèi);(3)系統(tǒng)可由用戶預(yù)設(shè)溫度值和濕度值,測(cè)溫范圍-40℃—+125℃, 測(cè)濕范圍 0 —100%; </p><p> ?。?)超出預(yù)設(shè)值時(shí)系統(tǒng)會(huì)自動(dòng)報(bào)警,即發(fā)光二極管亮;</p><p> ?。?)系統(tǒng)采用
27、數(shù)碼管顯示,能顯示設(shè)定溫濕度值和測(cè)得的實(shí)際溫濕度值。</p><p> §1.2 設(shè)計(jì)數(shù)字溫濕度計(jì)的依據(jù)和意義</p><p> 溫度與濕度與人們的生活息息相關(guān)。在工農(nóng)業(yè)生產(chǎn)、氣象、環(huán)保、國(guó)防、科研等部門(mén),經(jīng)常需要對(duì)環(huán)境溫度與濕度進(jìn)行測(cè)量及控制。準(zhǔn)確測(cè)量溫濕度在生物制藥、食品加工、造紙等行業(yè)更是至關(guān)重要的。傳統(tǒng)的溫度計(jì)是用水銀柱來(lái)顯示的,雖然結(jié)構(gòu)簡(jiǎn)單、價(jià)格便宜,但是它的精確
28、度不高,不易讀數(shù)。傳統(tǒng)的濕度計(jì)采用干濕球顯示法,不僅復(fù)雜而且測(cè)量精度不高。而采用單片機(jī)對(duì)溫濕度進(jìn)行控制,不僅具有控制方便,簡(jiǎn)單和靈活等優(yōu)點(diǎn),而且可以大幅度提高溫度控制的技術(shù)指標(biāo)。用LED來(lái)顯示溫濕度的數(shù)字看起來(lái)更加直觀。</p><p> 采用DHT91數(shù)字溫濕度傳感器作為檢測(cè)元件,能夠同時(shí)測(cè)試溫度和濕度。這類傳感器不僅易于焊接,而且只有四針管腳,減少了外圍電路的設(shè)計(jì)。DHT91傳感器包括一個(gè)電容式聚合體測(cè)濕元
29、件和一個(gè)能隙式測(cè)溫元件,并與一個(gè)14位的A/D器以及串行接口電路在同一芯片上實(shí)現(xiàn)無(wú)縫鏈接,從而具有超快響應(yīng),抗干擾能力強(qiáng),性價(jià)比高等優(yōu)點(diǎn)。DHT91傳感器可以直接讀出被測(cè)的溫濕度值。同時(shí)單片機(jī)可以把測(cè)量出的數(shù)據(jù)通過(guò)串口傳到計(jì)算機(jī)上,來(lái)完成工業(yè)中的自動(dòng)控制,給工業(yè)生產(chǎn)帶來(lái)了極大的便利。用單片機(jī)控制的溫濕度計(jì)不僅硬件電路簡(jiǎn)單,而且測(cè)量精度比較高。用數(shù)碼管顯示測(cè)量值看起來(lái)比較美觀。</p><p> 總之,無(wú)論在日常
30、生活中還是在工業(yè)、農(nóng)業(yè)方面都離不開(kāi)對(duì)周圍環(huán)境進(jìn)行溫濕度的測(cè)量。因此,研究溫濕度的控制和測(cè)量具有非常重要的意義。</p><p> §1.3 溫度計(jì)的發(fā)展史</p><p> 溫度計(jì)是測(cè)溫儀器的總稱。根據(jù)所用測(cè)溫物質(zhì)的不同和測(cè)溫范圍的不同,有煤油溫度計(jì)、酒精溫度計(jì)、水銀溫度計(jì)、氣體溫度計(jì)、電阻溫度計(jì)、溫差電偶溫度計(jì)、輻射溫度計(jì)和光測(cè)溫度計(jì)等。 </p><
31、p> 最早的溫度計(jì)是在1593年由意大利科學(xué)家伽利略(1564~1642)發(fā)明的。他的第一只溫度計(jì)是一根一端敞口的玻璃管,另一端帶有核桃大的玻璃泡。使用時(shí)先給玻璃泡加熱,然后把玻璃管插入水中。隨著溫度的變化,玻璃管中的水面就會(huì)上下移動(dòng),根據(jù)移動(dòng)的多少就可以判定溫度的變化和溫度的高低。這種溫度計(jì),受外界大氣壓強(qiáng)等環(huán)境因素的影響較大,所以測(cè)量誤差大。 </p><p> 后來(lái)伽利略的學(xué)生和其他科學(xué)家,在這個(gè)
32、基礎(chǔ)上反復(fù)改進(jìn),如把玻璃管倒過(guò)來(lái),把液體放在管內(nèi),把玻璃管封閉等。比較突出的是法國(guó)人布利奧在1659年制造的溫度計(jì),他把玻璃泡的體積縮小,并把測(cè)溫物質(zhì)改為水銀,這樣的溫度計(jì)已具備了現(xiàn)在溫度計(jì)的雛形。以后荷蘭人華倫海特在1709年利用酒精,在1714年又利用水銀作為測(cè)量物質(zhì),制造了更精確的溫度計(jì)。他觀察了水的沸騰溫度、水和冰混合時(shí)的溫度、鹽水和冰混合時(shí)的溫度;經(jīng)過(guò)反復(fù)實(shí)驗(yàn)與核準(zhǔn),最后把一定濃度的鹽水凝固時(shí)的溫度定為0℉,把純水凝固時(shí)的溫度
33、定為32℉,把標(biāo)準(zhǔn)大氣壓下水沸騰的溫度定為212℉,用℉代表華氏溫度,這就是華氏溫度計(jì)。 </p><p> 在華氏溫度計(jì)出現(xiàn)的同時(shí),法國(guó)人列繆爾(1683~1757)也設(shè)計(jì)制造了一種溫度計(jì)。他認(rèn)為水銀的膨脹系數(shù)太小,不宜做測(cè)溫物質(zhì)。他專心研究用酒精作為測(cè)溫物質(zhì)的優(yōu)點(diǎn)。他反復(fù)實(shí)踐發(fā)現(xiàn),含有1/5水的酒精,在水的結(jié)冰溫度和沸騰溫度之間,其體積的膨脹是從1000個(gè)體積單位增大到1080個(gè)體積單位。因此他把冰點(diǎn)和沸點(diǎn)
34、之間分成80份,定為自己溫度計(jì)的溫度分度,這就是列氏溫度計(jì)。</p><p> 華氏溫度計(jì)制成后又經(jīng)過(guò)30多年,瑞典人攝爾修斯于1742年改進(jìn)了華倫海特溫度計(jì)的刻度,他把水的沸點(diǎn)定為零度,把水的冰點(diǎn)定為100度。后來(lái)他的同事施勒默爾把兩個(gè)溫度點(diǎn)的數(shù)值又倒過(guò)來(lái),就成了現(xiàn)在的百分溫度,即攝氏溫度,用℃表示。華氏溫度與攝氏溫度的關(guān)系為: </p><p> ℉=9/5℃+32,或℃=5/9(
35、℉-32)。</p><p> 現(xiàn)在英、美國(guó)家多用華氏溫度,德國(guó)多用列氏溫度,而世界科技界和工農(nóng)業(yè)生產(chǎn)中,以及我國(guó)、法國(guó)等大多數(shù)國(guó)家則多用攝氏溫度。隨著科學(xué)技術(shù)的發(fā)展和現(xiàn)代工業(yè)技術(shù)的需要,測(cè)溫技術(shù)也不斷地改進(jìn)和提高。由于測(cè)溫范圍越來(lái)越廣,根據(jù)不同的要求,又制造出不同需要的測(cè)溫儀器。</p><p> §1.4 濕度計(jì)的由來(lái)</p><p> 濕度計(jì)
36、是測(cè)量空氣內(nèi)含水分多少的儀器?!妒酚?#183;天官書(shū)》中即有測(cè)濕的記載。我國(guó)漢朝初年就已出現(xiàn)濕度計(jì),它是利用天平來(lái)測(cè)量空氣干燥或潮濕的。天平濕度計(jì)的使用方法,是把兩個(gè)重量相等而吸濕性不同的物體,例如灰和鐵,分別掛在天平兩端。當(dāng)空氣濕度發(fā)生變化時(shí),由于兩個(gè)物體吸入的分水不同,重量也就起了變化,于是天平發(fā)生偏差,從而指示出空氣潮濕的程度。 這就是濕度計(jì)的由來(lái)。</p><p> §1.5 露點(diǎn)意義&l
37、t;/p><p> 氣溫愈低,飽和水氣壓就愈小。所以對(duì)于含有一定量水汽的空氣,在氣壓不變的情況下降低溫度,使飽和水汽壓降至與當(dāng)時(shí)實(shí)際的水汽壓相等時(shí)的溫度,稱為露點(diǎn)(Dew point)。</p><p> 露點(diǎn)溫度是指空氣在水汽含量和氣壓都不改變的條件下,冷卻到飽和時(shí)的溫度。形象地說(shuō),就是空氣中的水蒸氣變?yōu)槁吨闀r(shí)候的溫度叫露點(diǎn)溫度。露點(diǎn)溫度本是個(gè)溫度值,可為什么用它來(lái)表示濕度呢?這是因?yàn)椋?/p>
38、當(dāng)空氣中水汽已達(dá)到飽和時(shí),氣溫與露點(diǎn)溫度相同;當(dāng)水汽未達(dá)到飽和時(shí),氣溫一定高于露點(diǎn)溫度。所以露點(diǎn)與氣溫的差值可以表示空氣中的水汽距離飽和的程度。在100%的相對(duì)濕度時(shí),周圍環(huán)境的溫度就是露點(diǎn)溫度。露點(diǎn)溫度越小于周圍環(huán)境的溫度,結(jié)露的可能性就越小,也就意味著空氣越干燥,露點(diǎn)不受溫度影響,但受壓力影響。 濕球溫度的定義是在定壓絕熱的情況下,空氣與水直接接觸,達(dá)到穩(wěn)定熱濕平衡時(shí)的絕熱飽和溫度。</p><p> 第二
39、章 設(shè)計(jì)任務(wù)分析及方案論證</p><p> §2.1 設(shè)計(jì)總體方案及方案論證</p><p> 按照系統(tǒng)設(shè)計(jì)功能的要求,確定系統(tǒng)由5個(gè)模塊組成:主控制器,數(shù)字溫濕度傳感器,報(bào)警電路,按鍵電路及驅(qū)動(dòng)顯示電路。</p><p> 圖2-1 總體電路框圖</p><p> 主控制器的功能有單片機(jī)來(lái)完成,主要負(fù)責(zé)處理由數(shù)字溫濕
40、度傳感器送來(lái)數(shù)據(jù),并把處理好的數(shù)據(jù)送向顯示模塊。數(shù)字溫濕傳感器主要用來(lái)采集周圍環(huán)境參數(shù),并把所采集來(lái)的參數(shù)送向主控制器。按鍵電路主要用來(lái)完成單片機(jī)的復(fù)位操作和溫濕度初始值的設(shè)定。這里需要四個(gè)按鍵,一個(gè)用來(lái)完成單片機(jī)的復(fù)位操作,一個(gè)用來(lái)切換顯示的數(shù)據(jù)(是設(shè)定值還是實(shí)際測(cè)得的值),另外兩個(gè)分別用來(lái)設(shè)定初始溫度和初始濕度的個(gè)位和十位。報(bào)警電路就是用一個(gè)發(fā)光二極管來(lái)實(shí)現(xiàn)的,用來(lái)判斷周圍環(huán)境的溫度或者濕度是否超出設(shè)定值了,任何一個(gè)超出設(shè)定值發(fā)光二
41、極管就會(huì)被點(diǎn)亮。驅(qū)動(dòng)顯示電路主要用來(lái)驅(qū)動(dòng)八位數(shù)碼管發(fā)光的。由于單片機(jī)的輸出電流太?。ㄖ挥袔譵A)不能驅(qū)使數(shù)碼管發(fā)光,所以這里必須增加一個(gè)驅(qū)動(dòng)顯示模塊。</p><p> §2.2 元器件的選擇</p><p> §2.2.1 主控制器芯片</p><p> 主控制器模塊選用單片機(jī)AT89C52。AT89C52是美國(guó)ATMEL公司生產(chǎn)的低
42、電平,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫(xiě)的只讀程序存儲(chǔ)器(PEROM)和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM ),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元,32個(gè)可編程I/O口線, 3個(gè)16位定時(shí)/計(jì)數(shù)器, 低功耗空閑和掉電模式。功能強(qiáng)大的AT89C52單片機(jī)適合于許多較為復(fù)雜控制應(yīng)
43、用場(chǎng)合。</p><p> AT89C52共有6個(gè)中斷向量:兩個(gè)外中斷(INT0和INT1),3個(gè)定時(shí)器中斷(定時(shí)器0, 1, 2),串行口中斷和四個(gè)雙向I/0口。</p><p> P0口:P0口是一組8位漏極開(kāi)路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8個(gè)TTL邏輯門(mén)電路,對(duì)端口P0寫(xiě)“1”時(shí)可作為高阻抗輸入端用。</p>&
44、lt;p> 在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)位,應(yīng)為輸出驅(qū)動(dòng)級(jí)的漏極開(kāi)路,所以必須外接上拉電阻,否則不能正常工作。</p><p> P1口:P1是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTE邏輯門(mén)電路。對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引
45、腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(ILL)。</p><p> 與AT89C51不同之處是,P1.0和P1.1還可分別作為定時(shí)/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P 1.0/T2)和輸入(P 1.1/T2EX )。功能特性如下表2-1所示。</p><p> 表2-1 P1.0和P1.1的第二功能</p><p> P2口:P2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/O口,
46、P2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門(mén)電路。對(duì)端口P2寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(ILL)。</p><p> P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門(mén)電路。對(duì)P3口寫(xiě)入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸
47、入端口。此時(shí),被外部拉低的P3口將用上拉電阻輸出電流(ILL)。</p><p> P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,如表2-2所示。</p><p> 表2-2 AT89C52的P3口的第二功能</p><p> §2.2.2 數(shù)字溫濕度傳感器</p><p> 測(cè)溫濕模塊選用數(shù)字溫濕度傳感器
48、DHT91。現(xiàn)今國(guó)內(nèi)外用的最多的溫濕度傳感器是SHTxx系列。不過(guò)很多客戶都反應(yīng)SHTxx不方便手工焊接,很容易在焊接的時(shí)候,由于溫度過(guò)高造成傳感器直接損害,因此利用SHTxx傳感器重新在國(guó)內(nèi)封裝得到了DHT 9x系列。SHTxx系列單芯片傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專利的工業(yè)COMS過(guò)程微加工技術(shù)(CMOSens®),具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器包括一個(gè)電容式聚合體測(cè)濕元件和一個(gè)
49、能隙式測(cè)溫元件,并與一個(gè)14位的A/D器以及串行接口電路在同一芯片上實(shí)現(xiàn)無(wú)縫鏈接,從而具有超快響應(yīng),抗干擾能力強(qiáng),性價(jià)比高等優(yōu)點(diǎn)。其內(nèi)部機(jī)構(gòu)圖如下圖2-2所示。</p><p> 圖2-2 DHT91結(jié)構(gòu)圖</p><p> §2.2.3 驅(qū)動(dòng)顯示電路</p><p> 驅(qū)動(dòng)顯示模塊選用八位共陽(yáng)極數(shù)碼管和八個(gè)小功率放大三極管S9012。由于單片機(jī)的
50、端口輸出電流太小,這里必須由外界電路來(lái)驅(qū)動(dòng)數(shù)碼管顯示。S9012就是用來(lái)驅(qū)動(dòng)這八位數(shù)碼管顯示的。</p><p> LED數(shù)碼管也稱半導(dǎo)體數(shù)碼管,是目前數(shù)字電路中最常用的顯示器件。它是以發(fā)光二極管作段并按共陰極方式或共陽(yáng)極方式連接后封裝而成的。圖2-2所示是兩種LED數(shù)碼管的外形與內(nèi)部結(jié)構(gòu),+、-分別表示公共陽(yáng)極和公共陰極,a~g是7個(gè)段電極,DP為小數(shù)點(diǎn)。LED數(shù)碼管型號(hào)較多,規(guī)格尺寸也各異,顯示顏色有紅、綠
51、、橙等。</p><p> LED數(shù)碼管的主要特點(diǎn)如下:</p><p> (1)能在低電壓、小電流條件下驅(qū)動(dòng)發(fā)光,能與CMOS、ITL電路兼容。</p><p> (2)發(fā)光響應(yīng)時(shí)間極短(小于0.1μs),高頻特性好,單色性好,亮度高。 </p><p> (3)體積小,重量輕,抗沖擊性能好。 </p><p&g
52、t; (4)壽命長(zhǎng),使用壽命在10萬(wàn)小時(shí)以上,甚至可達(dá)100萬(wàn)小時(shí)。成本低。</p><p> 因此它被廣泛用作數(shù)字儀器儀表、數(shù)控裝置、計(jì)算機(jī)的數(shù)顯器件。</p><p> 圖2-3 LED數(shù)碼管外形和內(nèi)部結(jié)構(gòu)圖</p><p> 小電壓大電流的小功率放大三極管S9012的放大倍數(shù)共分六級(jí):</p><p><b> D級(jí)
53、:64-91 </b></p><p> E級(jí):78-112 </p><p> F級(jí):96-135 </p><p> G級(jí):112-166 </p><p> H級(jí):144-220 </p><p> I級(jí):190-300</p><p> §2.3 溫濕
54、度測(cè)量的方法及分析</p><p> DHT91是一個(gè)兩線串行接口的數(shù)字溫濕度傳感器,一個(gè)接口是時(shí)鐘線,一個(gè)接口是數(shù)據(jù)線(支持雙向傳輸)。它是四針單排封裝,一個(gè)接電源,一個(gè)接地線,另兩個(gè)直接和單片機(jī)的P0_5和P0_6相連。不過(guò)數(shù)據(jù)線和時(shí)鐘線上需要接兩個(gè)10K的上拉電阻,因?yàn)锳T89C52的P0口內(nèi)部沒(méi)有上拉電阻。單片機(jī)通過(guò)P0_5和P0_6向DHT91發(fā)送命令,DHT91接收到命令后做出相應(yīng)的應(yīng)答。由于DHT
55、91內(nèi)部包含一個(gè)14位A/D轉(zhuǎn)換器,所以單片機(jī)接收到就是數(shù)字信號(hào),只需要做相應(yīng)的處理就能得到所需要的數(shù)據(jù)。這里減少了很多外部的電路的連接,用起來(lái)比較方便。</p><p> 第三章 硬件電路的設(shè)計(jì)</p><p> §3.1 主控制電路和測(cè)溫濕控制電路</p><p> 本次硬件設(shè)計(jì)的核心就是TA89C52,其他部件都是圍繞它設(shè)計(jì)的。數(shù)字溫濕度傳
56、感器DHT91的DATA口和SCK口分別與TA89C52的P0_5口和P0_6口相連。因?yàn)镻0口內(nèi)部沒(méi)有上拉電阻,所以這里在DATA和SCK傳輸線上分別加了一個(gè)10K的上拉電阻。預(yù)置數(shù)電路就是三個(gè)按鍵分別與TA89C52的P0_1,P0_2和P0_3口相連,為了降低AT89C52的功耗在按鍵和單片機(jī)的端口間加了個(gè)10K的限流電阻。當(dāng)有按鍵按下時(shí)單片機(jī)收到有效的信號(hào),S1鍵用來(lái)切換顯示的模式(分別顯示實(shí)際所測(cè)得的溫濕度,預(yù)置的溫度值和預(yù)置
57、的濕度值),S2鍵用來(lái)設(shè)置初始溫度或者濕度的十位,S3鍵用來(lái)設(shè)置初始溫度或者濕度的個(gè)位。報(bào)警電路就是把個(gè)發(fā)光二極管和TA89C52的P0_4口相連,當(dāng)P0_4口為低電平時(shí)放光二極管被點(diǎn)亮。發(fā)光二極管的壓降一般為1.5—2.0 V,其工作電流一般取10—20 mA為宜。使用LED作指示電路時(shí),應(yīng)該串接限流電阻,該電阻的阻值大小應(yīng)根據(jù)不同的使用電壓和LED所需工作電流來(lái)選擇。</p><p> I=(5V-2V)/
58、200Ω=15mA</p><p> 這個(gè)電流能使放光二極管正常放光。如果電流小于10mA放光二極管的亮度會(huì)減弱,如果電流大于20mA發(fā)光二極管亮度會(huì)更強(qiáng),但是會(huì)有損發(fā)光二級(jí)管的壽命有時(shí)候甚至?xí)苯訜龤Оl(fā)光二極管。</p><p> 單片機(jī)復(fù)位有兩種:一種是上電復(fù)位,一種是按鍵復(fù)位。下圖用的就是按鍵復(fù)位,當(dāng)按鍵按下時(shí)單片機(jī)的RST口從低電平變?yōu)楦唠娖?,從而進(jìn)入復(fù)位狀態(tài)。當(dāng)按鍵松開(kāi)后,V
59、CC給電容C3充電,從而把RST口拉至電平,單片機(jī)進(jìn)入工作狀態(tài)。只要把下圖的RESET按鍵和R2電阻去掉就成了上電復(fù)位了。</p><p> AT89C52中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或陶瓷諧振器構(gòu)成自激振蕩器。外接石英晶體(或陶瓷諧振器)及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路,對(duì)外
60、接電容C1、C2雖然沒(méi)有十分嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用30pF士10pF,而如果使用陶瓷諧振器,建議選擇40pF士l0pF。這里用到的是12M的石英晶體振蕩器和兩個(gè)30pF的電容。具體原理圖如下圖3-1所示。</p><p> 圖3-1主控制電路和測(cè)溫濕電路原理圖</p><p>
61、; §3.2 驅(qū)動(dòng)顯示電路</p><p> 數(shù)碼管的顯示有兩種方法:一種是靜態(tài)顯示,一種是動(dòng)態(tài)掃描顯示。靜態(tài)顯示就是數(shù)碼管的段選端一對(duì)一與單片機(jī)的I/O相連,位選端則根據(jù)數(shù)碼管的極型來(lái)接地(GND)或者是高電平(VCC)。靜態(tài)顯示實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單,但是浪費(fèi)了單片機(jī)的I/O口資源。動(dòng)態(tài)掃描顯示就是幾個(gè)數(shù)碼管的段選端可以同時(shí)接到單片機(jī)的I/O口,位選端一對(duì)一的接到單片機(jī)的其它I/O口,當(dāng)位選信號(hào)選中
62、某個(gè)數(shù)碼管時(shí),那個(gè)數(shù)碼管就被點(diǎn)亮,而其它數(shù)碼管不亮。動(dòng)態(tài)掃描顯示節(jié)省了單片機(jī)的I/O資源。</p><p> 采用動(dòng)態(tài)顯示方案,設(shè)計(jì)中使用八個(gè)共陰極數(shù)碼管作為顯示載體,通過(guò)八路并口傳輸,共使用了十六個(gè)I/O口。顯示時(shí)采用循環(huán)移位法,即八位數(shù)碼管依次循環(huán)點(diǎn)亮,利用人眼睛的視覺(jué)暫留效果達(dá)到連續(xù)顯示,主程序每運(yùn)行一遍便調(diào)用一次顯示子程序,將數(shù)據(jù)顯示出來(lái)。顯示部分為八位共陽(yáng)極數(shù)碼管(四位一組),數(shù)碼管的段端A,B,C,
63、D,E,F,G和DP與TA89C52的P1口相連,順序可以根據(jù)硬件接線方便而定。數(shù)碼管的字段通過(guò)八個(gè)PNP型的小功率放大三極管S9012與TA89C52的P2口相連。因?yàn)锳T89C52的端口輸出電流太?。ㄖ挥袔譵A)不能點(diǎn)亮這八位數(shù)碼管,所以這里用了八個(gè)S9012來(lái)驅(qū)動(dòng)它們。具體原理圖如下圖3-2所示。</p><p> 這里用的是S9012H331,放大倍數(shù)150倍左右。下圖數(shù)碼管的段選端與單片機(jī)的I/O間還
64、有一個(gè)470Ω的電阻。</p><p> =(5V-0.7V)/4.7KΩ=0.915mA</p><p> =*150=137mA</p><p> =(5V-0.3V-2V)/470Ω*8=46mA(足以點(diǎn)亮數(shù)碼管了)</p><p> 圖3-2驅(qū)動(dòng)顯示電路原理圖</p><p> 第四章 軟件設(shè)計(jì)及分
65、析</p><p> §4.1 DHT91傳輸時(shí)序和指令集</p><p> §4.1.1 通訊復(fù)位時(shí)序</p><p> 串行時(shí)鐘輸入 (SCK)用于微處理器與DTH91之間的通訊同步。由于接口包含了完全靜態(tài)邏輯,因而不存在最小SCK 頻率。串行數(shù)據(jù) (DATA) 三態(tài)門(mén)用于數(shù)據(jù)的讀取。DATA 在SCK 時(shí)鐘下降沿到來(lái)之后改變狀態(tài),
66、并僅在SCK 時(shí)鐘上升沿有效。數(shù)據(jù)傳輸期間,在SCK 時(shí)鐘高電平時(shí),DATA 必須保持穩(wěn)定。為避免信號(hào)沖突,微處理器應(yīng)驅(qū)動(dòng)DATA 在低電平。需要一個(gè)外部的上拉電阻(例如:10kΩ)將信號(hào)提拉至高電平。</p><p> 如果與DTH91 通訊中斷,下列信號(hào)時(shí)序可以復(fù)位串口:當(dāng)DATA 保持高電平時(shí),觸發(fā)SCK 時(shí)鐘9 次或更多。這些時(shí)序只復(fù)位串口,狀態(tài)寄存器內(nèi)容仍然保留。</p><p&g
67、t; 圖4-1通訊復(fù)位時(shí)序</p><p> §4.1.2 啟動(dòng)傳輸時(shí)序</p><p> 用一組“啟動(dòng)傳輸”時(shí)序,來(lái)表示數(shù)據(jù)傳輸?shù)某跏蓟Kǎ寒?dāng)SCK 時(shí)鐘高電平時(shí)DATA 翻轉(zhuǎn)為低電平,緊接著SCK 變?yōu)榈碗娖?,隨后是在SCK 時(shí)鐘高電平時(shí)DATA 翻轉(zhuǎn)為高電平。在下一次指令前,發(fā)送一個(gè)“傳輸啟動(dòng)”時(shí)序。啟動(dòng)傳輸時(shí)序如下圖4-2所示。</p><
68、;p> 圖4-2啟動(dòng)傳輸時(shí)序</p><p> §4.1.3 數(shù)據(jù)傳輸和指令集</p><p> 后續(xù)命令包含三個(gè)地址位(目前只支持“000”),和五個(gè)命令位。DTH 91 會(huì)以下述方式表示已正確地接收到指令:在第8個(gè)SCK 時(shí)鐘的下降沿之后,將DATA 下拉為低電平(ACK 位)。在第9個(gè)SCK 時(shí)鐘的下降之后,釋放DATA(恢復(fù)高電平)。發(fā)布一組測(cè)量命令(‘00
69、000101 ’表示相對(duì)濕度RH,‘00000011 ’表示溫度T)后,控制器要等待測(cè)量結(jié)束。這個(gè)過(guò)程需要大約20/80/320ms ,分別對(duì)應(yīng)8/12/14bit 測(cè)量。確切時(shí)間隨內(nèi)部晶振速度的變化而變化,最多可能有-30%的變化。DTH91 通過(guò)下拉DATA 至低電平并進(jìn)入空閑模式,表示測(cè)量的結(jié)束??刂破髟谠俅斡|發(fā)SCK 時(shí)鐘前,必須等待這個(gè)“數(shù)據(jù)備妥”信號(hào)來(lái)讀出數(shù)據(jù)。檢測(cè)數(shù)據(jù)可以先被存儲(chǔ),這樣控制器可以繼續(xù)執(zhí)行其它任務(wù)在需要時(shí)再讀
70、出數(shù)據(jù)。接著傳輸2個(gè)字節(jié)的測(cè)量數(shù)據(jù)和1個(gè)字節(jié)的CRC 奇偶校驗(yàn)。uC 需要通過(guò)下拉DATA 為低電平,以確認(rèn)每個(gè)字節(jié)。所有的數(shù)據(jù)從MSB開(kāi)始,右值有效(例如:對(duì)于12bit 數(shù)據(jù),從第5個(gè)SCK 時(shí)鐘起算作MSB;而對(duì)于 8bit 數(shù)據(jù),首字節(jié)則無(wú)意義)。</p><p> 用CRC 數(shù)據(jù)的確認(rèn)位,表明通訊結(jié)束。如果不使用CRC-8 校驗(yàn),控制器可以在測(cè)量值LSB 后,通過(guò)保持確認(rèn)位ack 高電平,來(lái)中止通訊。
71、在測(cè)量和通訊結(jié)束后,DTH91自動(dòng)轉(zhuǎn)入休眠模式。DTH91的指令集如下表4-1所示。</p><p><b> 表4-1命令集</b></p><p> §4.1.4 濕度的測(cè)量時(shí)序</p><p> 圖4-3測(cè)量濕度的時(shí)序</p><p> §4.1.5 輸出轉(zhuǎn)換為物理量</p&g
72、t;<p> 由能隙材料PTAT (正比于絕對(duì)溫度) 研發(fā)的溫度傳感器具有極好的線性??捎萌缦鹿綄?shù)字輸出轉(zhuǎn)換為溫度值:</p><p> Temperature = d1 +d2 .SOT</p><p> d1和d2的值如下表4-2所示。</p><p> 表4-2 溫度轉(zhuǎn)換系數(shù)</p><p> 為了補(bǔ)償濕度傳
73、感器的非線性以獲取準(zhǔn)確數(shù)據(jù),建議使用如下公式1修正輸出數(shù)值:</p><p> RHlinear = c1 + c2 .SORH + c3 .SORH</p><p> c1,c2和c3值如下表4-3所示。</p><p> 表4-3 濕度轉(zhuǎn)換系數(shù)</p><p> 濕度傳感器相對(duì)濕度的溫度補(bǔ)償實(shí)際測(cè)量溫度與25℃ (~77℉)相差較
74、大時(shí),應(yīng)考慮濕度傳感器的溫度修正系數(shù):</p><p> RHtrue = (T°C -25).(t1 + t2 .SORH) + RHlinear</p><p> t1和t2的值如下表4-4所示。</p><p> 表4-4 溫度補(bǔ)償系數(shù)</p><p> RHtrue就是測(cè)量的濕度值。</p><p
75、> §4.1.6 DHT91的DC特性。</p><p> DHT91的DC特性如下表4-5所示。</p><p> 表4-5 DHT91的DC特性</p><p> §4.2 程序流程圖</p><p><b> 圖4-4程序流程圖</b></p><p>
76、; §4.3 程序的設(shè)計(jì)</p><p> §4.3.1 通訊復(fù)位子程序</p><p> void s_connectionreset(void)</p><p><b> {</b></p><p> unsigned char i;</p><p><
77、b> DATA=1;</b></p><p><b> SCK=0;</b></p><p> for(i=0;i<9;i++)</p><p><b> {</b></p><p><b> SCK=1;</b></p><
78、;p><b> SCK=0;</b></p><p><b> }</b></p><p><b> }</b></p><p> 通訊復(fù)位子程序用來(lái)復(fù)位串口的,當(dāng)傳輸中斷或者傳輸過(guò)程中發(fā)生了錯(cuò)誤時(shí)就需要從新對(duì)串口進(jìn)行復(fù)位操作。</p><p> §4
79、.3.2 傳輸啟動(dòng)子程序</p><p> void s_transstart(void)</p><p><b> {</b></p><p><b> DATA=1;</b></p><p><b> SCK=0;</b></p><p>
80、<b> _nop_();</b></p><p><b> SCK=1;</b></p><p><b> _nop_();</b></p><p><b> DATA=0;</b></p><p><b> _nop_();<
81、/b></p><p><b> SCK=0;</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><
82、p><b> SCK=1;</b></p><p><b> _nop_();</b></p><p><b> DATA=1;</b></p><p><b> _nop_();</b></p><p><b> SCK=0;&
83、lt;/b></p><p><b> }</b></p><p> 傳輸啟動(dòng)子程序是用來(lái)表示數(shù)據(jù)傳輸?shù)某跏蓟?。每次?duì)傳感器進(jìn)行寫(xiě)命令或者讀命令前先進(jìn)行以上程序方可。</p><p> §4.3.3 寫(xiě)一個(gè)字節(jié)子程序</p><p> char s_write_byte(unsigned cha
84、r value)</p><p><b> {</b></p><p> unsigned char i,error=0;</p><p> for(i=0x80;i>0;i/=2)</p><p><b> {</b></p><p> if(i&v
85、alue)</p><p><b> DATA=1;</b></p><p><b> else</b></p><p><b> DATA=0;</b></p><p><b> SCK=1;</b></p><p>&l
86、t;b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> SCK=0;</b></p><p><b> }</b>&l
87、t;/p><p><b> DATA=1;</b></p><p><b> SCK=1;</b></p><p> error=DATA;</p><p><b> SCK=0;</b></p><p> return error;</p&
88、gt;<p><b> }</b></p><p> 可以通過(guò)寫(xiě)一個(gè)字節(jié)子程序?qū)鞲衅鬟M(jìn)行寫(xiě)指令操作。若想讀出濕度值就向傳感器寫(xiě)入‘00000101’如想讀出溫度值就向傳感器寫(xiě)入‘00000011’。</p><p> §4.3.4 讀一個(gè)字節(jié)子程序</p><p> char s_read_byte(unsi
89、gned char ack)</p><p><b> {</b></p><p> unsigned char i,val=0;</p><p><b> DATA=1;</b></p><p> for(i=0x80;i>0;i/=2)</p><p>&l
90、t;b> {</b></p><p><b> SCK=1;</b></p><p><b> if(DATA) </b></p><p><b> {</b></p><p> val=(val|i);</p><p>&l
91、t;b> }</b></p><p><b> SCK=0;</b></p><p><b> }</b></p><p> DATA=!ack;</p><p><b> SCK=1;</b></p><p><b&g
92、t; _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> SCK=0;</b></p><p> DATA=1;
93、 </p><p> return val;</p><p><b> }</b></p><p> 通過(guò)讀一個(gè)字節(jié)子程序從傳感器讀出
94、溫度值或濕度值,把相應(yīng)的數(shù)據(jù)送到單片機(jī)的寄存器中。</p><p> §4.3.5 數(shù)據(jù)處理子程序</p><p> void calc_sth11(float *p_humidity,float *p_temperature)</p><p><b> {</b></p><p> const fl
95、oat C1=-4.0;</p><p> const float C2=0.0405;</p><p> const float C3=-0.0000028;</p><p> const float T1=0.01;</p><p> const float T2=0.00008;</p><p> fl
96、oat rh=*p_humidity;</p><p> float t=*p_temperature;</p><p> float rh_lin;</p><p> float rh_true;</p><p> float t_c;</p><p> t_c=t*0.01-40;</p>
97、<p> rh_lin=C3*rh*rh+C2*rh+C1;</p><p> rh_true=(t_c-25)*(T1+T2*rh)+rh_lin;</p><p> if(rh_true<0.1) rh_true=0.1;</p><p> *p_temperature=t_c;</p><p> *p_humi
98、dity=rh_true;</p><p><b> }</b></p><p> 把從傳感器讀出的二進(jìn)制數(shù)轉(zhuǎn)換成相應(yīng)的十進(jìn)制數(shù)。</p><p> §4.3.6 顯示子程序</p><p> void display(float humi,float temp)</p><p&g
99、t;<b> {</b></p><p> int humi1,temp1;</p><p> humi1=(humi*10); </p><p> temp1=(temp*10);</p><p> if(temp1<0)</p><p><b> {</b&g
100、t;</p><p> dispbuf[0]=10;</p><p> temp1=abs(temp1);</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>
101、;<p> dispbuf[0]=11;</p><p><b> }</b></p><p> if(cnt==0)</p><p><b> {</b></p><p> dispbuf[1]=temp1/100;</p><p> dispbu
102、f[2]=temp1/10%10;</p><p> dispbuf[3]=temp1%10;</p><p> dispbuf[4]=11;</p><p> dispbuf[5]=humi1/100;</p><p> dispbuf[6]=humi1/10%10;</p><p> dispbuf[7]
103、=humi1%10;</p><p> if((humi>humiset)||(temp>tempset))</p><p><b> {</b></p><p><b> P0_4=0;</b></p><p><b> }</b></p>
104、<p><b> else</b></p><p><b> {</b></p><p><b> P0_4='Z';</b></p><p><b> }</b></p><p><b> }</b&g
105、t;</p><p><b> else</b></p><p><b> {</b></p><p> if(cnt==1)</p><p><b> {</b></p><p> if(temph>9)</p><
106、p><b> {</b></p><p> dispbuf[0]=10;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> d
107、ispbuf[0]=11;</p><p><b> }</b></p><p> dispbuf[1]=temph%10;</p><p> dispbuf[2]=templ%10;</p><p> dispbuf[3]=11;</p><p> dispbuf[4]=11;<
108、/p><p> dispbuf[5]=11;</p><p> dispbuf[6]=11;</p><p> dispbuf[7]=11;</p><p><b> }</b></p><p><b> else</b></p><p><
109、;b> {</b></p><p> dispbuf[0]=11;</p><p> dispbuf[1]=11;</p><p> dispbuf[2]=11;</p><p> dispbuf[3]=11;</p><p> dispbuf[4]=11;</p><
110、p> dispbuf[5]=humih%10;</p><p> dispbuf[6]=humil%10;</p><p> dispbuf[7]=11;</p><p><b> }</b></p><p><b> }</b></p><p><b&
111、gt; }</b></p><p> 當(dāng)cnt=0時(shí)數(shù)碼管顯示實(shí)際的溫濕度值,當(dāng)cnt=1時(shí)數(shù)碼管顯示設(shè)定溫度值,當(dāng)cnt=2時(shí)數(shù)碼管顯示設(shè)定濕度值。</p><p> §4.3.7 按鍵子程序</p><p> void key()</p><p><b> {</b></p&g
112、t;<p> if(P0_0==0)</p><p><b> {</b></p><p> for(i=5;i>0;i--)</p><p> for(j=248;j>0;j--);</p><p> if(P0_0==0)</p><p><b>
113、 {</b></p><p><b> cnt++;</b></p><p><b> if(cnt>2)</b></p><p><b> {</b></p><p><b> cnt=0;</b></p>&l
114、t;p><b> }</b></p><p><b> }</b></p><p> while(P0_0==0);</p><p><b> }</b></p><p> if(cnt==1)</p><p><b> {&
115、lt;/b></p><p> if(P0_1==0)</p><p><b> {</b></p><p> for(i=5;i>0;i--)</p><p> for(j=248;j>0;j--);</p><p> if(P0_1==0)</p>&
116、lt;p><b> {</b></p><p><b> temph++;</b></p><p> if(temph==15)</p><p><b> {</b></p><p><b> temph=0;</b></p>
117、<p><b> }</b></p><p><b> }</b></p><p> while(P0_1==0);</p><p><b> }</b></p><p> if(P0_2==0)</p><p><b>
118、 {</b></p><p> for(i=5;i>0;i--)</p><p> for(j=248;j>0;j--);</p><p> if(P0_2==0)</p><p><b> {</b></p><p><b> templ++;<
119、;/b></p><p> if(templ==10)</p><p><b> {</b></p><p><b> templ=0;</b></p><p><b> }</b></p><p><b> }</b&g
120、t;</p><p> while(P0_2==0);</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p> if(cnt==2)</p><
121、;p><b> {</b></p><p> if(P0_1==0)</p><p><b> {</b></p><p> for(i=5;i>0;i--)</p><p> for(j=248;j>0;j--);</p><p> if(P0
122、_1==0)</p><p><b> {</b></p><p><b> humih++;</b></p><p> if(humih==10)</p><p><b> {</b></p><p><b> humih=0;&l
123、t;/b></p><p><b> }</b></p><p><b> }</b></p><p> while(P0_1==0);</p><p><b> }</b></p><p> if(P0_2==0)</p>
124、<p><b> {</b></p><p> for(i=5;i>0;i--)</p><p> for(j=248;j>0;j--);</p><p> if(P0_2==0)</p><p><b> {</b></p><p><
125、;b> humil++;</b></p><p> if(humil==10)</p><p><b> {</b></p><p><b> humil=0;</b></p><p><b> }</b></p><p>&
126、lt;b> }</b></p><p> while(P0_2==0);</p><p><b> }</b></p><p><b> }</b></p><p> if(temph<10)</p><p><b> {<
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字溫濕度計(jì)設(shè)計(jì)
- 數(shù)字溫濕度計(jì)--硬件設(shè)計(jì)畢業(yè)論文
- 多功能溫濕度計(jì)設(shè)計(jì)畢業(yè)論文
- 多功能溫濕度計(jì)設(shè)計(jì)畢業(yè)論文
- 畢業(yè)設(shè)計(jì)-- 單片機(jī)的溫濕度計(jì)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)技術(shù)的數(shù)字溫濕度計(jì)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--多功能空氣溫濕度計(jì)
- 電子溫濕度計(jì)選型
- jjg(吉) 41-2016 數(shù)字溫濕度計(jì)
- 畢業(yè)論文--基于單片機(jī)的室內(nèi)溫濕度計(jì)的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----數(shù)字式溫濕度儀的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)+基于msp430單片機(jī)的便攜式溫濕度計(jì)設(shè)計(jì)與開(kāi)發(fā)
- jjg(蘇)99-2010數(shù)字溫濕度計(jì)檢定規(guī)程
- 畢業(yè)設(shè)計(jì)(論文)倉(cāng)庫(kù)溫濕度監(jiān)測(cè)系統(tǒng)
- 溫度濕度計(jì)設(shè)計(jì)-畢業(yè)論文
- 基于CAN總線的溫濕度計(jì)的研制.pdf
- 倉(cāng)庫(kù)溫濕度的監(jiān)測(cè)系統(tǒng)-畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)(論文)-糧倉(cāng)溫濕度檢測(cè)系統(tǒng)的設(shè)計(jì)
- 溫度濕度計(jì)設(shè)計(jì)-畢業(yè)論文
- 糧倉(cāng)溫濕度檢測(cè)系統(tǒng)的畢業(yè)設(shè)計(jì)(論文)
評(píng)論
0/150
提交評(píng)論