魏慧竹
(沈陽(yáng)理工大學(xué) 遼寧沈陽(yáng) 110035)
基于DS18B20的溫度采集系統(tǒng)設(shè)計(jì)
魏慧竹
(沈陽(yáng)理工大學(xué) 遼寧沈陽(yáng) 110035)
DS18B20的讀寫(xiě)時(shí)序和測(cè)溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s 減為750ms。 DS18B20測(cè)溫原理如圖3所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶振 隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對(duì) 低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重 新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。
由于DS18B20采用的是1-Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)AT89S51單片機(jī)來(lái)說(shuō),硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來(lái)模擬單總線的協(xié)議時(shí)序來(lái)完成對(duì)DS18B20芯片的訪問(wèn)。
由于DS18B20是在一根I/O線上讀寫(xiě)數(shù)據(jù),因此,對(duì)讀寫(xiě)的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫(xiě)時(shí)序開(kāi)始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫(xiě)命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。
低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4K BytesISP(In-system programmable)的可反復(fù)擦寫(xiě)1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及AT89C52引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲(chǔ)單元。
發(fā)光二極管LED是一種通電后能發(fā)光的半導(dǎo)體器件,其導(dǎo)電性質(zhì)與普通二極管類(lèi)似。它使用了8個(gè)LED發(fā)光二極管,其中7個(gè)顯示字符,1個(gè)顯示小數(shù)點(diǎn),故通常稱之為7段發(fā)光二極管數(shù)碼顯示器,為了顯示字符,要為 LED顯示器提供段碼(或稱字形代碼),組成個(gè)“8”字形的7段,再加上1個(gè)小數(shù)點(diǎn)位,共計(jì)8段。共陽(yáng)極接法:把發(fā)光二極管的陽(yáng)極連在一起構(gòu)成公共陽(yáng)極,使用時(shí)公共陽(yáng)極接+5 V, 每個(gè)發(fā)光二極管的陰極通過(guò)電阻與輸入端相連。當(dāng)陽(yáng)極端輸入低電平時(shí),段發(fā)光二極管就導(dǎo)通點(diǎn)亮,而輸入高電平時(shí)則不點(diǎn)亮。
本設(shè)計(jì)采用LED數(shù)碼管顯示電路,該顯示電路由7段共陽(yáng)數(shù)碼管,限流電阻,三極管,基極電阻,P0口,P2口等組成。P0口通過(guò)與電阻排與數(shù)碼管的8個(gè)數(shù)據(jù)位相連,送顯示數(shù)碼。電阻即可起到限流作用,又可起到上拉電阻的作用。P2口的P2.0~P2.3通過(guò)4個(gè)10kΩ的電阻和4個(gè)三極管與4個(gè)7段數(shù)碼管相連,起位選的作用。
溫度報(bào)警電路是檢測(cè)當(dāng)前溫度的值并與預(yù)置的溫度上下限進(jìn)行比較,當(dāng)當(dāng)前溫度超出預(yù)置的溫度上下限時(shí),系統(tǒng)就會(huì)立即發(fā)出報(bào)警信號(hào)。此設(shè)計(jì)的溫度報(bào)警電路是由聲光報(bào)警電路組成,用到了蜂鳴器和LED發(fā)光二極管。
主機(jī)控制DS18B20完成任何操作之前必須先初始化,即主機(jī)發(fā)一復(fù)位脈沖(最短為480us的低電平),接著主機(jī)釋放總線進(jìn)入接收狀態(tài),DS18B20在檢測(cè)到I/O引腳上的上升沿之后,等待15-60us然后發(fā)出存在脈沖(60-240us的低電平)。
DS18B20復(fù)位檢測(cè)子程序的主要功能為檢測(cè)DS18B20是否存在。若存在則將標(biāo)志位FLAG1置1,反則置0.后續(xù)程序可以通過(guò)判斷標(biāo)志位來(lái)決定進(jìn)行何種操作。
溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換命令,當(dāng)采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms。
寫(xiě)時(shí)間片:將數(shù)據(jù)從高電平拉至低電平,產(chǎn)生寫(xiě)起始信號(hào)。在15us之內(nèi)將所需寫(xiě)的位送到數(shù)據(jù)在線,在15us到60us之間對(duì)數(shù)據(jù)線進(jìn)行采樣,如果采樣為高電平,就寫(xiě)1,如果為低電平,寫(xiě)0就發(fā)生。在開(kāi)始另一個(gè)寫(xiě)周期前必須有1us以上的高電平恢復(fù)期。
讀時(shí)間片:主機(jī)將數(shù)據(jù)線從高電平拉至低電平1us以上,再使數(shù)據(jù)線升為高電平,從而產(chǎn)生讀起始信號(hào)。主機(jī)在讀時(shí)間片下降沿之后15us內(nèi)完成讀位。每個(gè)讀周期最短的持續(xù)期為60us,各個(gè)讀周期之間也必須有1us以上的高電平恢復(fù)期。如圖5-8.
讀溫度子程序只讀出DS18B20緩存器前4個(gè)字節(jié)的數(shù)據(jù):溫度值LSB溫度值MSB、溫度報(bào)警值TH和TL,并將它們分別存入25H~28H單元中。
溫度計(jì)算子程序首先判斷溫度值MSB的符號(hào)位,當(dāng)符號(hào)位S=0時(shí),表示測(cè)得的溫度值為正,可以直接將二進(jìn)制轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位S=1時(shí),表示測(cè)得的溫度值為負(fù),要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制值。計(jì)算時(shí)先將溫度值LSB的低四位取出,進(jìn)行小數(shù)部分?jǐn)?shù)據(jù)處理。再將溫度值LSB的高四位和溫度值MSB的低四位取出,重新組合后進(jìn)行整數(shù)部分?jǐn)?shù)據(jù)處理。
軟件的仿真是用的Proteus ISIS,是英國(guó)Labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。將設(shè)計(jì)的電路圖連接好,將程序加入到AT89C52中,進(jìn)行仿真,和多次的修改,最終得到預(yù)測(cè)的結(jié)果。
[1]彭桂蘭,張學(xué)軍,張新東.溫室環(huán)境計(jì)算機(jī)測(cè)控技術(shù)的研究現(xiàn)狀和發(fā)展趨勢(shì) [J].現(xiàn)代化農(nóng)業(yè),2001.
[2]彭里.溫室大棚檢測(cè)控制系統(tǒng)的研究 [J ].計(jì)算機(jī)工程,2000.
[3]何鵬,袁其,丁春欣.傳感器在溫室大棚環(huán)境控制中的應(yīng)用 [J ].計(jì)算機(jī)與農(nóng)業(yè),2002.
[4]崔志富,趙亭荃,李建國(guó).溫度傳感器在農(nóng)業(yè)生產(chǎn)中的應(yīng)用 [J ].現(xiàn)代化農(nóng)業(yè),2002.
[5]周月霞,孫傳友. DS1820傳感器及其測(cè)溫方法的改進(jìn) [J ].石油儀器,2002.
TU7
B
1007-6344(2017)05-0124-01