• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于AT89C51和DS18B20的最簡溫度測量系統

    基于AT89C51和DS18B20的最簡溫度測量系統

    作者: 時間:2015-04-30 來源:網絡 收藏

      l引 言

    本文引用地址:http://www.czjhyjcfj.com/article/273424.htm

      溫度的測量和控制在激光器、光纖光柵的使用及其他的工農業生產和科學研究中應用廣泛。溫度檢測的傳統方法是使用諸如熱電偶、熱電阻、半導體PN結之類的模擬溫度傳感器。信號經取樣、放大后通過模數轉換,再交自單片機處理。被測溫度信號從溫敏元件到單片機,經過眾多器件,易受干擾、不易控制且精度不高。因此,本文介紹一種新型的可編程溫度傳感器,他能代替模擬溫度傳感器和信號處理電路,直接與單片機溝通,完成溫度采集和數據處理。結合實現最簡溫度檢測系統,該系統結構簡單,抗干擾能力強,適合于惡劣環境下進行現場溫度測量,有廣泛的應用前景。

      2溫度測量系統硬件

      系統結構圖如圖1所示[1]。這里通過上拉電阻直接驅動LED顯示。以增加線路復雜度為代價,減少芯片數量。

      

     

      2.1數字溫度傳感器

      DS18B20是美國DALLAS公司推出的單總線數字測溫芯片。他具有獨特的單總線接口方式,僅需使用1個端口就能實現與單片機的雙向通訊。采用數字信號輸出提高了信號抗干擾能力和溫度測量精度。他的工作電壓使用范圍寬(3.0~5.5 V),可

      以采用外部供電方式,也可以采用寄生電源方式,即當總線DQ為高電平時,竊取信號能量給DS18B20供電。他還有負壓特性,電源極性接反時,DS18B20不會因接錯線而燒毀,但不能正常工作??梢酝ㄟ^編程實現9~12位的溫度轉換精度設置。由表1[2]可見,設定的分辨率越高,所需要的溫度數據轉換時間就越長,在實際應用中要將分辨率和轉換時間權衡考慮。

      DS18B20采用3腳TO-92封裝,形如三極管,同時也有8腳SOIC封裝,還有6腳的TSOC封裝。測溫范圍為-55~+125℃,在一10~85℃范圍內,精度為±0.5℃。每一個DS18B20芯片的ROM中存放了一個64位ID號:前8位是產品類型編號,隨后48位是該器件的自身序號,最后8位是前面56位的循環冗余校驗碼。又因其可以采用寄生電源方式供電。因此,一條總線上可以同時掛接多個DS18B20,實現多點測溫系統。另外用戶還可根據實際情況設定非易失性溫度報警上下限值TH和TL。DS18B20檢測到溫度值經轉換為數字量后,自動存入存儲器中,并與設定值TH或TL進行比較,當測量溫度超出給定范圍時,就輸出報警信號,并自動識別是高溫超限還是低溫超限。

      

     

      2.2 單片機

      單片機是ATMEL公司生產的高性能8位單片機,主要功能特性如下:

     ?、偌嫒軲CS-51指令系統;

      ②32個雙向I/O口,兩個16位可編程定時/計數器;

     ?、?個串行中斷,兩個外部中斷源;

     ?、芸芍苯域寗覮ED;

     ?、莸凸目臻e和掉電模式;

     ?、? kB可反復擦寫(>1 000次)FLASI ROM;

     ?、呷o態操作O~24 MHz;

     ?、?28×8 b內部RAM。

      該款芯片的超低功耗和良好的性能價格比使其非常適合嵌入式產品應用。

      3溫度測量系統軟件

      DS18B20簡單的硬件接口是以相對復雜的接口編程為代價。由于DS18B20通過單總線與單片機進行通訊,所以其通訊功能是分時完成的。他與單片機的接口協議是通過嚴格的時序來實現的,只有在特定的時隙,才能實現DS18B20數據的寫入和讀出。這里以AT89C51和一個DS18B20通訊為例,列出部分通訊的匯編語言代碼。

      

     

      3.1 初始化子程序(RESET)

      與DS18B20的所有通訊都是由一個單片機的復位脈沖和一個DS18B20的應答脈沖開始的。單片機先發一個復位脈沖,保持低電平時間最少480μs,最多不能超過960μs。然后,單片機釋放總線,等待DS18B20的應答脈沖。DS18B20在接受到復位脈沖后等待15~60μs才發出應答脈沖。應答脈沖能保持60~240μs。單片機從發送完復位脈沖到再次控制總線至少要等待480 μs。程序代碼如下:

      

     

      3.2 WRITE子程序

      寫時隙需要15~75 μs,且在2次獨立的寫時隙之間至少需要1μs的恢復時間。寫時隙起始于單片機拉低總線。以要把單片機A中的數據發給DS18B20為例,程序代碼如下:

      

     

      3.3 READ子程序

      讀時隙需15~60 μs,且在2次獨立的讀時隙之間至少需要1 μs的恢復時間。讀時隙起始于單片機拉低總線至少1 μs。DSl8820在讀時隙開始15μs后開始采樣總線電平。以單片機讀取2 B的數據為例。程序代碼如下:

      

     

      4 結 語

      用DS18820測量溫度,在其內部就能進行A/D轉換,輸出數字量與單片機直接通訊,無需外加A/D轉換器,轉換速度快,降低了成本,而且簡化了電路,提高了系統的集成度,使其滿足了最簡的要求。這個溫度傳感器稍加改良,配合半導體制冷器還能實現高精度的溫度控制功能。

    手機電池相關文章:手機電池修復


    51單片機相關文章:51單片機教程


    半導體制冷相關文章:半導體制冷原理


    脈沖點火器相關文章:脈沖點火器原理
    上拉電阻相關文章:上拉電阻原理
    激光器相關文章:激光器原理
    熱電偶相關文章:熱電偶原理


    關鍵詞: AT89C51 DS18B20

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 宜州市| 织金县| 沙田区| 福安市| 夏邑县| 太和县| 平南县| 徐水县| 陆良县| 阿拉善左旗| 新龙县| 桃园县| 乌鲁木齐市| 广灵县| 芦山县| 合肥市| 泸溪县| 凌源市| 玛曲县| 神农架林区| 鄄城县| 平凉市| 修文县| 大新县| 扶风县| 蒙山县| 苗栗县| 台北市| 尖扎县| 怀宁县| 抚顺市| 石屏县| 平原县| 梅州市| 孝昌县| 达日县| 六枝特区| 崇文区| 鄂伦春自治旗| 确山县| 海淀区|