武玉升,董遠志
(青島港灣職業(yè)技術學院,山東 青島 266404)
基于8051單片機的船舶穩(wěn)性自動檢測系統(tǒng)設計
武玉升,董遠志
(青島港灣職業(yè)技術學院,山東 青島 266404)
以8051單片機為核心處理器,設計了船舶穩(wěn)性自動檢測系統(tǒng)。該系統(tǒng)中有1個隨船舶橫搖的扇擺,當扇擺經(jīng)過紅外光電檢測開關時,光電開關會輸出同船舶橫搖周期一致的開關信號,開關信號經(jīng)過單片機處理后可以檢測出船舶橫搖周期。結(jié)合輸入的其他船舶參數(shù),單片機可以計算出船舶穩(wěn)性參數(shù)GM。通過觀察GM值的極端變化可以判斷出船舶穩(wěn)性的變化情況,從而保證船舶的航行安全。
船舶穩(wěn)性;單片機;光電檢測
船舶穩(wěn)性是指船舶受外力作用發(fā)生傾斜,當外力消失后能自行回復到原來平衡位置的能力。船舶穩(wěn)性對船舶安全至關重要,在航行過程中,為了保證船舶安全,有必要隨時對船舶的穩(wěn)性進行監(jiān)測。將穩(wěn)性計算公式通過電路系統(tǒng)實現(xiàn)實時計算,通過顯示器實時顯示船舶穩(wěn)性值,可以幫助值班駕駛員隨時監(jiān)測本船穩(wěn)性的變化。這種自動監(jiān)測能節(jié)約時間,簡化繁瑣的計算過程,對于避免航行過程中由于穩(wěn)性不足引起安全事故有著十分重要的作用。本文利用8051單片機控制電路,設計出一種船舶穩(wěn)性自動檢測系統(tǒng),基本實現(xiàn)了上述功能。
電路的總體結(jié)構如圖1所示,主要包括8051單片機控制系統(tǒng)、8279鍵盤顯示接口電路、按鍵輸入電路、數(shù)碼管顯示電路和光電檢測電路。單片機控制系統(tǒng)是整個電路的核心,用于對橫搖周期信號的檢測、計算和顯示,同時根據(jù)相關參數(shù)計算和顯示船舶初穩(wěn)性高度GM值。
式中:f為系數(shù),根據(jù)船寬吃水比查有關表可得;B為船舶型寬;KG為所核算狀態(tài)下的船舶重心距基線高度;T為船舶橫搖周期。
8279鍵盤顯示接口電路實現(xiàn)對顯示器和鍵盤電路的綜合管理,降低了系統(tǒng)軟件編寫難度。按鍵輸入電路用于輸入f,B和KG等船舶參數(shù)。數(shù)碼管顯示電路作用有2個,1個是顯示船舶橫搖周期T的值;另1個是顯示船舶穩(wěn)性參數(shù)GM的值。光電檢測系統(tǒng)用于實現(xiàn)對船舶橫搖周期的檢測,船舶每橫搖約半個周期,它將向單片機控制系統(tǒng)發(fā)送1個檢測信號。
圖1 電路總體結(jié)構框圖Fig.1 Block diagram of the overall structure
為了控制成本,減小體積和滿足控制功能,主控制器選用Atmel公司生產(chǎn)的AT89S52單片機。它是一種低功耗、高性能的CMOS 8位微控制器,內(nèi)置8 kB在線可編程Flash,不需要擴展存儲器。采用了ISP在線編程,提高了調(diào)試效率,減少了傳統(tǒng)程序燒寫器寫芯片時對芯片的損耗。
按鍵輸入和數(shù)碼管顯示系統(tǒng)可以采用鎖存器或8155,但它們共同的缺點是需要編制定時掃描顯示和掃描鍵盤的程序,因此整個系統(tǒng)軟件比較復雜。Intel8279是一個專用的顯示器鍵盤接口,它用硬件完成對顯示器和鍵盤的掃描。在硬件上它只占用2個地址,在軟件上省去了顯示和鍵盤掃描,大大方便了控制程序的編寫。所以,按鍵輸入和數(shù)碼管顯示系統(tǒng)采用了Intel8279控制系統(tǒng)。
該系統(tǒng)中設計了1個隨船舶靈活擺動的扇擺。扇擺一半為黑色,一半為白色。黑色面反光率極低而白色面反光率極高,直接反射式的光電開關是首選的檢測模式。因此光電檢測系統(tǒng)采用紅外光電開關E3F-DS10C4,它是一種直接反射式紅外光電開關,是一種集發(fā)射器和接收器于一體的傳感器,當有被檢測物體經(jīng)過時,將光電開關發(fā)射器發(fā)射的足夠量的光線反射到接收器,于是光電開關就產(chǎn)生了開關信號。
扇擺要求要有一定的重量并懸掛在一個靈活轉(zhuǎn)動的軸上,以保證隨著船舶的搖擺而自由擺動。扇擺設計成夾角為96°的扇形,其半徑要根據(jù)監(jiān)測儀器的實際高度確定。在扇擺夾角1/2處做垂線,該垂線左右分別設置成黑白兩色。紅外光電檢測開關是固定的,最好固定位置偏離扇形中心線3°處,探測頭前端與扇面相距5 cm,利于監(jiān)測有效橫搖周期,提高觀測精度。扇擺與紅外光電檢測開關的相對位置圖如圖2所示。
圖2 扇擺設計示意圖Fig.2 Design of the fans
扇擺將隨著船舶的橫搖而擺動,擺動周期同船舶橫搖周期相同。隨著扇擺的擺動,紅外光電檢測開關探測頭將交替照在扇擺的黑面和白面上。當照在黑面上時,探測頭檢測不到被反射的紅外線,紅外光電檢測開關從而輸出低電平;當照在白面上時,探測頭將檢測到被反射的紅外線,紅外光電檢測開關從而輸出高電平。因此,每當扇擺的黑白界線經(jīng)過一次探測頭,紅外光電檢測開關輸出將發(fā)生一次由高到低或由低到高的電平變化,即產(chǎn)生一次脈沖的下降沿或上升沿,從而可以觸發(fā)單片機系統(tǒng)的外部中斷,單片機執(zhí)行周期檢測程序計算出船舶橫搖周期。
為了使周期檢測更加精確,在系統(tǒng)中將紅外光電檢測開關輸出的中斷請求信號分別加在單片機的2個外部中斷源上,如圖1所示。首先將中斷請求直接加在單片機的輸入端上,當探測頭由白面照到黑面的瞬間,紅外光電檢測開關將輸出下降沿,從而通過觸發(fā)單片機中斷,計算探測頭照在白面上的時間。同時中斷請求也通過反相器加在單片機的T1輸入端上,當探測頭由黑面照到白面的瞬間,紅外光電檢測開關將輸出上升沿,從而通過T1觸發(fā)單片機中斷,計算探測頭照在黑面上的時間。單片機程序不斷將探測頭照在白面和黑面上的時間相加,便可以得到船舶橫搖周期的實時數(shù)據(jù)。
在系統(tǒng)中,外部中斷源共需3個,其中光電檢測系統(tǒng)用到2個,8279電路用到1個。8051單片機僅有2個外部中斷請求輸入端和,需要對外部中斷源進行擴展。擴展方法有很多,用閑置的定時器作為外部中斷源是優(yōu)選方案。因為定時器T0被用作內(nèi)部時間定時器,所以采用定時器T1作為外部中斷源,方法是將定時器T1設置成計數(shù)方式,計數(shù)初值設為滿量程,則它的計數(shù)輸入端T1(P3.5)引腳上發(fā)生負跳變時,計數(shù)器T1將加1產(chǎn)生溢出中斷。利用此特性,把T1腳作為外部中斷請求輸入線,計數(shù)器的溢出中斷作為外部中斷請求標志。
利用上述電路系統(tǒng)設計了船舶穩(wěn)性測定儀,儀器面板設計如圖3所示。
閉合電源開關后,電源指示燈亮,顯示器全部顯示數(shù)字8,然后復位燈閃爍一次,顯示器全部顯示數(shù)字0后,隨著船舶的搖動,周期即開始顯示,輸入f,B,KG數(shù)值之前,GM顯示區(qū)將顯示0。
按*鍵1次,周期顯示區(qū)第4位數(shù)碼管顯示F,此時第1位數(shù)碼管閃爍,提示輸入f,f輸入范圍為0.01~0.99,從最低位開始輸入,按#鍵切換輸入位數(shù)。
按*鍵2次,周期顯示區(qū)第4位數(shù)碼管顯示b,此時第1位數(shù)碼管閃爍,提示輸入B,B輸入范圍為0.00~99.99,從最低位開始輸入,按#鍵切換輸入位數(shù)。
按*鍵3次,周期顯示區(qū)第4位數(shù)碼管顯示g,此時第1位數(shù)碼管閃爍,提示輸入KG,KG輸入范圍為0.00~99.99,從最低位開始輸入,按#鍵切換輸入位數(shù)。
圖4 系統(tǒng)流程Fig.4 Overall program flow diagram
按*鍵4次,退出輸入狀態(tài),GM和周期將隨船舶橫搖而實時顯示。
由于船舶周期越大表明GM值越小,通過觀察橫搖周期的變化可以判斷本船的穩(wěn)性的變化情況。
單片機系統(tǒng)軟件設計是本系統(tǒng)研制過程中任務最繁重的一項工作,不僅要使用匯編語言編程,還配合使用了C語言。本系統(tǒng)軟件主要包括:初始化程序、鍵盤輸入子程序、船舶橫搖周期檢測與計算子程序、GM值計算子程序及輸出顯示子程序。
圖4所示為整個控制系統(tǒng)的流程圖。首先對系統(tǒng)硬件進行初始化,然后判斷*鍵是否被按下。如果*鍵被按下,則執(zhí)行鍵盤輸入子程序,輸入船舶參數(shù)f,B和KG;如果*鍵沒有被按下,則執(zhí)行周期計算子程序計算出船舶橫搖周期T,然后再執(zhí)行GM值計算子程序計算出GM值,最后通過輸出顯示子程序?qū)值和GM值通過數(shù)碼管顯示器顯示出來。其中鍵盤輸入子程序和輸出顯示子程序在很多參考資料上都有實用的子程序,可以直接調(diào)用。重點是船舶橫搖周期檢測與計算子程序和GM值計算子程序的設計與編寫。
如前所述,船舶橫搖周期的檢測是通過扇擺擺動過程中使光電檢測開關輸出高低電平信號,從而向單片機發(fā)出中斷請求信號,單片機執(zhí)行周期檢測程序計算出船舶橫搖周期。主要包括3個單片機的中斷服務子程序:
1)T0定時器定時中斷服務子程序,用來產(chǎn)生0.01 s的時間基準,即T0定時器每隔0.01 s溢出一次,設溢出次數(shù)為R;
3)T1中斷服務子程序,用來檢測光電開關探測頭經(jīng)過扇擺黑面時R的值,設為RH,從而可以計算出探測頭經(jīng)過扇擺黑面的時間TH,即TH=RH×0.01 s。則可以計算出船舶橫搖周期T,即T=TB+TH。
在以上3個中斷服務子程序的基礎上,在主程序中加入周期計算程序即可,即在主程序中只需實現(xiàn)T=TB+TH。T0定時器定時中斷服務子程序流程如圖5(a)所示;中斷服務子程序流程如圖5(b)所示,T1中斷服務子程序流程如圖5(c)所示。
圖5 系統(tǒng)中斷服務子程序流程Fig.5 Interrupt service subroutine program flow diagram
GM值計算子程序主要作用是編程實現(xiàn)公式
然后將計算出的GM值存入相應寄存器。在程序編制過程中,需要將公式中的小數(shù)擴展成整數(shù)后進行計算,最后存儲并輸出的數(shù)值為100GM,然后通過設定數(shù)碼管顯示器小數(shù)點的位置而顯示實際GM的值。例如,通過程序計算存儲的100GM值為112,但通過顯示器看到的GM值實際為1.12。在編制GM值計算子程序時,公式中涉及到多字節(jié)的加法、乘法和除法,可以查閱參考資料直接調(diào)用實用子程序即可。
橫搖周期與GM之間的關系是個非常復雜的計算過程。在觀測橫搖周期的過程中也需要掌握一定的技巧,需要花費一定的時間。通過船舶穩(wěn)性自動檢測儀就可以避免以上的弊端,方便地求出本船的GM值,從而保證船舶的航行安全。
GM值直接反映了船舶穩(wěn)性的大小,通過觀察GM值的極端變化可以判斷出本船穩(wěn)性的變化情況。實驗中選取了多組船舶參數(shù)進行測試,表1所示數(shù)據(jù)為其中的幾組,對GM的理論值與實測值進行了比較。需要指出的是,GM值與船舶參數(shù)輸入有著非常大的關系,對照開航時計算的GM值,需要經(jīng)??偨Y(jié)船舶參數(shù)的規(guī)律,通過總結(jié)得出較為準確的船舶參數(shù)值以保證GM顯示的精度。
表1 GM值的具體測試值與理論值的比較Tab.1 Comparison test and theoretical value of the value of GM
[1]曹天漢.單片機原理與接口技術(第2版)[M].北京:電子工業(yè)出版社,2006.
[2]樊炳輝,賈朝川,楊婷.基于C8051FO20的假肢控制系統(tǒng)設計[J].電子技術應用,2011,(6):135-137.
FAN Bing-hui,JIA Chao-chuan,YANG Ting.Design of artificial limb control system based on C8051F020[J].Application of Electronic Technique,2011,(6):135 -137.
[3]吳戈,李玉峰.案例學單片機C語言開發(fā)[M].北京:人民郵電出版社,2008.
[4]招惠玲.光電開關在自動裝箱系統(tǒng)中的應用[J].中國測試技術,2003,(3):31-32,60.
Design of ship stability automatic checkout system based on 8051 MCU
WU Yu-sheng,DONG Yuan-zhi
(Qingdao Harbor Vocational Technology College,Qingdao 266404,China)
Take 8051 MCU as the core processor to design ship stability automatic checkout system.There are a fans swing in the system.when ship sways,the fans swing will sway too,and they have sane period.When the fans swing passes a photoelectric switch in the system,the photoelectric switch will send out a signal,with which MCU can checkout the period of the ship swaying.MCU can calculate the ship stability parameter GM with the other ship parameters.The safe navigation of the ship can be secure by observing the extreme change of GM.
ship stability;MCU;photoelectric detection
TP23
B
1672-7649(2012)07-0045-04
10.3404/j.issn.1672-7649.2012.07.009
2011-09-22;
2011-12-21
山東省高等學校優(yōu)秀青年教師國內(nèi)訪問學者資助項目
武玉升(1979-),男,工程碩士,講師,主要研究方向為電子信息工程技術。