嚴敏
摘 要: 利用溫度傳感器DS18B20,以AT89C51為主控制器設計了電子溫度計,并在Proteus仿真平臺中進行系統硬件設計。在Medwin3.0開發環境中采用C語言進行系統程序設計,調試直至成功。再使用全國技能大賽單片機項目的指定設備亞龍YL-236構建電子溫度計,進行實際驗證。結果表明,與傳統測溫方法相比,基于DS18B20的電子溫度計具有電路簡單、測量精度高、系統穩定、抗干擾能力強等優點。
關鍵詞: DS18B20; 單片機; LED數碼管; Proteus
中圖分類號: TP 212.11 文獻標志碼: A 文章編號: 1671-2153(2016)03-0083-03
0 引 言
在人們的日常生活中,溫度的測量和顯示隨處可見,如:冰箱、空調、熱水器等等,同時在工農業的許多領域也得到廣泛的應用[1-3]。傳統的測溫方法一般采用的是熱敏電阻,由于輸出的是模擬信號且信號微弱,因此需要先增益放大,再進行A/D轉換,電路比較復雜,測量精度不高、抗干擾能力弱[4-5]。本文利用溫度傳感器DS18B20,以AT89C51為主控制器設計了電子溫度計,在Proteus仿真平臺進行系統硬件設計。在Medwin3.0開發環境中采用C語言進行系統程序設計,調試直至成功,再使用全國技能大賽單片機項目的指定設備亞龍YL-236構建電子溫度計,進行實際驗證。
1 硬件設計
1.1 設計總體結構
本設計是以AT89C51為核心控制,采用DS18B20數字溫度傳感器進行溫度的測量。DS18B20輸出的是數字信號,單片機的任務是讀取數字溫度信號,再進行數值變換和量程變換后,送LED數碼管動態掃描顯示,當溫度超出設定溫度范圍時,LED燈點亮并發出報警。系統電路如圖1所示。
1.2 DS18B20溫度采集模塊
DS18B20是Dallas半導體公司生產的數字化溫度傳感器,具有抗干擾性高、價格便宜、體積小、精度高、布線簡單等特點,它采用一線總線方式,即一根數據線實現數據的雙向傳輸。DS18B20測量溫度范圍為-55~+125 ℃,測量分辨率為0.0625 ℃。用戶可以在程序中設定9~12位的分辨率和報警溫度,它們存儲在EEPROM中,掉電也不丟失。在電路設計時,將引腳VDD接5V電源,引腳GND接電源地,引腳DQ接4.7 kΩ的上拉電阻到單片機的I/O口即可。
2 軟件設計
軟件程序主要完成溫度的讀取、轉換及顯示功能,采用模塊化設計思路,包括系統初始化程序、LED數碼管顯示子程序、中斷服務子程序、延時子程序、溫度測量子程序等。程序流程如圖2所示。
2.1 DS18B20溫度測量子程序設計
由于DS18B20采用一線總線方式,因此,必須有嚴格的初始化時序、讀時序、寫時序,才能確保溫度信息傳輸的準確性和完整性。測量溫度時,單片機先初始化DS18B20,單片機作為主設備,DS18B20作為從設備。首先由單片機發出復位脈沖,即不低于480 μs的低電平,然后釋放總線做好接收準備,DS18B20檢測到總線的上升沿,等待15~60 μs,發出60~240 μs的應答脈沖,通知單片機已經接在總線上,如圖3所示。接著,單片機對DS18B20進行ROM操作命令和RAM操作命令,得到RAM中的2字節16位的溫度數據(低位在前,高位在后),再進行數值變換和量程變換,最終得到實際溫度。這16位的溫度數據中前5位是符號位,當為0時,表示測得的溫度高于零度,這時,16位溫度數據直接乘以0.0625得到實際溫度;當為1時,則表示溫度低于零度,須先將其取反加1再乘以0.0625。如:+25.0625 ℃的數字輸出是0191H,-25.0625℃的數字輸出是FE6FH。其部分代碼設計如下所示:
2.2 LED數碼管顯示子程序設計
在編程時,LED數碼管要顯示哪個數字或字符,只須寫入相應地字段碼,利用循環掃描的方式,分時輪流選通各個LED數碼管,當掃描速度達到一定程度時,由于人眼的視覺暫留效應就分辨不出來了,感覺是所有LED數碼管同時點亮。其部分代碼設計如下所示:
3 仿真實驗
硬件電路接好后,啟動MedWin3.0單片機集成開發環境,采用C51語言編寫系統程序,編譯并排除錯誤,直至無誤,生產.hex十六進制文件,加載到單片機芯片中,系統的仿真結果如圖4所示。由圖4可以看出,測得溫度為零上18.2 ℃。圖4中,數碼管第一位為符號位(零上溫度不顯示,零下溫度顯示-),第二、三、四位顯示測量溫度值,第五位顯示小數值,第六位顯示C(攝氏)。
再使用亞龍YL-236設備,溫度傳感器模塊的輸出(OUT)口接單片機的P3.0,LED數碼管的D0~D7,CS1,CS2,WR分別接單片機的P0,P2.7,P2.6,P3.6口,這里LED數碼管的顯示采用數據總線方式(圖略),結果數碼管同樣顯示18.2 ℃。
4 結束語
從以上仿真和實驗結果可以看出:以單片機AT89C51作為控制器,利用DS18B20數字傳感器測量溫度,可以實現-55~+125 ℃的測量,與傳統測溫方法相比,基于DS18B20的電子溫度計因電路設計簡單、測量精度高、成本低廉、系統穩定、抗干擾能力強等優點廣泛應用于工農業和日常生活中。
參考文獻:
[1] 盧進軍. 基于AT89C51 的數據采集系統設計[J]. 河南科學,2014(8):74-77.
[2] 王云飛. DS18B20溫度傳感器的應用設計 [J]. 電子世界,2014(12):255.
[3] 宋全,謝頌華,王超,等. 基于單片機和DS18B20的溫度采集和分析系統[J]. 電子科技,2015(9):100-103.
[4] 國慶鋒. 基于單片機溫度采集系統的開發與應用[J]. 黑龍江科技信息,2015(31):36.
[5] 石建平. 基于PROTEUS的單片機溫度采集系統設計與仿真[J]. 電子測試 ,2013(21):70-72.
Abstract: This paper use the temperature sensor DS18B20 to design the electronic thermometer with the AT89C51 as the controller. The hardware design of the system is carried out in the Proteus simulation platform. In the Medwin3.0 development environment using C language system program design, debug until successful. Then use the national skills competition SCM project specified equipment of YL-236 to verify. The electronic thermometer based on DS18B20 has such advantages as simple circuit、high measurement accuracy、system stability、strong anti?鄄interference ability, compared with the traditional method of measuring temperature.
Keywords: DS18B20; single?鄄chip microcomputer; LED digital tube; Proteus
(責任編輯:徐興華)