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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于51單片機(jī)溫度采集及無(wú)線發(fā)送

          基于51單片機(jī)溫度采集及無(wú)線發(fā)送

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

          0 引言
          隨著數(shù)字化腳步的加快,越來(lái)越多的數(shù)字化產(chǎn)品取代了原有的機(jī)械式儀表,從而大大提高了數(shù)據(jù)的準(zhǔn)確率。然而,多數(shù)情況下,溫度的采集過(guò)程只在現(xiàn)場(chǎng)實(shí)時(shí)顯示,在增加了工作量的同時(shí),也可能會(huì)造成很多不便,如進(jìn)入危險(xiǎn)區(qū)域。因此,將無(wú)線網(wǎng)絡(luò)應(yīng)用在工業(yè)生產(chǎn)中,不僅能大大提高工作效率,同時(shí)也在一定程度上降低了勞動(dòng)強(qiáng)度。
          本設(shè)計(jì)基于以上兩點(diǎn),將工業(yè)生產(chǎn)中常用到的溫度進(jìn)行數(shù)字化,并通過(guò)無(wú)線模塊將數(shù)據(jù)發(fā)送出去,在接收方利用無(wú)線接收設(shè)備接收實(shí)時(shí)的數(shù)據(jù),從而大大降低勞動(dòng)強(qiáng)度。

          1 系統(tǒng)組成
          系統(tǒng)由單片機(jī)、溫度傳感器、串口通信模塊和無(wú)線傳輸模塊等幾部分組成。測(cè)溫系統(tǒng)將測(cè)得的溫度通過(guò)單片機(jī)在數(shù)碼管上實(shí)時(shí)顯示,同時(shí),通過(guò)串口通信部分和無(wú)線模塊將數(shù)據(jù)發(fā)送給上位機(jī)。系統(tǒng)結(jié)構(gòu)如圖1所示。

          a.JPG
          該設(shè)計(jì)以Atmel公司生產(chǎn)的單片機(jī)AT89C51為核心,以數(shù)字溫度傳感器作為,以作為無(wú)線數(shù)據(jù)傳輸,從而構(gòu)成整體系統(tǒng)。
          1.1 單片機(jī)系統(tǒng)
          系統(tǒng)采用AT89C51作為核心控制,配備4位共陰極數(shù)碼管顯示電路。AT89C51是Atmel公司推出的一種低功耗、高性能CMOS 8位微處理器,具有8 KB系統(tǒng)可編程FLASH存儲(chǔ)器;256 B RAM;32個(gè)I/O引腳,分為4個(gè)8位控制端口;看門狗定時(shí)器;2個(gè)數(shù)據(jù)指針;3個(gè)16位定時(shí)器/計(jì)數(shù)器;兩級(jí)中斷優(yōu)先等級(jí);可編程全雙工串行傳輸端口;片內(nèi)晶振及時(shí)鐘電路;8個(gè)中斷源。其性能完全能夠滿足系統(tǒng)要求。數(shù)碼顯示采用Ytt-410391K四位7段8線數(shù)碼管,作為溫度顯示部分,并用最末一位顯示小數(shù)。
          1.2 數(shù)字溫度傳感器
          是美國(guó)Dallas公司生產(chǎn)的一款可編程1-Wire數(shù)字溫度計(jì)。具有精度高,全數(shù)字化,連線少等諸多優(yōu)點(diǎn)。其可直接將采集到的溫度轉(zhuǎn)換成數(shù)字信號(hào),通過(guò)單條數(shù)據(jù)線串行發(fā)送出去,只要嚴(yán)格遵循規(guī)定時(shí)序邏輯和脈沖間隔,就能舍去同步時(shí)鐘信號(hào)線,做到通信期間引腳最少化,達(dá)到目的。
          1.2.1 內(nèi)部結(jié)構(gòu)及外部管腳
          數(shù)字式溫度傳感器DS18B20的內(nèi)部結(jié)構(gòu)如圖2所示,其主要由四部分組成:64位ROM和單總線接口、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。

          b.JPG
          DS18B20 64位閃存ROM的開(kāi)始8位是產(chǎn)品類型的編號(hào),接著的48位為每個(gè)器件的惟一序號(hào),最后8位是CRC校驗(yàn)碼。用于存儲(chǔ)用戶設(shè)定溫度上下限值的非易失性溫度報(bào)警觸發(fā)器TH和TL,使用時(shí)可通過(guò)軟件寫入、設(shè)定報(bào)警上下限值。DS18B20內(nèi)部配有一個(gè)電可擦除的E2PROM,用于存儲(chǔ)TH、TL值,數(shù)據(jù)先寫入內(nèi)部的高速暫存RAM,經(jīng)校驗(yàn)后在傳給E2PROM。RAM中的第5個(gè)字節(jié)為配置寄存器,用于確定溫度值的數(shù)字轉(zhuǎn)化分辨率。工作時(shí)按此寄存器中的分辨率將溫度轉(zhuǎn)化為相應(yīng)精度的溫度值。
          DS18B20具有三引腳To-92小體積封裝形式,如圖3所示;溫度測(cè)量范圍為-55~+125℃,其工作電源既可在遠(yuǎn)端引入,也可使用寄生電源方式產(chǎn)生;CPU只需一根端口線就能與諸多DS18B20通信,由于其占用微處理器的端口較少,因此可節(jié)省大量的引線和邏輯電路。

          c.JPG
          DSB18B20各引腳介紹如下:GND為地;DQ為數(shù)據(jù)輸入/輸出端;VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地);NC為SOIC封裝的,NC為空引腳。
          1.2.2 工作原理
          DS18B20內(nèi)部的低溫度系數(shù)振蕩器能產(chǎn)生穩(wěn)定的頻率信號(hào)f0,而高溫度系數(shù)振蕩器則將被測(cè)溫度轉(zhuǎn)化成頻率信號(hào)f。當(dāng)計(jì)數(shù)器打開(kāi)時(shí),DS 18B20則對(duì)f0計(jì)數(shù),計(jì)數(shù)器開(kāi)通時(shí)間由高溫度系數(shù)振蕩器決定。芯片內(nèi)部還有斜率累加器,可對(duì)頻率的非線性給予補(bǔ)償。其測(cè)量的結(jié)果將暫存在溫度寄存器中,可使單片機(jī)方便的將溫度讀出。
          DS18B20的核心是一個(gè)直接的數(shù)字化溫度傳感器,可將溫度值按9 b,10 b,11 b,12 b分辨率進(jìn)行量化,默認(rèn)分辨率為12 b,對(duì)應(yīng)的溫度最小增量分別為0.5℃,0.25℃,0.125℃和0.062 5℃。當(dāng)主機(jī)向DS18B20發(fā)出溫度轉(zhuǎn)化命令后,開(kāi)始溫度轉(zhuǎn)換,檢測(cè)的溫度結(jié)果將存放在兩個(gè)字節(jié)中,最低位LSB在前,最高位MSB為符號(hào)位。其數(shù)據(jù)格式如下:

          d.JPG
          其中,高位字節(jié)MSB的高5位為溫度的符號(hào)位,當(dāng)溫度為正時(shí),該5位為0,溫度為負(fù)時(shí),統(tǒng)一為1。高位字節(jié)MSB的低3位和低位字節(jié)LSB的高4位共同組成溫度值的整數(shù)部分,低位字節(jié)LSB的低4位為小數(shù)位,采用二進(jìn)制補(bǔ)碼方式存儲(chǔ)溫度數(shù)據(jù)。例如,當(dāng)溫度為+125℃時(shí),輸出溫度為07D0h;當(dāng)溫度為+85℃時(shí),輸出溫度為0550h;當(dāng)溫度為+25.062 5℃時(shí),輸出溫度為0191h;當(dāng)溫度為-10.125℃時(shí),輸出溫度為FF5Eh;當(dāng)溫度為-55℃時(shí),輸出溫度為FC90h。


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

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