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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于AT89C2051單片機(jī)的大氣溫度采集和記錄系統(tǒng)

          基于AT89C2051單片機(jī)的大氣溫度采集和記錄系統(tǒng)

          作者: 時(shí)間:2011-01-14 來(lái)源:網(wǎng)絡(luò) 收藏


          DS2433是1-W ire存儲(chǔ)器, 容量為4k- B it ,可存儲(chǔ)256個(gè)溫度數(shù)據(jù)。其采用EEPROM 工藝, 即使掉電, 存儲(chǔ)的數(shù)據(jù)也不會(huì)丟失。DS2433帶有一個(gè)由工廠刻度的注冊(cè)碼, 其中包括: 48位唯一序列碼、8位CRC 校驗(yàn)碼和8位家族碼( 23h) , 還帶有4096位用戶可編程EEPROM。讀寫(xiě)DS2433所需的電源完全取自于1-W ire通訊線。存儲(chǔ)器分為16頁(yè), 每頁(yè)256位。暫存器作為一個(gè)附加頁(yè)面, 在寫(xiě)存儲(chǔ)器時(shí)可用作緩沖器使用。數(shù)據(jù)先被寫(xiě)入一個(gè)暫存器中,在此對(duì)其進(jìn)行校驗(yàn)。隨后采用復(fù)制暫存器命令將數(shù)據(jù)傳送到存儲(chǔ)器中。這一過(guò)程可保證修改存儲(chǔ)器內(nèi)容時(shí)數(shù)據(jù)的完整性。PR- 35以及SO IC封裝提供了一種緊湊的結(jié)構(gòu), 允許采用標(biāo)準(zhǔn)安裝設(shè)備在印刷電路板上安裝和連接器件。

          由于1-W ire通訊的獨(dú)特特點(diǎn), 即它們內(nèi)部都有一個(gè)64位注冊(cè)碼為每個(gè)器件提供了一個(gè)保證唯一的標(biāo)識(shí), 確保每個(gè)器件的絕對(duì)可追溯性, 當(dāng)有多個(gè)1-W ire器件同時(shí)掛接在總線上并聯(lián)形成本地網(wǎng)絡(luò)時(shí), 注冊(cè)碼可作為器件的節(jié)點(diǎn)地址使用。數(shù)據(jù)按照1-W ire協(xié)議串行傳送, 僅需一條數(shù)據(jù)線和一條地線。因此DS2433可與DS18B20掛接在同一條數(shù)據(jù)線上, 通過(guò)它們內(nèi)部的識(shí)別碼進(jìn)行區(qū)分, 這樣大大節(jié)省了數(shù)據(jù)連接線。

          整套系統(tǒng)最大的優(yōu)點(diǎn)是所使用的器件非常小巧, 這樣有兩點(diǎn)好處:

          ( 1)系統(tǒng)體積小, 可放置于狹小空間中并對(duì)該空間溫度進(jìn)行測(cè)量。

          ( 2)系統(tǒng)功耗低, 可采用電池供電, 因此可放置于野外環(huán)境進(jìn)行溫度測(cè)量。測(cè)量結(jié)束后, 只需將存貯器取回并通過(guò)計(jì)算機(jī)接口讀取記錄即可。

          3 器件選擇

          3. 1 小型化

          同AT89C52單片機(jī)相比, AT89C2051因?yàn)槿サ袅薖0和P2口, 體積大大縮小。DS1306為串行工作方式的時(shí)鐘芯片, 較并行方式節(jié)省了大量I/O接口。

          溫度DS18B20輸出為數(shù)字量, 無(wú)需進(jìn)行A /D轉(zhuǎn)換, 就可由單片機(jī)處理。

          3. 2 可擴(kuò)展性

          1-W ire單總線是Max im 全資子公司Dallas的一項(xiàng)專有技術(shù), 與目前多數(shù)標(biāo)準(zhǔn)串行數(shù)據(jù)通訊方式,如SPI/ I2C /M ICROW IRE 不同, 它采用單根信號(hào)線,既傳輸時(shí)鐘, 又傳輸數(shù)據(jù), 而且數(shù)據(jù)傳輸是雙向的,它具有節(jié)省I/O口線資源、結(jié)構(gòu)簡(jiǎn)單、成本低廉、便于總線擴(kuò)展和維護(hù)等特點(diǎn)。

          因此, 根據(jù)實(shí)際需要, 1- W ire總線上可掛接多個(gè)溫度和存儲(chǔ)器, 能對(duì)多個(gè)目標(biāo)進(jìn)行測(cè)量并記錄更多數(shù)據(jù)。

          4 通訊功能

          MAX232是由德州儀器公司( TI)推出的一款兼容RS232標(biāo)準(zhǔn)的芯片。由于電腦串口RS232 電平是- 10V ~ 10V, 而一般的單片機(jī)應(yīng)用系統(tǒng)的信號(hào)電壓是TTL電平0V ~ 5V, MAX232 就是用來(lái)進(jìn)行電平轉(zhuǎn)換的, 該器件包含2個(gè)驅(qū)動(dòng)器、2個(gè)接收器和一個(gè)電壓發(fā)生器電路提供TIA /E IA - 232- F 電平。

          該器件符合T IA /E IA - 232- F標(biāo)準(zhǔn), 每一個(gè)接收器將T IA /E IA - 232- F電平轉(zhuǎn)換成5- V TTL /CMOS電平。每一個(gè)發(fā)送器將TTL /CMOS 電平轉(zhuǎn)換成T IA /E IA - 232- F電平。

          MAX232提供了單片機(jī)與PC 機(jī)的RS232通訊接口。上位機(jī)軟件可用V isua l B asic 6. 0 高級(jí)語(yǔ)言編寫(xiě)。VB6. 0提供了串口通訊控件, 應(yīng)用這個(gè)控件,PC 機(jī)可以很方便地與單片機(jī)通過(guò)串口進(jìn)行通訊。

          5 應(yīng)用實(shí)例

          圖2給出了軟件操作界面和數(shù)據(jù)處理情況。某天的溫度變化情況通過(guò)列表和曲線圖兩種方法給出。由此可以掌握這一天的溫度變化規(guī)律。
          溫度數(shù)據(jù)處理界面圖
          溫度數(shù)據(jù)處理界面圖
          圖2 溫度數(shù)據(jù)處理界面圖。

          6 結(jié)束語(yǔ)

          從測(cè)量范圍、精度和測(cè)量實(shí)例上看, 該系統(tǒng)可以用于對(duì)包括大氣溫度在內(nèi)的多種環(huán)境溫度進(jìn)行測(cè)量和記錄。

          未來(lái)的工作設(shè)想:

          ( 1)數(shù)據(jù)存儲(chǔ)方面: 單個(gè)DS2433只能存儲(chǔ)256個(gè)溫度數(shù)據(jù), 可以換為存儲(chǔ)容量更大的存儲(chǔ)器或并行掛接多個(gè)DS2433, 以一次性記錄更多的數(shù)據(jù), 延長(zhǎng)測(cè)量周期;( 2)數(shù)據(jù)讀取方面: 目前采用的將存儲(chǔ)器取下讀取的方式還是顯得有些繁瑣, 可以設(shè)計(jì)手持式無(wú)線(如RF、紅外、藍(lán)牙等)接收裝置來(lái)獲取存儲(chǔ)器的數(shù)據(jù)。如果是對(duì)野外環(huán)境進(jìn)行測(cè)量, 可以利用移動(dòng)通訊網(wǎng)絡(luò)(如目前新興的3G 技術(shù)) 進(jìn)行數(shù)據(jù)的傳輸, 這樣就省去了科研人員的勞頓之苦。

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

          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: 傳感器 采集

          評(píng)論


          相關(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); })();