<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于單片機控制的熱源自動測試儀

          基于單片機控制的熱源自動測試儀

          ——
          作者:張 鋼 楊 勇 方舒燕 時間:2006-07-24 來源:EDN China 收藏

                  在藥品質(zhì)量監(jiān)測過程中,熱源反應(yīng)的測溫是一項重要內(nèi)容。藥品檢測有其特殊性,對系統(tǒng)的精度、穩(wěn)定性、一致性和線性度等指標(biāo)有著較高的要求。傳統(tǒng)老式儀器大多是各類溫度計,效率和精度都難如人意。根據(jù)現(xiàn)場監(jiān)測要求,研制了基于單片機控制的熱源自動儀,實現(xiàn)了在實驗室內(nèi)自動巡回測試30路熱源,滿足了現(xiàn)場測溫準(zhǔn)確穩(wěn)定的高標(biāo)準(zhǔn)要求,成功地完成了藥檢實驗室測試儀器的更新?lián)Q代。 

                 1 測試儀器系統(tǒng)組成與工作原理 

            本測試儀器的工作原理圖如圖1所示,對多點測試的熱源數(shù)據(jù)經(jīng)多路轉(zhuǎn)換開關(guān),送入儀器放大器實現(xiàn)差值放大后,用V/F轉(zhuǎn)換器將電壓信號轉(zhuǎn)換成一定頻率的脈沖信號,送入8051單片機的T0口,T0為計數(shù)器,T1作為定時器,在定時時間內(nèi)接受脈沖信號,通過V/F轉(zhuǎn)換器實現(xiàn)了高精度的A/D轉(zhuǎn)換,最后將數(shù)據(jù)送入8051進行分析處理,配合輸入與顯示模塊電路完成多點溫度的顯示、監(jiān)測、預(yù)警和打印等功能。 

            為了保證儀器測溫的精度、穩(wěn)定性和線性度等指標(biāo),在硬件上主要采取了2個方面的措施。一方面是選擇合適的溫度傳感器,溫度傳感器的參數(shù)性能,是整機性能能否達到設(shè)計要求的關(guān)鍵。作為計量儀器不宜選用一般的PN結(jié)溫度傳感器,因為其測溫精度、穩(wěn)定性、線性度和一致性都相對較差,不能滿足設(shè)計的要求。這里選用了集成溫 度傳感器AD590KH,其測溫精度為0.1℃,測溫分辨率為0.01℃,非線性度在0~150℃范圍小于0.5%,其參數(shù)性能保證了現(xiàn)場采集的熱源數(shù)據(jù)轉(zhuǎn)換成電壓信號后的數(shù)據(jù)精度、穩(wěn)定性和線性度均高于計量標(biāo)準(zhǔn)。此外,集成溫度傳感器AD590具有一致性較好特點,用戶在儀器使用一定時間后,可方便地自行更換探頭。另一方面,在信號選擇、傳送、放大和A/D轉(zhuǎn)換的過程中,不可避免地要引入一些干擾,使數(shù)據(jù)產(chǎn)生一定的誤差。為了確保儀器整機性能指標(biāo)符合計量標(biāo)準(zhǔn)要求,對儀器前向通道的結(jié)構(gòu),器件性能參數(shù)指標(biāo)的選擇上都提出了較高的要求,在軟件設(shè)計上,采用了數(shù)字濾波與線性軟件校正等手段。 

            如圖1所示,30路溫度傳感器AD590KH經(jīng)2片模擬開關(guān)4067構(gòu)成30選1的熱源數(shù)據(jù)選擇器,通過8051單片機的P1口的P1.0~P1.4編程控制30路信號的通斷,使30路熱源數(shù)據(jù)依次送入儀器放大器AD524,逐一實現(xiàn)差值放大。  
             
            儀器設(shè)計要求測溫分辨率為0.01℃,測溫范圍為30~40℃,放大器輸出電壓范圍為0~10 V。由于系統(tǒng)對測溫參數(shù)性能要求很高,為了達到設(shè)計標(biāo)準(zhǔn),放大器采取對信號進行差值放大,差值放大的增益越高,儀器測溫輸出結(jié)果的分辨率和靈敏度就越高,這里把AD524的增益設(shè)定為100倍。把30℃溫度的測溫電壓值作為高性能基準(zhǔn)電壓源LM399的基準(zhǔn)電壓值Vr接到儀器放大器AD524的反相輸入端,作為測溫零刻度參考點(LM399的零漂和失調(diào)電壓均小于5 PPM/℃),儀器放大器同相端接實際現(xiàn)場測器輸入電壓變化為10 mV,輸出電壓變化為1 V;溫度每變化0.1℃,儀器放大器輸入電壓變化為1 mV,輸出電壓變化為100 mV;溫度每變化0.01℃,儀器放大器輸入電壓變化為0.1 mV,輸出電壓變化為10 mV。 

            作為一個高性能的計量儀器,對放大器增益的穩(wěn)定性、失調(diào)電壓、零漂和非線性失真等參數(shù)要求極高,不宜于選用一般精度的運放作為放大器,否則可能由于運放對信號放大這一環(huán)節(jié)帶來的誤差,使儀器的參數(shù)指標(biāo)性能下降,達不到計量標(biāo)準(zhǔn)。本儀器選用了高性能參數(shù)的AD524作為儀器放大器,AD524的零漂、失調(diào)電壓和非線性失真等參數(shù)指標(biāo)值極小,使AD524在放大信號過程中產(chǎn)生的誤差,在本儀器所要求性能參數(shù)的數(shù)量級上可忽略不計。 

                 2 V/F轉(zhuǎn)換 

            系統(tǒng)使用LM331作為V/F轉(zhuǎn)換器,把AD524輸出的0~10 V電壓,轉(zhuǎn)換成0~100 kHz頻率的脈沖信號,送入8051單片機的T0口。溫度數(shù)據(jù)與V/F轉(zhuǎn)換后的脈沖信號頻率成線性正比關(guān)系,溫度越高,儀器放大器輸出的電壓越高,V/F轉(zhuǎn)換器輸出的頻率值越高。溫度為0℃時,儀器放大器輸出的電壓為0 V,V/F轉(zhuǎn)換后的頻率值為0 kHz;溫度為40℃時,儀器放大器輸出的電壓為10 V,V/F轉(zhuǎn)換后的頻率值為100 kHz。用V/F轉(zhuǎn)換器實現(xiàn)A/D轉(zhuǎn)換,消除了轉(zhuǎn)換后的數(shù)據(jù)在送入單片機過程中的干擾,并且通過調(diào)整T1口的定時時間,改變T0口計數(shù)器接受脈沖的數(shù)量,可改變A/D轉(zhuǎn)換的位數(shù)。本系統(tǒng)把T1口的定時時間設(shè)定為100 ms,使V/F轉(zhuǎn)換器相當(dāng)于14 b的A/D轉(zhuǎn)換器。通過增大T1口的定時時間,提高了A/D轉(zhuǎn)換的位 數(shù),進而提高了系統(tǒng)測溫數(shù)據(jù)的精度和分辨率。為了更好地改善儀器性能,把定時時間T1增大n倍(n為正整數(shù)),將T0口接受的脈沖數(shù)據(jù)除以n,以實現(xiàn)軟件濾波。 

                  此外,本測試儀配有鍵盤輸入及液晶顯示模塊,使得儀器配置完善,用戶操作方便可靠。 

                 3 系統(tǒng)軟件 

            測溫系統(tǒng)軟件用MCS-51系列匯編語言編制。圖2是系統(tǒng)軟件的程序流程圖。
          4 結(jié) 語 

            實踐表明,基于上述思路構(gòu)建的測試系統(tǒng)是正確的、可行的,近半年的時間研制出了該儀器,并使其在以后的穩(wěn)定運行中滿足了設(shè)計要求。在系統(tǒng)允許一個探頭溫度數(shù)據(jù)時間為幾秒時,使用V/F轉(zhuǎn)換器,既可以降低儀器成本,又提高了系統(tǒng)性能。 

                   參考文獻 

          [1]何立民.單片機應(yīng)用系統(tǒng)設(shè)計——系統(tǒng)配置與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1990. 
          [2]李朝青.單片機原理與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2001.



          關(guān)鍵詞: 測量 測試

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();