單片智能溫度計(jì)及其在燙金機(jī)中的應(yīng)用
引言
溫度是工業(yè)控制中主要的被控對(duì)象之一,如印刷、食品、化工等各類工業(yè)中廣泛使用的各種加熱設(shè)備、熱處理爐、反應(yīng)爐等,它們都對(duì)工件的處理溫度有嚴(yán)格控制要求,計(jì)算機(jī)控制技術(shù)在這方面的應(yīng)用,使得溫度控制技術(shù)指標(biāo)得到了大幅度的提高,本文介紹了一種用at89c2051單片機(jī)制作用于燙金機(jī)中的電子溫度計(jì),和普通的溫度控制儀相比,該溫度計(jì)具有測(cè)溫速度快、讀數(shù)方便等特點(diǎn),測(cè)溫范圍為-40-125℃,而且穩(wěn)定實(shí)用,輔以適當(dāng)?shù)母魺岵牧?,其控制范圍將更高?br>
燙金機(jī)是根據(jù)熱壓原理,將彩色電化鋁印在紙、木、塑、革等各種商品上,其燙印色彩鮮艷、美觀大方,是當(dāng)前小型商品裝潢、名片和包裝印刷的必備機(jī)器,燙金機(jī)的燙金原理是通過(guò)一定的溫度和壓力,并利用色箔將飾版上的圖案和文字瞬間附著在塑膠表面上,燙金必備的是溫度、壓力、色箔、燙飾版、其中溫度控制是本設(shè)計(jì)要解決的主要問(wèn)題。
ds18b20溫度傳感器
ds18b20是美國(guó)dallas半導(dǎo)體公司繼ds1820之后推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻相比,它不需要運(yùn)算放大器,就能直接讀出被測(cè)溫度,并可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程來(lái)實(shí)現(xiàn)9-12位的數(shù)字值讀數(shù),通過(guò)設(shè)計(jì)可以分別在93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量,而且從ds18b20讀出的信息或?qū)懭雂s18b20的信息僅需要一根口線(單線接口)讀寫,ds18b20的溫度變換功率來(lái)源于數(shù)據(jù)總線,總線本身也可以向所掛接的ds18b20供電,而無(wú)需額外電源。因此,使用ds18b20可使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。由于ds18b20在測(cè)溫精度、轉(zhuǎn)換時(shí)間、傳輸距離、分辨率等方面較ds1820有了很大的改進(jìn),因而可給用戶帶來(lái)更方便的使用和更令人滿意的效果。
ds18b20的性能特點(diǎn)
ds18b20的主要性能特點(diǎn)如下:
具有獨(dú)特的單線接口方式,ds18b20與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與ds18b20的雙向通訊。
在使用中不需要任何外圍元件。
可用數(shù)據(jù)線供電,電壓范圍為3.0-5.5v,測(cè)量范圍為-55-+125℃,固有測(cè)溫分辨率為0.5℃。
通過(guò)編程可實(shí)現(xiàn)9-12位的數(shù)字讀數(shù)方式。
用戶可自己設(shè)定非易失性的報(bào)警上下門限值,并支持多點(diǎn)組網(wǎng)功能,多個(gè)ds18b20可以并聯(lián)在唯一的三線上實(shí)現(xiàn)多點(diǎn)測(cè)溫。
具有獨(dú)特的負(fù)壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。
ds18b的內(nèi)部結(jié)構(gòu)
ds18b20采用3腳pr-35封裝或8腳soic封裝,其內(nèi)部結(jié)構(gòu)框圖如圖1所示,其中64位閃速rom中的開(kāi)始8位是產(chǎn)品類型的編碼,接著是每個(gè)器件唯一的序號(hào),共有48位,最后8位是前56位的crc校驗(yàn)碼,這也是多個(gè)ds18b20可以采用一線進(jìn)行通信的原因,通過(guò)非易失性溫度報(bào)警觸發(fā)器th和tl可用軟件寫入用戶報(bào)警的上下門限。ds18b20溫度產(chǎn)傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速ram和一個(gè)非易失性的可電擦除的eepram,后者用于存儲(chǔ)th、tl值,數(shù)據(jù)線寫入ram,經(jīng)校驗(yàn)后再傳給eepram。片中的配置寄存器為高速存儲(chǔ)器中的第5個(gè)字節(jié),其內(nèi)容可用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率,ds18b20工作時(shí),按此寄存器中的分辨率可將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值。
ds18b20的測(cè)溫原理
ds18b20的測(cè)溫原理如圖2所示,圖中的低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,故可用于產(chǎn)生固定頻率的脈沖信號(hào)給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化,其振蕩頻率會(huì)有明顯改變,其所產(chǎn)生的信號(hào)可作為減法計(jì)數(shù)器2的脈沖輸入,圖中隱含著的計(jì)數(shù)門可在打開(kāi)時(shí),使ds18b20對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器決定,每次測(cè)量前,首先將-55℃所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,以使測(cè)量時(shí)減法計(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í),系統(tǒng)將停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度,圖3中的斜率累加器用于補(bǔ)償和修正測(cè)溫度過(guò)程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門未關(guān)閉,系統(tǒng)就會(huì)重復(fù)上述過(guò)程,直到溫度寄存器達(dá)到被測(cè)溫度值。
測(cè)溫工作電路
該燙金機(jī)控溫系統(tǒng)的主電路如圖3所示,該電路由單片機(jī)電路、溫度傳感器電路、可控硅電路、數(shù)碼顯示電路等部分組成,其中at89c2051、x1、r1、c1等組成單片機(jī)電路,r1、c1是單片機(jī)的復(fù)位電路,在接通電源的瞬間,由于電源電壓通過(guò)r1對(duì)c1的充電過(guò)程,單片機(jī)at89c2051的復(fù)位端1腳將獲得一個(gè)高電平復(fù)位脈沖,該脈沖可使得單片機(jī)進(jìn)入初始狀態(tài)。
單片機(jī)的p3.7為輸出控制口,通過(guò)一只電阻接至一片"光電耦合型過(guò)零觸發(fā)雙向"芯片gk的輸入端,設(shè)計(jì)時(shí),可適時(shí)通過(guò)"gk"觸發(fā)外接的雙向晶閘管skg的導(dǎo)通與截止,來(lái)控制電爐絲的加電與斷電、大電流與小電流,從而實(shí)現(xiàn)對(duì)燙金機(jī)的升溫和恒溫的控制。
at89c2051內(nèi)部有一個(gè)模擬信號(hào)比較器,at89c2051的p1.0和p1.1除了作i/o口外,還分別是模擬信號(hào)比較器的同相輸入端和反相輸入端,模擬信號(hào)比較器的比較結(jié)果存入p3.6對(duì)應(yīng)的寄存器,p3.6在at89c2051外部無(wú)引腳,利用這個(gè)模擬信號(hào)比較器和鋸齒波信號(hào)發(fā)生器電路可以組成一個(gè)a/d轉(zhuǎn)換電路,以把p1.1輸入的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),數(shù)碼管ds1、ds2、ds3、ds4、三極管vt1、vt2、vt3、vt4、電阻r3-r13等可組成動(dòng)態(tài)掃描數(shù)碼顯示電路,可把溫度值用數(shù)字顯示出來(lái),本設(shè)計(jì)采用ds18b20作為溫度傳感器。
現(xiàn)以mcs-51單片機(jī)為例,圖3中采用的是寄生電源供電方式,p1.1口接單總線是為了保證在有效的ds18b20時(shí)鐘周期內(nèi)提供足夠的電流,設(shè)計(jì)時(shí)可用一個(gè)mosfet管和at89c2051的p1.o來(lái)完成對(duì)總線的上拉。當(dāng)ds18b20處于寫存儲(chǔ)器操作和溫度a/d變換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開(kāi)啟時(shí)間最大為10μs。采用寄生電源供電方式時(shí),vdd和gnd端均接地,由于單線制只有一根線,因此發(fā)送接收口必須是三態(tài)的,主機(jī)控制ds18b20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)初始化、rom操作指令、存儲(chǔ)器操作指令等三個(gè)步驟,假設(shè)單片機(jī)所用的晶振頻率為12mhz,那么,就可以根據(jù)ds18b20的初始化時(shí)序、寫時(shí)序和讀時(shí)序、來(lái)分別編寫init初始化子程序、write寫(命令或數(shù)據(jù))子程序和read讀數(shù)據(jù)子程序等3個(gè)子程序,這些程序可在網(wǎng)上讀取,所有的數(shù)據(jù)讀寫均由最低位開(kāi)始。
軟件設(shè)計(jì)
設(shè)計(jì)程序時(shí),可使用匯編語(yǔ)言編寫,程序由主程序、定時(shí)中斷服務(wù)程序、延時(shí)子程序等模塊組成,其中主程序由初始化、數(shù)碼動(dòng)態(tài)掃描顯示等部分組成,圖4所示是其定時(shí)中斷服務(wù)程序流程圖。
采用動(dòng)態(tài)掃描顯示方式,雖然簡(jiǎn)化了電路,節(jié)省了i/o線,但占用cpu的時(shí)間較多,而采用調(diào)用定時(shí)中斷的方式來(lái)測(cè)溫可以減小cpu的負(fù)擔(dān),定時(shí)器0的定時(shí)時(shí)間為50ms,每過(guò)250ms(5次中斷)測(cè)一次溫度,延時(shí)子程序主要供數(shù)碼顯示程序調(diào)用,延時(shí)時(shí)間為0.5ms,延時(shí)時(shí)間決定了數(shù)碼顯示的刷新周期,因?yàn)轱@示數(shù)碼為三位,所以刷新周期為1.5ms,字形碼的輸出采用p3口的p3.1-p3.5、p3.7、p3口輸出的數(shù)據(jù)可通過(guò)查表獲得。因?yàn)閿?shù)碼管為共陽(yáng)型,所以相應(yīng)的輸出位為0時(shí)筆段亮。存儲(chǔ)器20h、21h、22h單元可分別作為個(gè)位數(shù)、十位數(shù)、百位數(shù)的存儲(chǔ)單元,其數(shù)值可作為查表的指針。動(dòng)態(tài)掃描顯示由數(shù)碼顯示儲(chǔ)蓄完成,當(dāng)個(gè)位數(shù)送到p3口時(shí),p1.3輸出低電平,vt4導(dǎo)通,數(shù)碼管ds3顯示個(gè)位數(shù),當(dāng)十位數(shù)送到p3口時(shí),p1.4輸出低電平,vt3導(dǎo)通,數(shù)碼管ds2顯示十位數(shù),而當(dāng)百位數(shù)送到p3口時(shí),p1.5輸出低電平,vt2導(dǎo)通,數(shù)碼管ds1顯示百位數(shù),如果溫度為負(fù)值,則百位數(shù)顯示負(fù)號(hào),這樣輪流工作即可顯示溫度值,測(cè)溫結(jié)束時(shí),p3.6由0翻轉(zhuǎn)為1,由于程序判斷p3.6為高電平要用兩個(gè)機(jī)器周期,且關(guān)閉定時(shí)器1停止計(jì)數(shù)也要用1個(gè)機(jī)器周期,總共這3個(gè)機(jī)器周期會(huì)使定時(shí)器1得計(jì)數(shù)值增加3,因此,在程序中對(duì)此誤差要進(jìn)行修正,即將計(jì)數(shù)值減去3。
結(jié)束語(yǔ)
ds18b20雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單,測(cè)溫精度高、連接方便、占用口線少、擴(kuò)展方便等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中還應(yīng)注意以下幾方面的問(wèn)題:
(1)較小的硬件開(kāi)銷需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于ds18b20與微處理器采用的是串行數(shù)據(jù)傳送,因此,在對(duì)ds18b20進(jìn)行讀寫編程時(shí),必須嚴(yán)格地保證讀寫時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果,對(duì)ds18b20的操作部分最好采用匯編語(yǔ)言編寫。
(2)ds18b20工作時(shí)的電流高達(dá)1.5ma,故在總線上掛接點(diǎn)數(shù)較多且同時(shí)進(jìn)行轉(zhuǎn)換時(shí)要考慮增加總線驅(qū)動(dòng),可用單片機(jī)端口在溫度轉(zhuǎn)換時(shí)導(dǎo)通一個(gè)mosfet。
(3)由于連接ds18b20的總線電纜是有長(zhǎng)度限制的,因此,在用ds18b20進(jìn)行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí),要充分考慮總線分布電容和阻抗匹配等問(wèn)題。
(4)在ds18b20測(cè)溫程序設(shè)計(jì)中,向ds18b20發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待ds18b20的返回信號(hào),一旦某個(gè)ds18b20接觸不好或斷線,那么,在程序讀該ds18b20時(shí),將沒(méi)有返回信號(hào),程序進(jìn)入死循環(huán),這一點(diǎn)在進(jìn)行ds18b20硬件連接和軟件設(shè)計(jì)時(shí)也要給予一定的重視。
(5)和ds1820一樣,ds18b20的讀寫時(shí)序必須仔細(xì)調(diào)整,在反復(fù)的調(diào)試中找出合適的延時(shí)時(shí)間。
p2p機(jī)相關(guān)文章:p2p原理
評(píng)論