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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于AT89S52溫度自動控制檢測系統(tǒng)設(shè)計

          基于AT89S52溫度自動控制檢測系統(tǒng)設(shè)計

          作者: 時間:2013-08-23 來源:網(wǎng)絡(luò) 收藏

          4.2 溫度檢測
          4.2.1 讀取溫度設(shè)計
          DS18B20可以從單總線獲取電源,當(dāng)信號線為高電平時,將能量貯存在內(nèi)部電容器中;當(dāng)單信號線為低電平時,將該電源斷開,直到信號線變?yōu)楦唠娖街匦陆由霞纳娫礊橹?。此外,還可外接5 V電源,給DS18B20供電。
          讀取溫度子程序的主要功能是讀出RAM中的9個字節(jié),在讀出時需進(jìn)行CRC校驗,校驗有錯時不進(jìn)行溫度數(shù)據(jù)的改寫。DS18B20的各個命令對時序的要求特別嚴(yán)格,所以必須按照所要求的時序才能達(dá)到預(yù)期的目的,同時,要注意讀進(jìn)來的是高低位在后,低位在前,共12位數(shù),小數(shù)4位,整數(shù)7位,還有一位符號位。
          讀取溫度的主程序如下:
          d.JPG
          4.2.2 溫度數(shù)據(jù)處理設(shè)計
          讀出溫度數(shù)據(jù)后,TempL的低四位為溫度的小數(shù)部分,可以精確到0.062 5℃,TempL的高四位和TempH的低四位為溫度的整數(shù)部分,Tem pH的高四位全部為1表示負(fù)數(shù),全為0表示正數(shù)。所以先將數(shù)據(jù)提取出來,分為3個部分:小數(shù)部分、整數(shù)部分和符號部分。小數(shù)部分進(jìn)行四舍五入處理:大干0.5℃的話,向個位進(jìn)1;小于0.5℃的時候,舍去不要。當(dāng)數(shù)據(jù)是個負(fù)數(shù)的時候,顯示之前要進(jìn)行數(shù)據(jù)轉(zhuǎn)換,將其整數(shù)部分取反加一。還因為DS18B20最低溫度只能為-55℃,所以可以將整數(shù)部分的最高位換成一個“-”,表示為負(fù)數(shù)。由于DS18B20轉(zhuǎn)換后的代碼并不是實際的溫度值,所以要進(jìn)行計算轉(zhuǎn)換。溫度高字節(jié)高5位是用來保存溫度的正負(fù),高字節(jié)低3位和低字節(jié)來保存溫度值。其中低字節(jié)的低4位來保存溫度的小數(shù)位。由于本程序采用的是0.062 5的精度,小數(shù)部分的值,可以用后四位代表的實際數(shù)值乘以0.062 5,得到真正的數(shù)值,數(shù)值可能帶幾個小數(shù)位,所以采取小數(shù)舍入,保留一位小數(shù)即可。也就說,本系統(tǒng)的溫度精確到了0.1度。
          溫度數(shù)據(jù)處理主程序如下:
          e.JPG

          5 結(jié)束語
          基于AT89S52的自動溫控系統(tǒng)能廣泛地應(yīng)用于工、農(nóng)業(yè)及人們的居家生活中。由于本系統(tǒng)采用AT89S52開發(fā),可以很方便地根據(jù)用戶的要求實現(xiàn)不同的專用的自動溫控系統(tǒng),具有廣闊的市場前景。

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

          上一頁 1 2 3 下一頁

          評論


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