單片機(jī)與數(shù)字溫度接口及程序設(shè)計(jì)分析
數(shù)字式溫度傳感器(簡稱SWC),又稱集成數(shù)字脈沖式感溫探頭,是一種新型的三端溫度變送器件。該器件采用集成模塊化設(shè)計(jì),可以直接將被測溫度信號(hào)轉(zhuǎn)化為數(shù)字脈沖信號(hào)輸出,具有傳輸距離遠(yuǎn),抗干擾能力強(qiáng),轉(zhuǎn)換精度高等優(yōu)點(diǎn)。它可以方便地與51系列單片機(jī)接口,而省去A/D轉(zhuǎn)換集成電路,降低成本,提高可靠性,縮小體積,可廣泛應(yīng)用于軍事、醫(yī)藥衛(wèi)生、食品及自動(dòng)化測控系統(tǒng)中。
SWC三條引腳的名稱分別為控制線(K)、信號(hào)線(S)、公共線(G)。其K端實(shí)際上也是電源線,其工作方式為加電啟動(dòng)或?qū)捗}沖觸發(fā)式。當(dāng)對其控制線加電(或?qū)捗}沖)觸發(fā)時(shí),經(jīng)復(fù)位時(shí)間TQ之后信號(hào)線上便輸出一串脈沖。該串脈沖的個(gè)數(shù)即表示被測溫度的數(shù)字量(見圖1)。
這里需要說明一點(diǎn),輸出脈沖個(gè)數(shù)的多少不取決于加電脈沖的寬度,而取決于SWC內(nèi)部正比于溫度的參考電壓的大小,即取決于溫度的高低。利用SWC這種特點(diǎn),可以方便地與單片機(jī)配接。方案有兩種,下面分別予以介紹。
1.外加電方式
第一種方案為外加電方式,即控制線K上所加寬脈沖為一外接振蕩器,由振蕩器的脈寬控制SWC啟動(dòng),如圖3-99所示。SWC傳感器出廠均嚴(yán)格約定每個(gè)脈沖為0.1℃的增量,而脈沖頻率為15 kHz左右。8031單片機(jī)的P3,4/TO、P3.5/Ti引腳為計(jì)數(shù)器時(shí),對外部事件的最高計(jì)數(shù)速度為fosc/24。若機(jī)器晶振為6 MHz,6 MHz/24>15 kHz,則計(jì)15 kHz左右的脈沖是沒有問題的。15 kHz脈沖的周期為0.067 ms,SWC傳感器的測量上限若為150℃,則須計(jì)1500個(gè)脈沖,大約100 ms。即在控制線K端加電的脈寬應(yīng)大于100 ms.否則會(huì)引起誤差。重復(fù)對SWC進(jìn)行加電啟動(dòng),可實(shí)現(xiàn)對被測溫度的連續(xù)采樣。
若以P3.4/TO為計(jì)數(shù)輸入端,則必須將8031特殊功能寄存器TMOD中的D3位,即門控制位GATE置為1,并將D2位C/INTo位置為1,則只有當(dāng)定時(shí)器運(yùn)行控制位TRo =1,且INTo引腳為高電平時(shí),才啟動(dòng)To計(jì)數(shù)器計(jì)數(shù)。這種情況下,只要INTo為高電平,計(jì)數(shù)便開始;INTo為低電平,停止計(jì)數(shù)。T0計(jì)數(shù)受控于INTo的高低電平。利用這一特點(diǎn),讓SWC的控制線K與INTo相連,只要INTo變?yōu)楦唠娖剑环矫娼oSWC加電,其輸出15 kHz的脈沖;另一方面使8031計(jì)數(shù)器To開放,開始計(jì)數(shù)。計(jì)數(shù)脈沖的多少,就是溫度的數(shù)字量。
圖2中,IC1為施密特觸發(fā)器。它和電容C、電位器Wl、W2一起構(gòu)成占空比和頻率均可調(diào)的多諧振蕩器。Wl、W2可設(shè)定脈沖占空比;振蕩器輸出寬脈沖驅(qū)動(dòng)三極管2SC9013給SWC控制線加電,每加一次電即采樣一次;SWC傳感器的信號(hào)線S經(jīng)兩級(jí)施密特觸發(fā)器整形后,送至8031的P3.4/TO端計(jì)數(shù)。
在大型冷庫、化工自動(dòng)化等工程中,往往需要進(jìn)行多點(diǎn)的溫度巡檢,那么可以按圖3線路設(shè)計(jì)。圖3中CD4028是CMOS的BCD碼/十進(jìn)制譯碼器;CD4067是CMOS十六選一模擬開關(guān);74LS273是八D鎖存器,可以將不同的二進(jìn)制數(shù)在11腳為高電平時(shí)鎖存在該器件中。這樣將可利用不同的二進(jìn)制數(shù)依次只能選通某個(gè)通道。該電路將CMOS邏輯電平控制和多路模擬開關(guān)控制相結(jié)合,最大限度地組合利用器件的通道容量,從而可以用八位二進(jìn)制碼來完成最多可達(dá)160路SWC測溫電路的通斷控制,可以方便地實(shí)現(xiàn)計(jì)算機(jī)巡檢,以便進(jìn)行多點(diǎn)溫度控制。
2.軟件實(shí)現(xiàn)方式
第二種方案,是利用軟件實(shí)現(xiàn)一個(gè)脈寬大于100 ms的方法,來代替第一種方案中的外加多諧振蕩器,而其他接口電路與第一種方案一樣,這里不再重復(fù)。
若在Pl.0引腳上輸出上述方法的信號(hào),假定系統(tǒng)時(shí)鐘頻率為6 MHz,選用定時(shí)器To,且使其工作在方式1,則有定時(shí)初值
轉(zhuǎn)化為二進(jìn)制數(shù):X= 00llll0010110000,十六進(jìn)制數(shù)為X=3CB0H,故定時(shí)器To的初值為BOH(TL)和3CH(TH)。定時(shí)器初始化和中斷服務(wù)程序清單如下:
這種方法以在P1.0。口輸出定時(shí)方波來給SWC不斷加電實(shí)現(xiàn)連續(xù)采樣,使接口電路極為簡單、方便。且SWC輸出脈沖的傳輸距離一般可達(dá)500 m以上,轉(zhuǎn)換速度低于3 ms,誤差不大于0.3℃,使得這種傳感器應(yīng)用非常廣泛,且與數(shù)字化儀器儀表配套連接。