【摘要】流量檢測(cè)在工業(yè)、農(nóng)業(yè)、化工、醫(yī)療乃至生活中都有涉及,本文基于C語(yǔ)言和單片機(jī)設(shè)計(jì)了一個(gè)能夠精確測(cè)量液體流量的檢測(cè)系統(tǒng)。重點(diǎn)對(duì)整個(gè)系統(tǒng)的軟件部分的設(shè)計(jì)進(jìn)行了詳細(xì)分析和論述。
【關(guān)鍵詞】流量檢測(cè);C語(yǔ)言;軟件系統(tǒng)
流量是現(xiàn)代工業(yè)生產(chǎn)過(guò)程自動(dòng)化中,重要的過(guò)程參數(shù)之一。如何實(shí)現(xiàn)對(duì)工業(yè)生產(chǎn)過(guò)程中管道內(nèi)的流體進(jìn)行精確測(cè)量和控制,是一個(gè)重要的課題。隨著傳感器技術(shù)及信息技術(shù)的發(fā)展,使得對(duì)流體流量的檢測(cè)成為可能。
1.總體設(shè)計(jì)方案
系統(tǒng)主要包括硬件和軟件系統(tǒng)兩部分。硬件系統(tǒng)主要由最小控制系統(tǒng)、流量檢測(cè)電路模塊、LCD1602液晶顯示模塊和按鍵電路四部分組成。當(dāng)有流體流過(guò)時(shí),流體流量傳感器實(shí)時(shí)采集水流量狀態(tài),并將采集的信息傳給單片機(jī)。
軟件系統(tǒng)則負(fù)責(zé)對(duì)流量傳感器的輸出數(shù)據(jù)的處理,及各類(lèi)操作的流程控制以及相關(guān)數(shù)據(jù)的處理、換算與顯示。
2.硬件系統(tǒng)的設(shè)計(jì)
硬件系統(tǒng)中最小控制系統(tǒng)以及顯示按鍵電路的設(shè)計(jì)都非常成熟,這里主要對(duì)流量測(cè)量電路的設(shè)計(jì)進(jìn)行分析。
通常所說(shuō)的流量是指單位時(shí)間內(nèi)通過(guò)管道橫截面的流體的數(shù)量,即瞬時(shí)流量。通過(guò)水流量傳感器的數(shù)據(jù)采集,并根據(jù)商家的水流量傳感器的參數(shù)可以得出流量的換算關(guān)系,從而在單片機(jī)中通過(guò)軟件完成數(shù)據(jù)的運(yùn)算和轉(zhuǎn)換。
目前常用的流量傳感器的一般都是渦輪式,其工作原理是:當(dāng)傳感器內(nèi)有流體流過(guò)時(shí),傳感器內(nèi)的渦輪葉片就會(huì)受到流體的沖擊,產(chǎn)生正比于流速的轉(zhuǎn)動(dòng),其轉(zhuǎn)動(dòng)會(huì)使得對(duì)應(yīng)的磁芯產(chǎn)生周期性的矩形脈沖信號(hào),顯然脈沖的個(gè)數(shù)是正比于流體速度的。通過(guò)軟件對(duì)脈沖數(shù)量的統(tǒng)計(jì),然后結(jié)合具體型號(hào)傳感器對(duì)不同流體及流速下的脈沖數(shù)據(jù)修正值,通過(guò)軟件上面進(jìn)行對(duì)應(yīng)的數(shù)據(jù)處理,就可以實(shí)現(xiàn)精確的測(cè)量。
圖1 總流程圖
3.軟件系統(tǒng)設(shè)計(jì)
軟件的設(shè)計(jì)采用了移植性好、編程方便的C語(yǔ)言來(lái)實(shí)現(xiàn)。軟件都是在函數(shù)化的設(shè)計(jì)理念下完成的。整個(gè)軟件系統(tǒng)包括流量檢測(cè)程序、流量開(kāi)關(guān)控制程序、顯示程序等。程序的整體設(shè)計(jì)流程圖如圖1所示。
3.1 主程序的設(shè)計(jì)
主程序主要通過(guò)對(duì)各功能子函數(shù)的調(diào)用來(lái)實(shí)現(xiàn)整個(gè)系統(tǒng)的協(xié)調(diào)運(yùn)作。主程序的部分代碼如下:
void main()
{ lcd_init();
while(1) { liuliang();
if(kai==0) display1(); " //判斷界面開(kāi)關(guān)是否按下,按下則顯示第一界面
else{ display2();}}} //顯示第二頁(yè)界面
其中l(wèi)cd_init()函數(shù)為液晶顯示子程序,其程序設(shè)計(jì)方面已經(jīng)非常成熟,這里不多做說(shuō)明;liuliang()函數(shù)為水流量的測(cè)量函數(shù),后面有進(jìn)行詳細(xì)介紹;整個(gè)程序在while(1)構(gòu)成的死循環(huán)的控制下反復(fù)的進(jìn)行流量的檢測(cè)和實(shí)時(shí)顯示。
3.2 水流量檢測(cè)程序的設(shè)計(jì)
水流量的測(cè)量主要依靠對(duì)傳感器傳出的脈沖數(shù)的處理來(lái)實(shí)現(xiàn),由流量傳感器在一段時(shí)間下產(chǎn)生高電平的個(gè)數(shù)決定,即Q(流量)=F(頻率)/R(商家設(shè)定值),所以只要在軟件設(shè)計(jì)過(guò)程中,設(shè)定在一定時(shí)間內(nèi),計(jì)算出相應(yīng)的脈沖的個(gè)數(shù)即可。在本程序中,將AT89S51中的的定時(shí)器T0設(shè)置為計(jì)數(shù)器,T1則用作定時(shí)計(jì)計(jì)時(shí)用,從而對(duì)流量進(jìn)行測(cè)量。
(1)流量的讀取程序
中斷程序運(yùn)行的時(shí)間到,就可以讀取計(jì)數(shù)器中的數(shù)值,將傳感器輸出的脈沖數(shù)值讀出后把計(jì)數(shù)器賦值為0,等待下一次的取出,然后進(jìn)入對(duì)讀出數(shù)據(jù)的處理程序。程序流程圖如圖2所示。
圖2 流量測(cè)量流程圖
核心的程序設(shè)計(jì)代碼如下:
void liuliang()
{ "while(dgt;=2)
{ d=0; "b=TH0*256+TL0; "http://讀取頻率
TH0=0x00; TL0=0x00; g=0; } //時(shí)間標(biāo)志位
loop();} "http://調(diào)用流量計(jì)算程序與數(shù)據(jù)轉(zhuǎn)換程序
(2)流量數(shù)據(jù)的處理程序
在預(yù)設(shè)的時(shí)間到了后,取出定時(shí)器的數(shù)值后。為了能夠最大限度的統(tǒng)計(jì)流量,程序當(dāng)中選擇了用1個(gè)整形變量int和一個(gè)long int變量共同來(lái)完成對(duì)流量數(shù)據(jù)的存儲(chǔ),其中整形變量存儲(chǔ)低3位數(shù)據(jù),長(zhǎng)整形變量存儲(chǔ)流體流量的高6位。核心的程序代碼如下:
void loop ()
{uint "zong1;
if(g==0) "http://判斷時(shí)間是否到
{zong=(b/100.0)+zong; } //得出總流量的后三位
g=1; //將標(biāo)志為為1
if(zonggt;=1000) //判斷總流量后三位是否大于1000
{a++; zong=0; } "http://總流量前六位加1,后三位清零
zong1=(int)zong ; //總流量后三位轉(zhuǎn)換為整形
n9=a/100000; " " "http://總流量9位全部分配
n8=a%100000/10000; n7=a%10000/1000;
n6=a%1000/100; n5=a%100/10;
n4=a%10; n3=zong1%1000/100;
n2=zong1%100/10; n1=zong1%10; }
4.結(jié)論
本文基于C語(yǔ)言重點(diǎn)對(duì)流量檢測(cè)系統(tǒng)的軟件部分進(jìn)行了詳細(xì)的分析和設(shè)計(jì),實(shí)現(xiàn)了對(duì)流體流量的自動(dòng)化、精確化測(cè)量。
參考文獻(xiàn)
[1]張菁.基于單片機(jī)溫度控制系統(tǒng)方案的研究[J].上海交通大學(xué)學(xué)報(bào),2007.
[2]樓然苗.51系列單片機(jī)設(shè)計(jì)實(shí)例[M].北京:北京航空航天大學(xué)出版社,2003.