<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于單片機(jī)的溫濕度采集系統(tǒng)的硬件設(shè)計

          基于單片機(jī)的溫濕度采集系統(tǒng)的硬件設(shè)計

          作者: 時間:2011-07-24 來源:網(wǎng)絡(luò) 收藏

          摘要: 采用AT89C2051 為核心配置,以傳感器SHT75、數(shù)碼管顯示、計算機(jī)監(jiān)控等部件,通過與智能傳感器相連,并存儲智能傳感器的測量數(shù)據(jù),并通過RS485 總線來實現(xiàn)PC 上位機(jī)與控制模塊半雙工串行通信。微控制器AT89C2051 通過I2C 總線控制傳感器的測量和數(shù)據(jù)回傳,每次將到的5 組數(shù)據(jù)經(jīng)過計算,修正及補(bǔ)償后分別傳送到PC 端存儲和顯示模塊進(jìn)行實時顯示。經(jīng)過實驗測試得出結(jié)論:溫度測量精度為±0.3 ℃,濕度測量精度為±2%RH,各項指標(biāo)均達(dá)到了課題的要求。

          本文引用地址:http://www.ex-cimer.com/article/172608.htm

            利用AT89C2051 單片機(jī)強(qiáng)大的功能,同時結(jié)合智能傳感器SHT75 測量有快速和使用簡便等特點(diǎn),了一個來對溫濕度進(jìn)行實時監(jiān)控。通過對實際環(huán)境的溫濕度測量, 證明了該電路布局簡單合理,體積小,功能齊全,精度高,成本低,性價比相當(dāng)高,是一款可以普及化的高精度溫濕度參數(shù)檢測儀。

            1 溫濕度采集系統(tǒng)的設(shè)計

            1.1 系統(tǒng)總體設(shè)計方案

            為了實現(xiàn)課題對監(jiān)控機(jī)構(gòu)的穩(wěn)定性好、精度高、實用性強(qiáng)的要求,比較眾多溫濕度測量方案,系統(tǒng)采用智能傳感器SHT75 和AT89C2051 單片機(jī)構(gòu)成, 通過SHT75 對各環(huán)境內(nèi)的溫度、濕度參數(shù)實時檢測,經(jīng)傳感器芯片內(nèi)A/D 轉(zhuǎn)換器轉(zhuǎn)換成對應(yīng)的二進(jìn)制值存儲于芯片的RAM 中, 單片機(jī)通過發(fā)送讀取溫濕度傳感器溫濕度命令碼,溫濕度傳感器就返回對應(yīng)的參數(shù)值, 本系統(tǒng)帶RS485 通訊接口可連接監(jiān)控主機(jī)或PC,通過監(jiān)控主機(jī)或PC 來實時查看當(dāng)前溫度和濕度值,并可在監(jiān)控主機(jī)或PC 上設(shè)置報警參數(shù)以便實時監(jiān)控環(huán)境溫度和濕度值。系統(tǒng)功能模塊框圖如圖1 所示。

          圖1 系統(tǒng)功能模塊圖

          圖1 系統(tǒng)功能模塊圖

            1.2 芯片選擇

            1.2.1 溫濕度傳感器

            鑒于測量環(huán)境特殊要求,溫濕度檢測模塊不可能做得很大,而且系統(tǒng)要求響應(yīng)靈敏,測量精度要高,溫度小于等于±0.3 ℃,濕度小于等于±1.8%,穩(wěn)定性能良好,因此采用了瑞士生產(chǎn)的SHT75 溫濕度傳感器。

            1.2.2 微處理器

            該芯片主要是控制溫濕度采集,數(shù)據(jù)處理,實時溫濕度顯示及通信,那么對微控制器的端口需求較少,而且從測量系統(tǒng)對本模塊體積限定等諸多因數(shù)來考慮, 系統(tǒng)選用ATMEL 公司推出的AT89C2051, 它是目前比較主流的單片機(jī)芯片,20 個引腳,其中包括15 個I/O 口,復(fù)位和外部時鐘驅(qū)動端, 一個全雙工串行通信端口,5 個中斷源等,128 B 的內(nèi)部RAM,2 kB 的內(nèi)部ROM 空間。

            1.2.3 隔離芯片

            鑒于長距離驅(qū)動數(shù)碼管顯示實時采集的溫濕度數(shù)值,為了使顯示的穩(wěn)定性和可靠度增強(qiáng),采用了兩片6N137 光電隔離芯片來驅(qū)動串行輸入并行輸出7 片74LS164 芯片, 其中6片控制6 個數(shù)碼管顯示溫濕度,1 片用于控制4 個LED 燈顯示系統(tǒng)狀態(tài)。

            1.2.4 看門狗芯片

            為了監(jiān)控檢測模塊工作正常,看門狗電路和芯片是單片機(jī)開發(fā)系統(tǒng)必不可少的部分, 采用的X25054 看門狗芯片主要功能有監(jiān)控電源,防止運(yùn)行程序跑飛,擴(kuò)充控制芯片存儲空間等。

            1.2.5 通信接口

            數(shù)據(jù)采集包括單片機(jī)對溫濕度傳感器數(shù)據(jù)采集,還包括PC 對單片機(jī)數(shù)據(jù)采集和處理。系統(tǒng)采用的是RS485 接口,它是一種半雙工串行通信接口, 采用平衡差分的傳輸模式,比RS232 接口提高了傳輸?shù)乃俾屎驮黾恿藗鬏斁嚯x,目前廣泛運(yùn)用于數(shù)據(jù)采集通信系統(tǒng)。

          1.3 系統(tǒng)原理圖的繪制

            本系統(tǒng)采用AT89C2051 單片機(jī)作為控制核心,系統(tǒng)主要包括溫濕度傳感器、CPU、通訊接口等部件。電路圖的繪制采用Protel DXP 2004 開發(fā)工具,在設(shè)計PCB 板的時候,應(yīng)特別注意電磁兼容性設(shè)計、地線設(shè)計、去耦電容配置等幾個方面。

            電磁兼容性設(shè)計的目的是使電子設(shè)備既能抑制各種外來的干擾, 使電子設(shè)備在特定的電磁環(huán)境中能夠正常工作,同時又能減少電子設(shè)備本身對其他電子設(shè)備的電磁干擾。在雙面PCB 板中,上下兩層信號線的走線方向要盡量相互垂直或斜交叉,避免平行走線,以減少寄生耦合的產(chǎn)生。

            在電子設(shè)備中,接地是控制干擾的重要方法。地線設(shè)計中應(yīng)根據(jù)電路特性,正確選擇單點(diǎn)接地與多點(diǎn)接地,對高頻電路要采用多點(diǎn)接地,并盡量加粗接地線,接地線的寬度一般為普通走線的2 倍,而且要將接地線構(gòu)成閉合環(huán)路。

            在直流電源回路中,負(fù)載的變化會引起電源噪聲。因為在數(shù)字電路中, 當(dāng)電路從一個狀態(tài)轉(zhuǎn)換為另一種狀態(tài)時,就會在電源線上產(chǎn)生一個很大的尖峰電流,形成瞬變的噪聲電壓。合理配置去耦電容可以抑制因負(fù)載變化而產(chǎn)生的噪聲,提高PCB 板的可靠性。

            溫濕度采集模塊PCB 板制作包括主控系統(tǒng)板制作和實時數(shù)據(jù)顯示板制作,最終設(shè)計的PCB 圖如圖2 和圖3 所示。

          圖2 溫濕度采集模塊

          圖2 溫濕度采集模塊

          圖3 實時數(shù)據(jù)顯示模塊

          圖3 實時數(shù)據(jù)顯示模塊

            1.4 系統(tǒng)實物圖

            最終參數(shù)采集及實時顯示模塊實物圖如圖4 所示。

          圖4 參數(shù)采集及實時顯示模塊原理圖

          圖4 參數(shù)采集及實時顯示模塊原理圖


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();