朱葉


摘 要: 數(shù)字氣壓計(jì)是一種精確測量壓力大小的工具,運(yùn)用單片機(jī)的數(shù)字氣壓計(jì)攜帶方便,操作簡單,精確度高,安全性好,具有良好的應(yīng)用前景。對基于單片機(jī)控制的數(shù)字氣壓計(jì)進(jìn)行詳細(xì)介紹,分析氣壓計(jì)的總體結(jié)構(gòu),介紹氣壓計(jì)的軟硬件實(shí)現(xiàn)方法和數(shù)字氣壓計(jì)系統(tǒng)的調(diào)試與仿真,保障數(shù)字氣壓計(jì)系統(tǒng)功能的可靠性和穩(wěn)定性。
關(guān)鍵詞: 數(shù)字氣壓計(jì); 軟件實(shí)現(xiàn)方法; 硬件實(shí)現(xiàn)方法; 結(jié)構(gòu)分析
中圖分類號: TN43?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2015)16?0100?03
Design of digital barometer controlled by single chip microcomputer
ZHU Ye
(Xian Railway Vocational and Technical Institute, Xian 710014, China)
Abstract: Digital barometer is an accurate pressure measurement tool. The digital barometer with microcontroller is convenient to be carried, and has simple operation, high accuracy, good safety and good application prospect. The digital barometer controlled on single chip microcomputer is introduced in detail. The overall structure of the barometer is analyzed. then introduce The method to realize software and hardware of the barometer is described. The debugging and simulation methods of digital barometer system elaborated to guarantee the reliability and stability of digital barometer function.
Keywords: digital barometer; software realization method; hardware realization method; structural analysis\
0 引 言
氣壓計(jì)是一種運(yùn)用壓敏元件將待測氣壓轉(zhuǎn)化成易被檢測和傳輸?shù)碾妷弘娏餍盘枺ㄟ^后續(xù)電路處理將數(shù)據(jù)顯示出來的一種測量工具。氣壓計(jì)的核心器件是氣壓傳感器,其在監(jiān)測壓力大小、控制壓力變化和對其他物理數(shù)量測量多個(gè)方面都有十分重要的作用。氣壓計(jì)通過不同高度時(shí)的氣壓變化獲取氣壓數(shù)值。根據(jù)氣象學(xué)規(guī)定,作用于單位面積上空空氣柱的重量被稱為大氣壓力。根據(jù)氣象學(xué)研究,垂直方向上氣壓隨著海拔高度的上升而下降。在近地地區(qū),每上升100 m氣壓降低10 hPa,在距地面5~6 km的空中每上升100 m高度氣壓降低7 hPa;在距地面9~10 km的高空中每上升100 m氣壓降低5 hPa。當(dāng)空氣中有下降氣流的時(shí)候氣壓會增加,反之會減小。
數(shù)字氣壓計(jì)廣泛應(yīng)用于工礦企業(yè)、電子產(chǎn)品和戶外作業(yè)之中,經(jīng)過長時(shí)間的發(fā)展其精確度越來越高,功能更加多樣化,逐步向智能化、多功能化方向發(fā)展,筆者認(rèn)為基于單片機(jī)控制的數(shù)字氣壓計(jì)發(fā)展前景很好。
1 氣壓計(jì)的總體結(jié)構(gòu)分析
本文介紹的數(shù)字氣壓計(jì)采用集成的單片機(jī)控制,測量時(shí)待測氣壓被氣壓傳感器轉(zhuǎn)換成可檢測的電壓輸出,通過V/F轉(zhuǎn)化器將氣壓傳感器輸出的電壓信號轉(zhuǎn)化成有特定頻率的脈沖信號,單片機(jī)接收脈沖信號,根據(jù)其單位時(shí)間內(nèi)接收的脈沖數(shù)和電壓頻率的線性關(guān)系式計(jì)算出相應(yīng)的氣壓值,最后氣壓值顯示在LED屏幕上。
在這個(gè)流程中有以下3點(diǎn)需要注意:根據(jù)實(shí)際需求和氣壓傳感器的具體參數(shù)選擇合適的氣壓傳感器芯片;選擇合適的V/F轉(zhuǎn)換器,確保氣壓傳感器輸出的模擬電壓電流信號轉(zhuǎn)換成能被識別的數(shù)字信號;設(shè)計(jì)合理的單片機(jī)與各模塊的接口電路。數(shù)字氣壓計(jì)測量出的氣壓值是在氣壓傳感器的線性范圍內(nèi)的絕對氣壓值。
2 數(shù)字氣壓計(jì)的硬件實(shí)現(xiàn)
數(shù)字氣壓計(jì)的硬件構(gòu)建需要考慮其穩(wěn)定性、復(fù)雜性、制造成本、維護(hù)成本等多種因素。本節(jié)要對數(shù)字氣壓計(jì)的硬件設(shè)施的組成進(jìn)行介紹,建立一套穩(wěn)定的、系統(tǒng)的硬件設(shè)施。
2.1 氣壓傳感器
氣壓傳感器在整個(gè)氣壓計(jì)結(jié)構(gòu)中處于核心地位,其選擇需要考慮測量精度、測量范圍、溫度變化、絕對氣壓值等因素。數(shù)字氣壓計(jì)測量的是絕對氣壓值,因此需要能測量絕對氣壓值的氣壓傳感器;為了簡化電路設(shè)計(jì),提高氣壓計(jì)的穩(wěn)定性和抗干擾能力,還需要?dú)鈮簜鞲衅骶哂袦囟妊a(bǔ)償。
根據(jù)上述要求,在本數(shù)字氣壓計(jì)中選擇Motorda的MAX4100A型氣壓傳感器。這種氣壓傳感器的溫度補(bǔ)償范圍為-40~125 ℃,承壓范圍為20~1 050 kPa,在這個(gè)壓力范圍內(nèi)有良好的線性,電壓輸出信號范圍為0.3~4.65 V。本氣壓傳感器可以用于測量絕對氣壓值,其輸出關(guān)系具體如下:
Vout=Vs(0.010 59P-0.152 8)±Error
式中:Vs是工作電壓;P是大氣壓值;Vout為輸出電壓。
2.2 V/F轉(zhuǎn)換
待測氣壓被氣壓傳感器測出的是電壓電流信號,但是其不能被單片機(jī)識別,這時(shí)候就需要V/F器件把輸入進(jìn)來的電壓值轉(zhuǎn)換成可被單片機(jī)識別的脈沖串。雖然V/F器件本身不是量化器,但是定時(shí)器和計(jì)數(shù)器的存在可以實(shí)現(xiàn)A/D的轉(zhuǎn)換,將模擬電壓信號轉(zhuǎn)化成抗干擾能力強(qiáng)、可實(shí)現(xiàn)遠(yuǎn)距離傳輸、可直接輸入計(jì)算機(jī)的脈沖串。endprint
本文根據(jù)外圍電路相關(guān)性能標(biāo)準(zhǔn)和實(shí)現(xiàn)的難易程度選取LM331電壓/脈沖轉(zhuǎn)換芯片,這種器件采用的是溫度補(bǔ)償能隙基準(zhǔn)電路,溫漂最大能達(dá)到50 ppm/℃,溫度穩(wěn)定性非常好,而且這種器件輸出的脈沖串兼容性好,可以和任何邏輯形式兼容;LM331可以使用單雙電源供電,電壓允許范圍為5~40 V,最大非線性誤差為0.01%。LM331的壓頻轉(zhuǎn)化關(guān)系為:
fo=KVi
其中,K=[Rs2.09RtCtRL],Rs=Rs1+Rs。
圖1為LM331外圍電路連接圖。
圖1 LM331外圍電路連接圖
其中R的作用是調(diào)節(jié)電路的轉(zhuǎn)換增益,K的值由設(shè)計(jì)者根據(jù)具體情況具體設(shè)定。考慮到單片機(jī)要使用測頻率法測量fo,為保證頻率信號的測量精度,在LM331中K=2 000,Rs=28.424 kΩ。對于不同元件的參數(shù)有著不同的要求,設(shè)計(jì)者要根據(jù)數(shù)字氣壓計(jì)的實(shí)際使用需求來選擇元件的參數(shù)和測量精度。需要注意的是在選擇V/F器件時(shí)要選取漏電流小的電容器,使用低通濾波器減小輸出電壓中的干擾脈沖,提高數(shù)據(jù)精度。
2.3 單片機(jī)
在本設(shè)計(jì)中,氣壓計(jì)需要單片機(jī)的P1口和P3口的一部分和中斷源、定時(shí)器、計(jì)數(shù)器各一個(gè)。因此在本設(shè)計(jì)中選取AT89S52控制器,該控制器具有低功耗、高性能的優(yōu)點(diǎn),具有8 KB的FLASH和可編程的存儲器。AT89S52控制器是Atmel公司生產(chǎn)的高密度非易失性存儲器,與其他模塊可以完全兼容。AT89S52具有以下的性能標(biāo)準(zhǔn):8 KB FLASH,256 B RAM,32位的I/O口線,具有2個(gè)數(shù)據(jù)指針、3個(gè)16位計(jì)數(shù)器、1個(gè)看門狗定時(shí)器、1個(gè)6向量2級中斷結(jié)構(gòu)、片內(nèi)晶振和時(shí)鐘電路。除此之外,AT89S52支持兩種軟件工作模式,可以降到靜態(tài)邏輯操作模式以節(jié)省電量。在空閑模式下,CPU工作停止,RAM、計(jì)數(shù)器、定時(shí)器可以保持工作;當(dāng)發(fā)生掉電現(xiàn)象時(shí),RAM的內(nèi)容被自動保存下來,單片機(jī)內(nèi)一切運(yùn)轉(zhuǎn)終止,防止意外的發(fā)生。
該單片機(jī)有40條引腳,按照功能來分可分為電源和時(shí)鐘引腳、控制引腳、輸入和輸出引腳,其中P1口和P3口對應(yīng)的輸入和輸出引腳在整個(gè)單片機(jī)結(jié)構(gòu)中處于核心地位。P1口是一組8位準(zhǔn)雙向I/O口,內(nèi)部有上拉電阻,將上拉電阻拉到高電平,P1口就具有輸入口的功能;P3口是一組8位雙向I/O口,內(nèi)部有上拉電阻,其輸出緩沖級可以驅(qū)動4個(gè)TTL邏輯門電路,將上拉電阻拉到高電平,P3口就具有輸入口的功能。不僅如此,P3口還承擔(dān)著許多第二功能。AT89S52控制器可以直接對LED顯示屏輸出數(shù)據(jù),還有可編程的串行通信口,具有體積小、價(jià)格低、耗能低、性能高等優(yōu)點(diǎn)。
2.4 LED顯示
每一個(gè)LED都是由7段發(fā)光二極管組成的顯示單位,其具有10個(gè)引腳,分別對應(yīng)發(fā)光二極管的7個(gè)段、1個(gè)小數(shù)點(diǎn)和2個(gè)公共端。發(fā)光二極管有共陽極接法和共陰極接法2種,本設(shè)計(jì)需要4個(gè)LED組成一個(gè)顯示單元,并采用動態(tài)顯示的方式。由于同時(shí)使用4個(gè)單個(gè)LED構(gòu)成顯示單元的連線比較復(fù)雜,而且給單片機(jī)的端口驅(qū)動帶來很大壓力,這就需要加裝專門的驅(qū)動芯片。由于4個(gè)LED是連體的,所以可以使用共陽極接法,這樣的顯示單元具有12個(gè)引腳、7個(gè)發(fā)光二極管段、4個(gè)公共端,再加裝1個(gè)三極管驅(qū)動電路可以提高數(shù)碼管的亮度。圖2為本設(shè)計(jì)中的LED顯示單元電路圖。
圖2 LED顯示單元電路圖
根據(jù)顯示單元的電路圖可以看出電阻R和Ra太大或太小都會使LED正常顯示,所以需要選擇適合的電阻以保障LED的亮度。考慮到印制板布線的便捷,可以選擇貼片電阻和排阻的形式節(jié)省版布線的空間。
3 數(shù)字氣壓計(jì)的軟件實(shí)現(xiàn)
對于單片機(jī)來說,其輸入信號是具有一定頻率的脈沖序列,單片機(jī)的計(jì)數(shù)器可以獲取脈沖序列的頻率并將其換算成具體的氣壓值。所以本節(jié)將著重介紹單片機(jī)的軟件設(shè)計(jì),分析其中的計(jì)算原理。基于單片機(jī)的數(shù)字氣壓計(jì)的程序流程設(shè)計(jì)圖如圖3所示。
圖3 程序流程設(shè)計(jì)圖
具體的信號轉(zhuǎn)換過程如下:
首先,待測氣壓被氣壓傳感器轉(zhuǎn)換成電壓輸出,根據(jù)氣壓傳感器的資料可知,輸出電壓Vout和氣壓P存在如下關(guān)系:
Vout=VCC(0.01P-0.09)
由于VCC是+5 V,所以上式可以轉(zhuǎn)化為:
Vout=5×(0.01P-0.09)
然后氣壓傳感器輸出的電壓Vout作為V/F的輸入電壓Vin轉(zhuǎn)換成具體一定頻率的脈沖序列fo,而這二者又存在fo=KVin的關(guān)系。根據(jù)Vout=Vin的關(guān)系可以得出:
[P=fo5K+0.090.01=20foK+9]
式中K為V/F轉(zhuǎn)換增益,K=2 000,根據(jù)上式可以將脈沖序列的頻率換算成氣壓值。
本設(shè)計(jì)的軟件程序設(shè)計(jì)采用C語言編程。C語言是一種編譯型的結(jié)構(gòu)化程序設(shè)計(jì)語言,其語法結(jié)構(gòu)簡單,處理功能強(qiáng)大,有編譯效率高、可讀性強(qiáng)、運(yùn)行速度高等多方面優(yōu)點(diǎn),可以讓編程者實(shí)現(xiàn)對系統(tǒng)硬件的直接操作。運(yùn)用C語言編寫數(shù)字氣壓計(jì)的系統(tǒng)軟件,可以大大縮短單片機(jī)的研發(fā)周期,增強(qiáng)軟件的可讀性,也便于對軟件內(nèi)容進(jìn)行改進(jìn)和變更,有利于應(yīng)用系統(tǒng)的大規(guī)模開發(fā)和高效率的利用。其具體的代碼為:
void spi_proc(void)
{unsigned int xdata c1,c2,c3,c4,c5,c6; long xdata utmp;
float xdata dt,temp,off,sens,x,p;
float xdata temp2,p2;
c1=(w1 >> 1) & 0x7FFF;
c2=((w3 << 6) & 0x0FC0)+(w4 & 0x003F);
c3=((w4 >> 6) & 0x03FF);
c4=((w3 >> 6) & 0x03FF);
c5=((w1 << 10)& 0x0400) +((w2>>6)&0x03FF);
c6=(w2 & 0x003F);
utmp=8*c5+20224;
dt=(float)(d2-utmp);
temp=200+dt*(c6+50)/1024;
off=c2*4+((c4-512)*dt)/4096;
sens=c1+(c3*dt)/1024+24576;
x=(sens*(d1-7168))/16384?off;
p=x*10/32+2500;
if(temp>450)
{temp2=3*(c6+24)*(450-temp)*(450-temp)/1048576; p2=temp2*(p-10000)/8192; }
else if(temp<200)
{temp2=11*(c6+24)*(200-temp)* (200-temp)/1048576; p2=3*temp2*(p-3500)/16384; }
else
{temp2=0; p2=0; }
temp=temp-temp2;
p=p-p2; }
4 系統(tǒng)的調(diào)試與仿真
為保障本文設(shè)計(jì)的數(shù)字氣壓計(jì)的可靠性和穩(wěn)定性,還需要對整體系統(tǒng)進(jìn)行調(diào)試與仿真。使用Keil軟件和Proteus軟件相結(jié)合進(jìn)行仿真。使用Proteus軟件對系統(tǒng)的總體執(zhí)行效果進(jìn)行調(diào)試,主要調(diào)試單片機(jī)的電源供應(yīng)和電路復(fù)位。單片機(jī)的電源電路、復(fù)位電路和晶振電路是單片機(jī)乃至整個(gè)數(shù)字氣壓計(jì)正常運(yùn)轉(zhuǎn)的基礎(chǔ),要首先保證這幾部分的正常工作。在調(diào)試中,單片機(jī)時(shí)鐘的頻率保持在11.059 2 MHz上。然后是應(yīng)用Proteus軟件對電氣規(guī)則功能進(jìn)行檢查,檢測其連接是否正確并得出檢查報(bào)告,一旦發(fā)現(xiàn)原理圖中存在錯(cuò)誤要立刻根據(jù)錯(cuò)誤點(diǎn)進(jìn)行改正。在原理圖的連接沒有問題時(shí),再進(jìn)行器件連接調(diào)試,對電路中所有器件的名字、參數(shù)、器件之間的連接網(wǎng)絡(luò)進(jìn)行全面檢查,確認(rèn)每一個(gè)器件的正確和之間關(guān)系的合理。之后對PCB圖進(jìn)行檢查,檢查PCB設(shè)計(jì)、PCB電氣特性和物理特性、印制板和導(dǎo)線圖形檢查。最后對整個(gè)程序進(jìn)行調(diào)試和仿真。
5 結(jié) 語
本文對基于單片機(jī)的數(shù)字氣壓計(jì)進(jìn)行分析,在硬件設(shè)施上,需要選擇合適的氣壓傳感器、V/F轉(zhuǎn)換器、單片機(jī)和LED顯示,設(shè)計(jì)合理的硬件電路,并通過C語言編譯出能將脈沖序列的的頻率轉(zhuǎn)換為可讀取的氣壓值信號。使用V/F變換信號和編程克服了測量中穩(wěn)定性差、精確度低的缺點(diǎn),為設(shè)計(jì)出功能易于擴(kuò)展、可靠而又穩(wěn)定的數(shù)字氣壓計(jì)提供了一種全新的思路。
參考文獻(xiàn)
[1] 曹萬丹.基于AVR的智能數(shù)字氣壓計(jì)的優(yōu)化設(shè)計(jì)[D].武漢:武漢科技大學(xué),2009.
[2] 沈紹祥,胡愛華.基于單片機(jī)控制的數(shù)字氣壓計(jì)設(shè)計(jì)與實(shí)現(xiàn)[J].國外電子元器件,2004(7):66?69.
[3] 田海燕,賴春強(qiáng),賀思橋.基于MS5534C的數(shù)字氣壓計(jì)設(shè)計(jì)[J]. 兵工自動化,2012(9):86?88.
[4] 楊智.低功耗數(shù)字氣壓計(jì)的設(shè)計(jì)[J].沈陽航空工業(yè)學(xué)院學(xué)報(bào),2007(3):72?73.
[5] 孫艷玲,劉亞麗.基于MPX4105芯片的數(shù)字氣壓計(jì)設(shè)計(jì)[J].中國儀器儀表,2007(11):62?65.
[6] 方劉海,文繼國.基于BMP085的精密數(shù)字氣壓計(jì)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2014(24):69?71.endprint