基于51單片機的液位檢測系統
2、步進(jìn)電機及驅動(dòng)電路
在步進(jìn)電機工作中,其電源大多是采用單極性直流電,通過(guò)對步進(jìn)電機的各相繞組按恰當的時(shí)序方式通電,就可使其執行步進(jìn)轉動(dòng)。本系統所用電機為四相電機,當兩相繞組通電時(shí),相應的兩個(gè)磁極就分別形成N-S極,產(chǎn)生磁場(chǎng),并與轉子形成磁路。在磁場(chǎng)的作用下,轉子將轉動(dòng)一定的角度,使轉子齒與定子齒對齊,從而使步進(jìn)電機向前“走”一步。因此,控制電機轉動(dòng)主要是按照電機轉動(dòng)方向的要求,由單片機順序地輸出相應的控制信號即可。
下面以正轉為例進(jìn)行說(shuō)明,正轉時(shí),要求按ABCDA 的順序依次輸出寬為8ms的正脈沖,且兩脈沖之間有一小延時(shí)。由此可以往8255的PC0~PC3口依次輸出1000、0100、0010、0001、 1000等一系列的信號,每一個(gè)高電平保持8ms,輸出時(shí)間間隔為1ms,即可滿(mǎn)足控制需要。同理,也可以控制電機反轉,只是輸出信號的順序相反。于是在寄存器中的初始控制字可設為00010001B(即11H),電機每走一步,則對此寄存器的內容向左(正轉)或向右(反轉)循環(huán)移一位,然后取出此寄存器的內容并輸出,就可以完成對電機的控制。
3、單片機實(shí)時(shí)處理及控制
針對本課題而言,硬件電路應該盡量的簡(jiǎn)單,部分能用軟件實(shí)現電路盡可能的不用硬件電路,以此來(lái)達到產(chǎn)品的小型化、價(jià)格低、性能可靠的目的。在選擇單片機時(shí)也應充分考慮其便利和實(shí)用,8031 單片機最大缺點(diǎn)是需要外接EPROM,電路復雜,而且EPROM還是用紫外線(xiàn)進(jìn)行擦除的,使用起來(lái)很不方便。在經(jīng)過(guò)廣泛的比較之后,確定采用ATMEL 公司的AT89C52 FLASH單片機。它不僅具有8031單片機的一切功能,還有許多功能是8031所沒(méi)有的。其內部帶有8KB可多次擦寫(xiě)的FLASH內部程序存儲器,可用電擦除,十分方便。
AT89C52 單片機主要有以下一些特點(diǎn):(1)、與MCS-51產(chǎn)品兼容;(2)、具有8KB可改寫(xiě)的FLASH內部程序存儲器,可進(jìn)行1000次擦/寫(xiě)操作;(3)、全靜態(tài)操作:0Hz到24MHz;(4)、三級程序存儲器加密;(5)、256字節內部RAM;(6)、32條可編程I/O線(xiàn);(7)、3個(gè)16 位定時(shí)/計數器;(8)、8個(gè)中斷源;(9)、可編程串行口;(10)、低功耗空閑和掉電方式。
單片機實(shí)時(shí)處理及控制部分的主要功能是接收來(lái)自紅外光電傳感器轉換過(guò)的電信號,同時(shí)接收輸入電路送來(lái)的狀態(tài)信息,經(jīng)過(guò)判斷計算后,一方面發(fā)出控制指令,控制電機的運轉,進(jìn)行液位的檢測與跟蹤;另一方面送出所需要的數據,進(jìn)行數據的顯示和狀態(tài)指示。因此,這一部分是本系統的關(guān)鍵部分,它的性能的好壞直接關(guān)系到整個(gè)系統的性能好壞。具體硬件電路是以AT89C52單片機為核心,通過(guò)擴展并口8255來(lái)實(shí)現的,其電路如圖3所示。
圖3單片機實(shí)時(shí)處理與控制電路
由圖3 可以看出,鍵入電路與AT89C52的P1口相連,接收所鍵入的狀態(tài)信息并送單片機。液位信號直接送P3.0口,在自動(dòng)跟蹤時(shí),單片機對P3.0口不斷地查詢(xún),一有信號就進(jìn)行判斷處理。液滴信號與P3.2口(即INT0中斷引腳)相連,由于液滴的檢測是隨時(shí)的,因此需要用中斷來(lái)控制,當液滴信號一來(lái)中斷便響應,記錄下液滴數。上、下限位信號分別接P3.4、P3.5口,在運行中,一但出現了上、下限位信號時(shí),說(shuō)明已超出了預定的運行范圍,單片機收到信號后,發(fā)出控制指令,停止電機的轉動(dòng)。其它一些如顯示、電機驅動(dòng)等控制信號的發(fā)出由總線(xiàn)分時(shí)送8255,完成預定的任務(wù)。
8255 的片選信號/CS及口地址選擇線(xiàn)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一一對應相接。
三、 軟件設計
系統軟件是整個(gè)系統的重要組成部分,只有在它的指揮控制下硬件電路才能進(jìn)行工作,完成相應的功能,而且部分硬件電路的缺陷還可以通過(guò)軟件編程加以彌補。根據系統的功能要求,軟件是用MCS-96匯編語(yǔ)言,采用模塊化結構,由主程序、自動(dòng)檢測跟蹤子程序、校準子程序、顯示子程序等組成。在本系統中,高精度測量的實(shí)現在很大程度上是由軟件來(lái)保證的。
主程序包括系統參數初始化和循環(huán)工作過(guò)程,是本系統中軟件部分的核心。它主要完成的任務(wù)是:首先,對單片機狀態(tài)參量和程序自定義的狀態(tài)參量進(jìn)行系統初始化;其次,對各子程序進(jìn)行管理和控制,安排相應的指令,提供子程序的入口數據,以達到完成系統功能的目的。
液位自動(dòng)檢測跟蹤子程序的功能是控制液位跟蹤器以底液液面為起始位置,連續地跟蹤液面的變化,并換算出實(shí)際的液體體積值,實(shí)時(shí)地進(jìn)行顯示。其執行步驟是:首先,紅外光電傳感器自動(dòng)檢測到液位,并設此液位為跟蹤的底液面,顯示為“0”。然后,進(jìn)入實(shí)時(shí)跟蹤狀態(tài),只要液位有變化(上升),檢測器便會(huì )自動(dòng)跟蹤,實(shí)時(shí)顯示所跟液體的體積,直到液位不再變化為止。
校準子程序是在每次更換量筒時(shí)進(jìn)行的,目的是找出量筒內液體的體積與電機的步進(jìn)數之間的對應關(guān)系,然后送給單片機,進(jìn)行體積計算時(shí)就有了新的標準,以此來(lái)提高測量精度。
四、結束語(yǔ)
采用AT89C52單片機實(shí)現的液位檢測系統在標準100ml玻璃量筒中,液位變化范圍在0-200mm時(shí),能達到0.1ml的分辨率。實(shí)踐證明,本液位檢測系統性能價(jià)格比高、控制方式可靠,其設計思路和方法可以為自動(dòng)蒸餾測控系統所借鑒,具有廣闊的應用前景。
參考文獻:
[1].AT89C52datasheethttp://www.dzsc.com/datasheet/AT89C52_1064535.html.
[2].EPROMdatasheethttp://www.dzsc.com/datasheet/EPROM_1128137.html.
[3].MCS-51datasheethttp://www.dzsc.com/datasheet/MCS-51_477840.html.
評論