嚴(yán)敏
摘 要: 利用溫度傳感器DS18B20,以AT89C51為主控制器設(shè)計(jì)了電子溫度計(jì),并在Proteus仿真平臺(tái)中進(jìn)行系統(tǒng)硬件設(shè)計(jì)。在Medwin3.0開(kāi)發(fā)環(huán)境中采用C語(yǔ)言進(jìn)行系統(tǒng)程序設(shè)計(jì),調(diào)試直至成功。再使用全國(guó)技能大賽單片機(jī)項(xiàng)目的指定設(shè)備亞龍YL-236構(gòu)建電子溫度計(jì),進(jìn)行實(shí)際驗(yàn)證。結(jié)果表明,與傳統(tǒng)測(cè)溫方法相比,基于DS18B20的電子溫度計(jì)具有電路簡(jiǎn)單、測(cè)量精度高、系統(tǒng)穩(wěn)定、抗干擾能力強(qiáng)等優(yōu)點(diǎn)。
關(guān)鍵詞: DS18B20; 單片機(jī); LED數(shù)碼管; Proteus
中圖分類號(hào): TP 212.11 文獻(xiàn)標(biāo)志碼: A 文章編號(hào): 1671-2153(2016)03-0083-03
0 引 言
在人們的日常生活中,溫度的測(cè)量和顯示隨處可見(jiàn),如:冰箱、空調(diào)、熱水器等等,同時(shí)在工農(nóng)業(yè)的許多領(lǐng)域也得到廣泛的應(yīng)用[1-3]。傳統(tǒng)的測(cè)溫方法一般采用的是熱敏電阻,由于輸出的是模擬信號(hào)且信號(hào)微弱,因此需要先增益放大,再進(jìn)行A/D轉(zhuǎn)換,電路比較復(fù)雜,測(cè)量精度不高、抗干擾能力弱[4-5]。本文利用溫度傳感器DS18B20,以AT89C51為主控制器設(shè)計(jì)了電子溫度計(jì),在Proteus仿真平臺(tái)進(jìn)行系統(tǒng)硬件設(shè)計(jì)。在Medwin3.0開(kāi)發(fā)環(huán)境中采用C語(yǔ)言進(jìn)行系統(tǒng)程序設(shè)計(jì),調(diào)試直至成功,再使用全國(guó)技能大賽單片機(jī)項(xiàng)目的指定設(shè)備亞龍YL-236構(gòu)建電子溫度計(jì),進(jìn)行實(shí)際驗(yàn)證。
1 硬件設(shè)計(jì)
1.1 設(shè)計(jì)總體結(jié)構(gòu)
本設(shè)計(jì)是以AT89C51為核心控制,采用DS18B20數(shù)字溫度傳感器進(jìn)行溫度的測(cè)量。DS18B20輸出的是數(shù)字信號(hào),單片機(jī)的任務(wù)是讀取數(shù)字溫度信號(hào),再進(jìn)行數(shù)值變換和量程變換后,送LED數(shù)碼管動(dòng)態(tài)掃描顯示,當(dāng)溫度超出設(shè)定溫度范圍時(shí),LED燈點(diǎn)亮并發(fā)出報(bào)警。系統(tǒng)電路如圖1所示。
1.2 DS18B20溫度采集模塊
DS18B20是Dallas半導(dǎo)體公司生產(chǎn)的數(shù)字化溫度傳感器,具有抗干擾性高、價(jià)格便宜、體積小、精度高、布線簡(jiǎn)單等特點(diǎn),它采用一線總線方式,即一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸。DS18B20測(cè)量溫度范圍為-55~+125 ℃,測(cè)量分辨率為0.0625 ℃。用戶可以在程序中設(shè)定9~12位的分辨率和報(bào)警溫度,它們存儲(chǔ)在EEPROM中,掉電也不丟失。在電路設(shè)計(jì)時(shí),將引腳VDD接5V電源,引腳GND接電源地,引腳DQ接4.7 kΩ的上拉電阻到單片機(jī)的I/O口即可。
2 軟件設(shè)計(jì)
軟件程序主要完成溫度的讀取、轉(zhuǎn)換及顯示功能,采用模塊化設(shè)計(jì)思路,包括系統(tǒng)初始化程序、LED數(shù)碼管顯示子程序、中斷服務(wù)子程序、延時(shí)子程序、溫度測(cè)量子程序等。程序流程如圖2所示。
2.1 DS18B20溫度測(cè)量子程序設(shè)計(jì)
由于DS18B20采用一線總線方式,因此,必須有嚴(yán)格的初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序,才能確保溫度信息傳輸?shù)臏?zhǔn)確性和完整性。測(cè)量溫度時(shí),單片機(jī)先初始化DS18B20,單片機(jī)作為主設(shè)備,DS18B20作為從設(shè)備。首先由單片機(jī)發(fā)出復(fù)位脈沖,即不低于480 μs的低電平,然后釋放總線做好接收準(zhǔn)備,DS18B20檢測(cè)到總線的上升沿,等待15~60 μs,發(fā)出60~240 μs的應(yīng)答脈沖,通知單片機(jī)已經(jīng)接在總線上,如圖3所示。接著,單片機(jī)對(duì)DS18B20進(jìn)行ROM操作命令和RAM操作命令,得到RAM中的2字節(jié)16位的溫度數(shù)據(jù)(低位在前,高位在后),再進(jìn)行數(shù)值變換和量程變換,最終得到實(shí)際溫度。這16位的溫度數(shù)據(jù)中前5位是符號(hào)位,當(dāng)為0時(shí),表示測(cè)得的溫度高于零度,這時(shí),16位溫度數(shù)據(jù)直接乘以0.0625得到實(shí)際溫度;當(dāng)為1時(shí),則表示溫度低于零度,須先將其取反加1再乘以0.0625。如:+25.0625 ℃的數(shù)字輸出是0191H,-25.0625℃的數(shù)字輸出是FE6FH。其部分代碼設(shè)計(jì)如下所示:
2.2 LED數(shù)碼管顯示子程序設(shè)計(jì)
在編程時(shí),LED數(shù)碼管要顯示哪個(gè)數(shù)字或字符,只須寫(xiě)入相應(yīng)地字段碼,利用循環(huán)掃描的方式,分時(shí)輪流選通各個(gè)LED數(shù)碼管,當(dāng)掃描速度達(dá)到一定程度時(shí),由于人眼的視覺(jué)暫留效應(yīng)就分辨不出來(lái)了,感覺(jué)是所有LED數(shù)碼管同時(shí)點(diǎn)亮。其部分代碼設(shè)計(jì)如下所示:
3 仿真實(shí)驗(yàn)
硬件電路接好后,啟動(dòng)MedWin3.0單片機(jī)集成開(kāi)發(fā)環(huán)境,采用C51語(yǔ)言編寫(xiě)系統(tǒng)程序,編譯并排除錯(cuò)誤,直至無(wú)誤,生產(chǎn).hex十六進(jìn)制文件,加載到單片機(jī)芯片中,系統(tǒng)的仿真結(jié)果如圖4所示。由圖4可以看出,測(cè)得溫度為零上18.2 ℃。圖4中,數(shù)碼管第一位為符號(hào)位(零上溫度不顯示,零下溫度顯示-),第二、三、四位顯示測(cè)量溫度值,第五位顯示小數(shù)值,第六位顯示C(攝氏)。
再使用亞龍YL-236設(shè)備,溫度傳感器模塊的輸出(OUT)口接單片機(jī)的P3.0,LED數(shù)碼管的D0~D7,CS1,CS2,WR分別接單片機(jī)的P0,P2.7,P2.6,P3.6口,這里L(fēng)ED數(shù)碼管的顯示采用數(shù)據(jù)總線方式(圖略),結(jié)果數(shù)碼管同樣顯示18.2 ℃。
4 結(jié)束語(yǔ)
從以上仿真和實(shí)驗(yàn)結(jié)果可以看出:以單片機(jī)AT89C51作為控制器,利用DS18B20數(shù)字傳感器測(cè)量溫度,可以實(shí)現(xiàn)-55~+125 ℃的測(cè)量,與傳統(tǒng)測(cè)溫方法相比,基于DS18B20的電子溫度計(jì)因電路設(shè)計(jì)簡(jiǎn)單、測(cè)量精度高、成本低廉、系統(tǒng)穩(wěn)定、抗干擾能力強(qiáng)等優(yōu)點(diǎn)廣泛應(yīng)用于工農(nóng)業(yè)和日常生活中。
參考文獻(xiàn):
[1] 盧進(jìn)軍. 基于AT89C51 的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J]. 河南科學(xué),2014(8):74-77.
[2] 王云飛. DS18B20溫度傳感器的應(yīng)用設(shè)計(jì) [J]. 電子世界,2014(12):255.
[3] 宋全,謝頌華,王超,等. 基于單片機(jī)和DS18B20的溫度采集和分析系統(tǒng)[J]. 電子科技,2015(9):100-103.
[4] 國(guó)慶鋒. 基于單片機(jī)溫度采集系統(tǒng)的開(kāi)發(fā)與應(yīng)用[J]. 黑龍江科技信息,2015(31):36.
[5] 石建平. 基于PROTEUS的單片機(jī)溫度采集系統(tǒng)設(shè)計(jì)與仿真[J]. 電子測(cè)試 ,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
(責(zé)任編輯:徐興華)