摘要:本設(shè)計(jì)介紹了DS18B20數(shù)字溫度傳感器的內(nèi)部結(jié)構(gòu)和工作過(guò)程,提出了基于DS18B20和AT89C51的數(shù)字溫度計(jì)設(shè)計(jì)方案,并提出了基于51單片機(jī)和DS18B20數(shù)字溫度傳感器的溫度測(cè)量方法,包括溫度傳感器芯片的選擇,微控制器與溫度傳感器之間的接口電路設(shè)計(jì)以及溫度信息收集和數(shù)據(jù)傳輸?shù)能浖O(shè)計(jì)。 該數(shù)字溫度計(jì)的溫度測(cè)量范圍為-50至+110°C,精度誤差在0.1°C以內(nèi),具有很高的溫度測(cè)量精度和出色的控制性能。電子溫度計(jì)適合一般使用,也可用于冷熱警報(bào),遠(yuǎn)程多點(diǎn)溫度測(cè)量控制等。
關(guān)鍵詞:數(shù)字溫度計(jì);單片機(jī);溫度傳感器
前言
傳統(tǒng)的溫度測(cè)量系統(tǒng)通常使用熱電偶或鉑電阻進(jìn)行溫度測(cè)量。這些電路有一些問(wèn)題需要解決。為了執(zhí)行準(zhǔn)確的溫度測(cè)量,鉑電阻器必須提供合適的恒流源。來(lái)自熱電偶的信號(hào)是模擬信號(hào),必須發(fā)送到CPU。首先執(zhí)行A / D轉(zhuǎn)換,然后發(fā)送到CPU進(jìn)行處理。另外,熱電偶信號(hào)非常弱,只有12 mA,因此通常需要在A / D轉(zhuǎn)換之前執(zhí)行增益放大。因此,使用熱電偶和鉑熱電阻進(jìn)行溫度測(cè)量需要大量考慮,并且配置的系統(tǒng)更加復(fù)雜。 DALLAS發(fā)布的DS18B20數(shù)字溫度傳感器很好地解決了這些問(wèn)題。 DS18B20使用單線接口,該接口僅在微型計(jì)算機(jī)上占用一個(gè)I / O端口,其外圍電路也非常簡(jiǎn)單。 DS18B20測(cè)量溫度信號(hào)。 DS18B20可以轉(zhuǎn)換為數(shù)字輸出,無(wú)需信號(hào)放大或A / D轉(zhuǎn)換即可直接連接至單片機(jī),使其用作溫度采集的溫度傳感器,大大簡(jiǎn)化了電路設(shè)計(jì)。
一、設(shè)計(jì)的目的及意義
設(shè)計(jì)目標(biāo):整個(gè)系統(tǒng)基于微波AT89C51,與數(shù)字溫度傳感器DS18B20,數(shù)字電子管顯示器等結(jié)合以實(shí)現(xiàn)溫度顯示。
單芯片應(yīng)用系統(tǒng)具有體積小,功耗低,功能強(qiáng)大,性價(jià)比高,易于開(kāi)發(fā)和推廣等優(yōu)點(diǎn),廣泛應(yīng)用于自動(dòng)控制、儀器儀表和家用電器領(lǐng)域。
二、設(shè)計(jì)方案論證
解決方案1:實(shí)施熱電偶需要更多的外部硬件支持,復(fù)雜的電路,復(fù)雜的軟件調(diào)試和較高的制造成本。 為此,需要進(jìn)行溫度補(bǔ)償,并且難以滿足精度要求。
解決方案2:使用智能傳感器DS18B20作為檢測(cè)元件,溫度范圍為-55°C至125°C,最大分辨率為0.0625°C。DS18B20可以直接讀取測(cè)得的溫度值。 此外,由于它是通過(guò)3線系統(tǒng)連接到單芯片微波的,因此外部硬件電路很少,而且成本低廉且易于使用。 作為顯示設(shè)備,LED數(shù)字管用于通過(guò)89C51構(gòu)建最小的系統(tǒng)。
總結(jié)一下,權(quán)衡不同方面的優(yōu)點(diǎn)和缺點(diǎn),選擇使用方案2。
三、電子溫度計(jì)電路分析
(一)總體設(shè)計(jì)
該系統(tǒng)基于AT89C51芯片,該芯片檢測(cè)DS18B20是否正常工作,將內(nèi)部數(shù)字溫度讀取到單片機(jī),并通過(guò)相應(yīng)的數(shù)字管顯示出來(lái)。 如果溫度超過(guò)設(shè)定溫度,將使用蜂鳴器警告提醒,其外圍電路包括復(fù)位電路和晶體振蕩器電路。
(二)元件電路分析
該電路的功能是完成具有上電復(fù)位和按鈕復(fù)位功能的單芯片計(jì)算機(jī)的復(fù)位。單片機(jī)千分尺千分尺復(fù)位是一種單片機(jī)初始化,可恢復(fù)程序執(zhí)行。即,它將微控制器的PC寄存器初始化為0000H。正常初始化是指程序的正常初始化,但是如果系統(tǒng)由于程序錯(cuò)誤或操作錯(cuò)誤而死鎖,請(qǐng)按“重設(shè)”按鈕以重新啟動(dòng)系統(tǒng)并解決難題。這是一種責(zé)任。有自動(dòng)重置和手動(dòng)重置方法。該設(shè)計(jì)采用上電復(fù)位模式進(jìn)行自動(dòng)復(fù)位。晶體單位為12MHz。
AT89C51具有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是放大器的輸入和輸出。放大器和片外晶體或陶瓷諧振器用作反饋組件,以形成自激振蕩器。
外部晶體振蕩器(或陶瓷諧振器)以及電容器C1和C2連接到放大器的反饋環(huán)路,以形成并聯(lián)振蕩電路。對(duì)于外部電容器C1和C2沒(méi)有嚴(yán)格的要求,但是電容器容量的大小對(duì)振蕩頻率,振蕩器穩(wěn)定性,開(kāi)始振蕩的難度和溫度穩(wěn)定性幾乎沒(méi)有影響。使用晶體振蕩器時(shí)的推薦電容器為30pF±10pF,而使用陶瓷諧振器時(shí)的推薦電容器為40pF±10F。用戶還可以使用外部時(shí)鐘。圖3-1顯示了使用外部時(shí)鐘的電路。在這種情況下,外部時(shí)鐘脈沖連接到內(nèi)部時(shí)鐘發(fā)生器的輸入端子X(jué)TAL1,而XTAL2保持懸空。報(bào)警電路設(shè)置的原理是電子溫度計(jì)的極限范圍是0到100度。如果超出此范圍,則應(yīng)發(fā)出警報(bào)。 PNP晶體管9015用于驅(qū)動(dòng)蜂鳴器并在開(kāi)/關(guān)狀態(tài)下工作。原理圖如圖3-2所示。
電源單元的功能是保持單片機(jī)千分尺穩(wěn)定運(yùn)行,每個(gè)順序都必須嚴(yán)格,對(duì)電源的要求也更高。我們建議使用開(kāi)關(guān)電源。這是自制電源。變壓器將輸出電壓從高電壓轉(zhuǎn)換為低電壓,并且輸出電壓值為正弦曲線圖。橋完全整流后,橋堆的輸出電壓呈波狀。即,正弦波的負(fù)半周期變?yōu)檎胫芷凇?C1整流后,C1充電,從而產(chǎn)生衰減波形。 7805是恒定輸出調(diào)節(jié)器模塊。 5V,C3和C2電壓可以消除雜散波的共同頻率。 7805的輸出端不能高于輸入端,因此添加二極管保護(hù)7805。原理圖如圖3-3所示。
數(shù)據(jù)顯示電路的功能是顯示傳感器檢測(cè)到的溫度數(shù)據(jù)。 由于必須以0.1°C的分辨率顯示0°C至100°C,因此該部件至少具有四個(gè)數(shù)字管來(lái)顯示這些值。 單芯片計(jì)算機(jī)的資源有限,此處僅提供動(dòng)態(tài)掃描。 通過(guò)這種連接方法,微控制器千分尺使用的端口線是端口P0,必須將其拔出作為輸出端口,電阻為10K,數(shù)字管使用共用陽(yáng)極管。
四、電子溫度計(jì)系統(tǒng)設(shè)計(jì)
軟件部分主要是:(1) 溫度的采集;(2) 溫度數(shù)據(jù)的處理(3) 數(shù)值的顯示。
(一)溫度的采集
設(shè)計(jì)的這一部分主要考慮DS18B20的工作過(guò)程和時(shí)序。
ROM操作命令存儲(chǔ)器操作命令處理數(shù)據(jù)的初始化
(1)初始化
單個(gè)總線上的所有內(nèi)容均始于初始化
(2)ROM操作產(chǎn)品訂購(gòu)
總線主機(jī)可以檢測(cè)到DS1820的存在并發(fā)出ROM操作命令之一。
(3)內(nèi)存操作命令
(4) ?時(shí) 序
主機(jī)使用時(shí)間隙(time slots)來(lái)讀寫DSl8B20的數(shù)據(jù)位和寫命令字的位
a).初始化
時(shí)序如下圖4-1所示,主機(jī)總線發(fā)送一個(gè)復(fù)位脈沖(最短的480us低電平信號(hào)),釋放總線進(jìn)入接收狀態(tài)。 DS18B20在檢測(cè)到總線的上升沿后等待15-60us,然后DS18B20發(fā)送一個(gè)應(yīng)答脈沖(低電平持續(xù)60-240 us)。
b).寫時(shí)間隙
當(dāng)主機(jī)總線從高電平拉低到低電平時(shí),存在寫時(shí)間間隔。 從開(kāi)始算起的15us內(nèi),要寫入的位被發(fā)送到總線上的DS18B20。 公交車的采樣時(shí)間為15-60us。 低電平寫入的位在下面的圖4-2左側(cè)顯示為0。 如果以高電平寫入的位數(shù)為1,請(qǐng)參見(jiàn)下面的圖4-2右側(cè),以寫入兩個(gè)連續(xù)位之間的間隙應(yīng)大于1us 。
c).讀時(shí)間隙
見(jiàn)下圖4-3所示,當(dāng)主機(jī)總線從高電平拉至低電平時(shí),總線應(yīng)保持低電平15 s。 然后在t1處將總線拉高以產(chǎn)生讀取間隙。 讀取間隙在t1和t2之后有效。 到的tz距離為15μs或tz。 前端主機(jī)必須完成讀取位并在60μs至120μs內(nèi)釋放總線。
設(shè)計(jì)軟件部分的核心是DS18B20的使用,讀取溫度需要嚴(yán)格的時(shí)間,模塊設(shè)計(jì)的主程序流程圖如下:溫度轉(zhuǎn)換子例程如下:
(二)溫度數(shù)據(jù)的處理
這部分是將溫度傳感器的數(shù)字量讀入單片機(jī)后的處理內(nèi)容。 它主要包括正負(fù)號(hào)處理,負(fù)數(shù),正數(shù),小數(shù)點(diǎn)處理,溫度比較,最后決定是否發(fā)出警報(bào)。
(三)數(shù)值的顯示
端口P0連接到7段顯示器和數(shù)字管的小數(shù)點(diǎn),P2的前四個(gè)端口連接到數(shù)字管的公共端作為芯片選擇信號(hào)。 由于這里使用了動(dòng)態(tài)掃描方法,因此在軟件仿真中很容易接收。
四、總結(jié)
該設(shè)計(jì)是根據(jù)單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)步驟,硬件電路開(kāi)發(fā)和軟件開(kāi)發(fā)的基本思想和方法進(jìn)行的,采用模塊化設(shè)計(jì)的思想實(shí)現(xiàn)了軟件系統(tǒng)。模塊化設(shè)計(jì)是將大型程序分為幾個(gè)較小的模塊,具體取決于它們的功能。每個(gè)模塊都是相對(duì)獨(dú)立的,具有定義明確的結(jié)構(gòu),并且具有簡(jiǎn)單的界面。這種模塊化設(shè)計(jì)降低了程序設(shè)計(jì)的復(fù)雜性,提高了組件的可靠性,縮短了開(kāi)發(fā)周期,避免了重復(fù)的程序開(kāi)發(fā)任務(wù),促進(jìn)了維護(hù)和增強(qiáng),等等。有優(yōu)點(diǎn)。本設(shè)計(jì)中的軟件功能模塊分為溫度采集,溫度數(shù)據(jù)處理,主程序模塊,延遲子程序等。在系統(tǒng)范圍的設(shè)計(jì)過(guò)程中嚴(yán)格遵循硬件電路設(shè)計(jì)規(guī)則,使整個(gè)系統(tǒng)的設(shè)計(jì)完全成功。
參考文獻(xiàn)
[1]楊海波,張瑋,劉曉靜,等. 一種基于數(shù)字溫度傳感器DS18B20的多功能電子溫度計(jì)設(shè)計(jì)[J]. 中國(guó)醫(yī)學(xué)物理學(xué)雜志,2013,30(1):3890-3893.
[2]王林勝. 基于單片機(jī)控制的數(shù)字溫度計(jì)的電路設(shè)計(jì)[J]. 通訊世界,2016(11):223-224.
[3]向繼文,劉昕,陳善榮. 基于DS18B20的數(shù)字溫度計(jì)設(shè)計(jì)與仿真[J]. 電腦與信息技術(shù),2019,27(01):47-50.
作者簡(jiǎn)介:廖敏(1981-10),女,彝族,籍貫:云南鎮(zhèn)沅,職稱:講師,學(xué)歷:工程碩士,單位:普洱市職教中心,研究方向:電工電子。