[導(dǎo)讀] 為實時監(jiān)測流體的流速和流量,給出了以單片機為核心的智能渦輪流量計設(shè)計方案,進行了該流量計的硬件設(shè)計和軟件流程設(shè)計.測試結(jié)果表明,該流量計適用于各種復(fù)雜環(huán)境,能夠準確實現(xiàn)測量目的。
1 系統(tǒng)概述
智能渦輪流量計系統(tǒng)結(jié)構(gòu)如圖1所示,包括傳感器、信號處理電路、AT89C2051單片機、LCD顯示電路、數(shù)據(jù)存儲電路和電源。信號處理電路通過放大器用于對待測信號進行放大;通過單片機設(shè)置能夠?qū)?nèi)部定時器T0的工作進行控制,這樣能精確地測出加到T1引腳的單位時間內(nèi)的脈沖個數(shù);流速和流量顯示部分采用串口LCD顯示模塊,所得的數(shù)據(jù)采用I2C總線,并通過EEPROM來存儲,節(jié)省了所需單片機的口線和外圍器件,同時也簡化了顯示部分的軟件編程。
該設(shè)計能實時將所測的流量速度顯示出來,同時也能夠累計顯示累計流量和分段流量。渦輪流量計能將傳感器輸入到單片機的脈沖信號的個數(shù)(傳感器將渦輪葉片轉(zhuǎn)過的個數(shù)轉(zhuǎn)變成相應(yīng)的脈沖信號的個數(shù))實時地測量出來,然后通過單片機計算出流速和流量,再將所得的數(shù)據(jù)存儲到串口數(shù)據(jù)存儲器,并由串口液晶顯示模塊實時顯示出所測流速或流量。該設(shè)計用一個按鍵來控制顯示即時流速或累計流量或分段流量.考慮到信號的衰減、強弱等影響,在信號送入單片機前應(yīng)對其進行放大,然后再輸入到單片機進行計算。
單片機利用定時器T1的計數(shù)功能測出輸入信號的個數(shù)后,再利用單片機的算術(shù)運算功能將個數(shù)轉(zhuǎn)換成速度,同時每秒進行一次流量累計,從而計算出累計流量。最后將得出的流速、分段流量值和累計流量值存儲在E2PROM中,并根據(jù)按鍵的按下情況來顯示流速或流量。為了方便計算要顯示數(shù)據(jù)值的段碼,可以通過查表的方式將要顯示的數(shù)據(jù)值中每一位的BCD碼轉(zhuǎn)換成8段碼送到顯示緩沖區(qū),最后經(jīng)串口送至液晶顯示模塊以顯示所測的流速或流量。速和流量值采用8位顯示,流量用1個小數(shù)位,流速用2個小數(shù)位。
2 統(tǒng)硬件設(shè)計
選用AT89C2051作為信號處理核心。T89C2051包含2kB的可重擦寫閃存、128字節(jié)的內(nèi)部RAM、15個可編程的I/O口線、2個16位定時/計數(shù)器、1個5向量兩級中斷結(jié)構(gòu)和1個全雙工的串行通信口,同時支持2種軟件可選的節(jié)電工作模式[1-2]。設(shè)計中用到了AT89C2051的T0,T1定時器,以及P1端口的8個口線。于該單片機與89C51相兼容,因此在硬件電路設(shè)計和軟件編程方面更加方便。由于AT89C2051本身固有的特點,設(shè)計時應(yīng)考慮到:首先,它的程序存儲器空間為2kB,因此所有的跳轉(zhuǎn)和分支轉(zhuǎn)移指令都要限制在這個范圍內(nèi)。其次,它沒有MOVX指令,不支持外部存儲器操作。此外,AT89C2051自身還有一些其他特點,譬如可以使用命令使其工作在低功耗模式等。
電路采用液晶顯示模塊LCM0825,該模塊與單片機的接口電路如圖2所示。
LCM0825是8位段碼式液晶顯示模塊,它內(nèi)部集成有LCD控制器、LCD驅(qū)動器和RAM,因而可方便顯示數(shù)據(jù)的編程。液晶顯示模塊采用3~4線串行數(shù)據(jù)輸入,可直接與單片機接口。由于串行接口方式節(jié)省了所需的口線和系統(tǒng)資源,因而使系統(tǒng)具有較高的資源利用率。該模塊可在2.7~5.2V電壓下工作,其低功耗及背光可調(diào)特性使得設(shè)計更具有經(jīng)濟性和通用性。LCM0825能夠顯示8位數(shù)據(jù),每一個數(shù)據(jù)均以8段碼的形式放在其內(nèi)部顯示RAM區(qū),并用模塊內(nèi)RAM的2個存儲地址來放置一個數(shù)據(jù)的8段碼。8位數(shù)據(jù)共占用內(nèi)部16個地址[3]。每一個數(shù)據(jù)位的8段碼存放形式及高低地址存放段碼的順序都和表1所列的第8位數(shù)據(jù)的8段碼存放格式一樣,只是段碼的存放地址不同。因此,編程時應(yīng)考慮數(shù)據(jù)的存放地址和形式.在使用該液晶顯示模塊時,VCC與VLCD之間可用一個50kΩ的電位器來調(diào)整背光。
數(shù)據(jù)存儲電路采用I2C總線的E2PROM存儲器CAT24WC04.CAT24WC04是串行的E2PROM存儲器,其存儲容量為4kB,SCL為時鐘線,SDA為數(shù)據(jù)線。流量數(shù)據(jù)保存在CAT24WC04,因此可保證掉電時數(shù)據(jù)不丟失。
3 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件采用模塊化設(shè)計方法。整個系統(tǒng)由系統(tǒng)初始化模塊、信號處理模塊、定時器中斷模塊、流量和流速計算和存儲模塊、顯示數(shù)據(jù)處理模塊、數(shù)據(jù)顯示模塊以及其他功能模塊組成,其軟件結(jié)構(gòu)如圖3所示。上電后,首先進入系統(tǒng)初始化模塊,此后系統(tǒng)軟件將開始運行,以實時地將所測數(shù)值顯示在液晶模塊上。
圖3 系統(tǒng)軟件結(jié)構(gòu)框圖
3.1 數(shù)據(jù)處理過程
待測信號經(jīng)信號處理電路后加至單片機的P3.5(T1)引腳可為單片機測量信號數(shù)量提供有效的輸入信號。單片機通過T0定時器來決定測量數(shù)量的時間。測量時,首先將零賦給TH1,TL1兩個寄存器,將計數(shù)器T1的運行控制位TR1置位,同時也將ET1置位以允許計數(shù)器T1中斷。一旦出現(xiàn)低電平,則立即復(fù)位TR1以終止計數(shù)器,以結(jié)束計數(shù)程序。根據(jù)信號的數(shù)量和渦輪流量計的參數(shù)即可計算出此時的流速。
每秒進行一次流量數(shù)累加,用當前的速度值加上一秒前的流量數(shù)即可得出當前的總流量值,得出的流速和流量值放到E2PROM中,通過鍵盤顯示鍵可顯示流速或流量值。要顯示的流速或流量放到R1,R2,R3三個寄存器后即可調(diào)用轉(zhuǎn)換BCD代碼模塊,以將數(shù)據(jù)值顯示處理。數(shù)據(jù)轉(zhuǎn)變成相應(yīng)的BCD代碼后,可調(diào)用顯示消多余零和顯示數(shù)據(jù)存儲模塊,并將要顯示的數(shù)據(jù)通過查表轉(zhuǎn)換成相應(yīng)數(shù)據(jù)的8段碼放到顯示緩沖區(qū)以備顯示。編程時要把十進制數(shù)據(jù)的相應(yīng)8段碼放在表格中,以便通過查表而得到相應(yīng)數(shù)值的段碼。此過程的另一個重要目的是消除最高有效位前面的多余零,使多余零的段碼處于不顯示狀態(tài),從而保證數(shù)據(jù)以正常的格式顯示出來。最后,將顯示緩沖區(qū)的8位8段碼經(jīng)串口送至液晶顯示模塊進行顯示。
3.2 液晶顯示模塊的初始化
LCM0825是串行8位8段液晶顯示模塊。使用時,要在上電后對該模塊進行初始化.在初始化之前,應(yīng)延時200ms以上再送命令。初始化工作過程如下:首先定義液晶模塊(當其命令代碼為:00101001),其次定義振蕩器方式(當其命令代碼為00011000時,將模塊定義為內(nèi)部RC振蕩方式,命令代碼為00010100時,定義為外部晶體振蕩方式)。然后分別用命令代碼00000001和00000011開振蕩器和開顯示器。命令送入后,便可以在需要顯示數(shù)據(jù)時將相應(yīng)的段碼直接送入模塊內(nèi)部的顯示RAM中。在送顯示數(shù)據(jù)的段碼數(shù)據(jù)時,要考慮到顯示RAM的高和低地址所對應(yīng)的數(shù)據(jù)段碼的存放形式。其第8位數(shù)據(jù)的段碼與LCM0825內(nèi)部的RAM地址的對應(yīng)關(guān)系見表1。以后隨地址的增加依次存放第7位至第1位數(shù)據(jù)段碼。為了正確地顯示數(shù)據(jù),應(yīng)使要顯示的8位字符在顯示屏幕中為左起第1位,右止第8位。
另外,由于命令格式及時序不同,寫命令和寫數(shù)據(jù)程序應(yīng)分別編寫。編寫傳輸子程序時,所傳數(shù)據(jù)的高位先移入模塊,否則模塊不能正常工作或顯示。同樣,為了能正確讀/寫命令或數(shù)據(jù),必須在時序中加入相應(yīng)的延時;此外,為保證系統(tǒng)的低功耗,每次讀/寫命令或數(shù)據(jù)之后,都應(yīng)將CS,RD,WR,DATA引腳置高電平。
4 結(jié)語
基于單片機的智能渦輪流量計的設(shè)計方案中因使用了串口LCD顯示模塊和EEPROM儲存器,不僅節(jié)省了硬件資源,提高了系統(tǒng)性價比,又保證了系統(tǒng)測量精度和實時性,具有很好的應(yīng)用價值。
參考文獻
[1]何立民.單片機應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,1990.
[2]李群芳,肖看.單片機原理、接口及應(yīng)用:嵌入式系統(tǒng)技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社,2005.