《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > AT89C52單片機(jī)的液位檢測(cè)系統(tǒng)
AT89C52單片機(jī)的液位檢測(cè)系統(tǒng)
摘要: 介紹了基于AT89C52單片機(jī)的液位檢測(cè)的基本原理,硬、軟件設(shè)計(jì)及實(shí)現(xiàn)方法。通過(guò)測(cè)試表明,該檢測(cè)系統(tǒng)具有工作性能穩(wěn)定可靠、測(cè)量精度高和控制效果好等特點(diǎn)。
Abstract:
Key words :

  隨著現(xiàn)代測(cè)量技術(shù)的發(fā)展,對(duì)測(cè)量系統(tǒng)提出了越來(lái)越高的要求。在自動(dòng)蒸餾測(cè)控系統(tǒng)中,準(zhǔn)確及時(shí)地檢測(cè)出蒸餾過(guò)程中從冷凝管餾出的第一滴液滴是獲取初餾點(diǎn)的前提;實(shí)時(shí)、準(zhǔn)確地測(cè)量出量筒中回收液體體積的變化是控制蒸餾過(guò)程中不同時(shí)段不同蒸餾速度的依據(jù)。而目前擔(dān)負(fù)著對(duì)冷凝管餾出的液滴進(jìn)行檢測(cè)、回收、計(jì)量、測(cè)速等任務(wù)的完成有諸多不盡人意的地方,需要更加完善、合理的液滴、液位檢測(cè)跟蹤控制系統(tǒng)。

  從液位測(cè)量的方法看,按檢測(cè)器與液體接觸與否分為兩大類:一是接觸式測(cè)量,二是非接觸式測(cè)量。當(dāng)需要通過(guò)測(cè)量液位變化確定體積變化時(shí),一般采用非接觸式測(cè)量方法。但在大多數(shù)非接觸式測(cè)量中,液位傳感器測(cè)試范圍較大,絕對(duì)分辨率均大于0.5ml,因而在體積變化范圍為0-100ml,液位變化范圍為0-200mm時(shí),要達(dá)到0.1ml的分辨率,普通的傳感器就難以滿足要求。為此,需要研制一種測(cè)量普通100ml玻璃量筒中液體體積實(shí)時(shí)變化的高精度液位檢測(cè)系統(tǒng)。

  針對(duì)以上所存在的問(wèn)題,本文介紹了一種以AT89C52單片機(jī)為核心的液位檢測(cè)系統(tǒng),實(shí)現(xiàn)了對(duì)變化的液位進(jìn)行高精度體積測(cè)量的目的。

  一、 積測(cè)量原理

  由于量筒的容積

 

是確定的,且制作均勻,那么一定體積的液體在量筒內(nèi)對(duì)應(yīng)的高度也是一定的。傳感器與螺桿是相互耦合的,螺桿的頂端與步進(jìn)電機(jī)的中軸是直接相連的,步進(jìn)電機(jī)每走一步,螺桿就跟著轉(zhuǎn)一個(gè)小角度。因此,在電機(jī)步距和螺桿螺距一定的情況下,量筒的單位高度與電機(jī)步數(shù)成正比關(guān)系。于是,可將量筒內(nèi)液體的體積直接轉(zhuǎn)換成電機(jī)的步進(jìn)數(shù),即電機(jī)每走一步所代表的液體的體積是多少毫升。

 

  體積測(cè)量示意圖如圖1所示。為了確定電機(jī)的步進(jìn)數(shù)與確定量筒內(nèi)液體的體積毫升數(shù)之間的換算關(guān)系,我們需要對(duì)此系統(tǒng)進(jìn)行校準(zhǔn),具體校準(zhǔn)的方法是:

  1.   測(cè)量體積為10ml液體的電機(jī)步進(jìn)數(shù),將其值設(shè)為L(zhǎng)1;

  2.   測(cè)量體積為100ml液體的電機(jī)步進(jìn)數(shù),將其值設(shè)為L(zhǎng)2;

體積測(cè)量示意圖

  根據(jù)以上步驟記錄的數(shù)據(jù),計(jì)算出電機(jī)每走一步所代表的體積毫升數(shù),將其值設(shè)為T,則有如下的計(jì)算公式:T=90/(L2-L1)。這樣就可以很方便地計(jì)算出跟蹤器所跟蹤的液體體積。

  二、 硬件電路組成及原理

  本系統(tǒng)的基本組成是:紅外光電傳感器、輸入電路、時(shí)鐘電路、復(fù)位電路、顯示電路、步進(jìn)電機(jī)及驅(qū)動(dòng)電路、單片機(jī)實(shí)時(shí)處理與控制電路等。

  其基本的工作原理是:紅外光電傳感器檢測(cè)到的各種信號(hào),經(jīng)過(guò)信號(hào)處理電路后,把光信號(hào)轉(zhuǎn)換成了電信號(hào),同時(shí)把電信號(hào)送給單片機(jī)進(jìn)行判斷和計(jì)算處理后,再發(fā)出控制指令,控制步進(jìn)電機(jī)工作,完成對(duì)變化液位的檢測(cè)與跟蹤。

  該硬件電路原理框圖如圖2所示:

硬件電路原理框圖

  1、紅外光電傳感器

  紅外光電傳感器是由紅外發(fā)射二極管和敏感三極管組成,紅外發(fā)射二極管發(fā)出的紅外光的波長(zhǎng)和敏感三極管的受光波長(zhǎng)相同或相近。當(dāng)發(fā)射管和接受管之間沒(méi)有障礙物時(shí),敏感三極管由于收到紅外光信號(hào)而導(dǎo)通,電路輸出電平為低電平;當(dāng)發(fā)射管和接受管之間有障礙物擋住時(shí),敏感三極管由于收不到紅外光信號(hào)而截止,電路輸出電平為高電平。

  該系統(tǒng)中,對(duì)量筒中的液體表面的檢測(cè)基本上是利用散射原理,在玻璃量筒中液體表面處的液體會(huì)發(fā)生外延現(xiàn)象或吸附現(xiàn)象而形成一個(gè)環(huán)形曲面,這個(gè)曲面正好供我們檢測(cè)用。它是由一對(duì)紅外光電對(duì)管組成的,在玻璃量筒中液體表面處的液體會(huì)發(fā)生外延現(xiàn)象或吸附現(xiàn)象而形成一個(gè)環(huán)形曲面,由于散射作用,接收管接收不到發(fā)射管的紅外光信號(hào)而截止,電路輸出電平為高電平。因此,可以利用其輸出電平的高低來(lái)檢測(cè)液面的位置,其輸出信號(hào)再通過(guò)電纜輸出到單片機(jī)接口電路和顯示驅(qū)動(dòng)電路進(jìn)行處理。為了適應(yīng)本系統(tǒng)的特殊要求,我們將紅外發(fā)射、接受管分別裝在U形板的兩邊,兩管距離大于玻璃量筒的直徑。為了減少外來(lái)自然光的干擾,在兩管的發(fā)射、接受頭安裝有一定深度的導(dǎo)光孔槽,它一方面減少了外來(lái)光的干擾,另一方面可以限制光束直徑,以利于提高檢測(cè)分辨率。

  2、步進(jìn)電機(jī)及驅(qū)動(dòng)電路

  在步進(jìn)電機(jī)工作中,其電源大多是采用單極性直流電,通過(guò)對(duì)步進(jìn)電機(jī)的各相繞組按恰當(dāng)?shù)臅r(shí)序方式通電,就可使其執(zhí)行步進(jìn)轉(zhuǎn)動(dòng)。本系統(tǒng)所用電機(jī)為四相電機(jī),當(dāng)兩相繞組通電時(shí),相應(yīng)的兩個(gè)磁極就分別形成N-S極,產(chǎn)生磁場(chǎng),并與轉(zhuǎn)子形成磁路。在磁場(chǎng)的作用下,轉(zhuǎn)子將轉(zhuǎn)動(dòng)一定的角度,使轉(zhuǎn)子齒與定子齒對(duì)齊,從而使步進(jìn)電機(jī)向前“走”一步。因此,控制電機(jī)轉(zhuǎn)動(dòng)主要是按照電機(jī)轉(zhuǎn)動(dòng)方向的要求,由單片機(jī)順序地輸出相應(yīng)的控制信號(hào)即可。

  下面以正轉(zhuǎn)為例進(jìn)行說(shuō)明,正轉(zhuǎn)時(shí),要求按ABCDA的順序依次輸出寬為8ms的正脈沖,且兩脈沖之間有一小延時(shí)。由此可以往8255的PC0~PC3口依次輸出1000、0100、0010、0001、1000等一系列的信號(hào),每一個(gè)高電平保持8ms,輸出時(shí)間間隔為1ms,即可滿足控制需要。同理,也可以控制電機(jī)反轉(zhuǎn),只是輸出信號(hào)的順序相反。于是在寄存器中的初始控制字可設(shè)為00010001B(即11H),電機(jī)每走一步,則對(duì)此寄存器的內(nèi)容向左(正轉(zhuǎn))或向右(反轉(zhuǎn))循環(huán)移一位,然后取出此寄存器的內(nèi)容并輸出,就可以完成對(duì)電機(jī)的控制。

 

  3、單片機(jī)實(shí)時(shí)處理及控制

  針對(duì)本課題而言,硬件電路應(yīng)該盡量的簡(jiǎn)單,部分能用軟件實(shí)現(xiàn)電路盡可能的不用硬件電路,以此來(lái)達(dá)到產(chǎn)品的小型化、價(jià)格低、性能可靠的目的。在選擇單片機(jī)時(shí)也應(yīng)充分考慮其便利和實(shí)用,8031單片機(jī)最大缺點(diǎn)是需要外接EPROM,電路復(fù)雜,而且EPROM還是用紫外線進(jìn)行擦除的,使用起來(lái)很不方便。在經(jīng)過(guò)廣泛的比較之后,確定采用ATMEL 公司的AT89C52 FLASH單片機(jī)。它不僅具有8031單片機(jī)的一切功能,還有許多功能是8031所沒(méi)有的。其內(nèi)部帶有8KB可多次擦寫的FLASH內(nèi)部程序存儲(chǔ)器,可用電擦除,十分方便。

  AT89C52單片機(jī)主要有以下一些特點(diǎn):

 ?。?)、與MCS-51產(chǎn)品兼容;

 ?。?)、具有8KB可改寫的FLASH內(nèi)部程序存儲(chǔ)器,可進(jìn)行1000次擦/寫操作;

 ?。?/p>

 

3)、全靜態(tài)操作:0Hz到24MHz;

 

 ?。?)、三級(jí)程序存儲(chǔ)器加密;

 ?。?)、256字節(jié)內(nèi)部RAM;

 ?。?)、32條可編程I/O線;

 ?。?)、3個(gè)16位定時(shí)/計(jì)數(shù)器;

 ?。?)、8個(gè)中斷源;

  (9)、可編程串行口;

 ?。?0)、低功耗空閑和掉電方式。

  單片機(jī)實(shí)時(shí)處理及控制部分的主要功能是接收來(lái)自紅外光電傳感器轉(zhuǎn)換過(guò)的電信號(hào),同時(shí)接收輸入電路送來(lái)的狀態(tài)信息,經(jīng)過(guò)判斷計(jì)算后,一方面發(fā)出控制指令,控制電機(jī)的運(yùn)轉(zhuǎn),進(jìn)行液位的檢測(cè)與跟蹤;另一方面送出所需要的數(shù)據(jù),進(jìn)行數(shù)據(jù)的顯示和狀態(tài)指示。因此,這一部分是本系統(tǒng)的關(guān)鍵部分,它的性能的好壞直接關(guān)系到整個(gè)系統(tǒng)的性能好壞。具體硬件電路是以AT89C52單片機(jī)為核心,通過(guò)擴(kuò)展并口8255來(lái)實(shí)現(xiàn)的,其電路如圖3所示。

電路

  由圖3可以看出,鍵入電路與AT89C52的P1口相連,接收所鍵入的狀態(tài)信息并送單片機(jī)。液位信號(hào)直接送P3.0口,在自動(dòng)跟蹤時(shí),單片機(jī)對(duì)P3.0口不斷地查詢,一有信號(hào)就進(jìn)行判斷處理。液滴信號(hào)與P3.2口(即INT0中斷引腳)相連,由于液滴的檢測(cè)是隨時(shí)的,因此需要用中斷來(lái)控制,當(dāng)液滴信號(hào)一來(lái)中斷便響應(yīng),記錄下液滴數(shù)。上、下限位信號(hào)分別接P3.4、P3.5口,在運(yùn)行中,一但出現(xiàn)了上、下限位信號(hào)時(shí),說(shuō)明已超出了預(yù)定的運(yùn)行范圍,單片機(jī)收到信號(hào)后,發(fā)出控制指令,停止電機(jī)的轉(zhuǎn)動(dòng)。其它一些如顯示、電機(jī)驅(qū)動(dòng)等控制信號(hào)的發(fā)出由總線分時(shí)送8255,完成預(yù)定的任務(wù)。

  8255的片選信號(hào)/CS及口地址選擇線A0和A1分別由AT89C52的P2.7和P0.0、P0.1經(jīng)地址鎖存后提供,故8255的A口、B口、C口及控制口地址分別為7FFCH、7FFDH、7FFEH和7FFFH。8255的D0~D7分別與AT89C52的P0.0~P0.7相連,其/RD、/WR與AT89C52的/RD、/WR一一對(duì)應(yīng)相接。

  三、 軟件設(shè)計(jì)

  系統(tǒng)軟件是整個(gè)系統(tǒng)的重要組成部分,只有在它的指揮控制下硬件電路才能進(jìn)行工作,完成相應(yīng)的功能,而且部分硬件電路的缺陷還可以通過(guò)軟件編程加以彌補(bǔ)。根據(jù)系統(tǒng)的功能要求,軟件是用MCS-96匯編語(yǔ)言,采用模塊化結(jié)構(gòu),由主程序、自動(dòng)檢測(cè)跟蹤子程序、校準(zhǔn)子程序、顯示子程序等組成。在本系統(tǒng)中,高精度測(cè)量的實(shí)現(xiàn)在很大程度上是由軟件來(lái)保證的。

  主程序包括系統(tǒng)參數(shù)初始化和循環(huán)工作過(guò)程,是本系統(tǒng)中軟件部分的核心。它主要完成的任務(wù)是:首先,對(duì)單片機(jī)狀態(tài)參量和程序自定義的狀態(tài)參量進(jìn)行系統(tǒng)初始化;其次,對(duì)各子程序進(jìn)行管理和控制,安排相應(yīng)的指令,提供子程序的入口數(shù)據(jù),以達(dá)到完成系統(tǒng)功能的目的。

  液位自動(dòng)檢測(cè)跟蹤子程序的功能是控制液位跟蹤器以底液液面為起始位置,連續(xù)地跟蹤液面的變化,并換算出實(shí)際的液體體積值,實(shí)時(shí)地進(jìn)行顯示。其執(zhí)行步驟是:首先,紅外光電傳感器自動(dòng)檢測(cè)到液位,并設(shè)此液位為跟蹤的底液面,顯示為“0”。然后,進(jìn)入實(shí)時(shí)跟蹤狀態(tài),只要液位有變化(上升),檢測(cè)器便會(huì)自動(dòng)跟蹤,實(shí)時(shí)顯示所跟液體的體積,直到液位不再變化為止。

  校準(zhǔn)子程序是在每次更換量筒時(shí)進(jìn)行的,目的是找出量筒內(nèi)液體的體積與電機(jī)的步進(jìn)數(shù)之間的對(duì)應(yīng)關(guān)系,然后送給單片機(jī),進(jìn)行體積計(jì)算時(shí)就有了新的標(biāo)準(zhǔn),以此來(lái)提高測(cè)量精度。

  四、結(jié)束語(yǔ)

  采用AT89C52單片機(jī)實(shí)現(xiàn)的液位檢測(cè)系統(tǒng)在標(biāo)準(zhǔn)100ml玻璃量筒中,液位變化范圍在0-200mm時(shí),能達(dá)到0.1ml的分辨率。實(shí)踐證明,本液位檢測(cè)系統(tǒng)性能價(jià)格比高、控制方式可靠,其設(shè)計(jì)思路和方法可以為自動(dòng)蒸餾測(cè)控系統(tǒng)所借鑒,具有廣闊的應(yīng)用前景。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。