武玉升,董遠(yuǎn)志
(青島港灣職業(yè)技術(shù)學(xué)院,山東 青島 266404)
基于8051單片機(jī)的船舶穩(wěn)性自動(dòng)檢測(cè)系統(tǒng)設(shè)計(jì)
武玉升,董遠(yuǎn)志
(青島港灣職業(yè)技術(shù)學(xué)院,山東 青島 266404)
以8051單片機(jī)為核心處理器,設(shè)計(jì)了船舶穩(wěn)性自動(dòng)檢測(cè)系統(tǒng)。該系統(tǒng)中有1個(gè)隨船舶橫搖的扇擺,當(dāng)扇擺經(jīng)過(guò)紅外光電檢測(cè)開(kāi)關(guān)時(shí),光電開(kāi)關(guān)會(huì)輸出同船舶橫搖周期一致的開(kāi)關(guān)信號(hào),開(kāi)關(guān)信號(hào)經(jīng)過(guò)單片機(jī)處理后可以檢測(cè)出船舶橫搖周期。結(jié)合輸入的其他船舶參數(shù),單片機(jī)可以計(jì)算出船舶穩(wěn)性參數(shù)GM。通過(guò)觀察GM值的極端變化可以判斷出船舶穩(wěn)性的變化情況,從而保證船舶的航行安全。
船舶穩(wěn)性;單片機(jī);光電檢測(cè)
船舶穩(wěn)性是指船舶受外力作用發(fā)生傾斜,當(dāng)外力消失后能自行回復(fù)到原來(lái)平衡位置的能力。船舶穩(wěn)性對(duì)船舶安全至關(guān)重要,在航行過(guò)程中,為了保證船舶安全,有必要隨時(shí)對(duì)船舶的穩(wěn)性進(jìn)行監(jiān)測(cè)。將穩(wěn)性計(jì)算公式通過(guò)電路系統(tǒng)實(shí)現(xiàn)實(shí)時(shí)計(jì)算,通過(guò)顯示器實(shí)時(shí)顯示船舶穩(wěn)性值,可以幫助值班駕駛員隨時(shí)監(jiān)測(cè)本船穩(wěn)性的變化。這種自動(dòng)監(jiān)測(cè)能節(jié)約時(shí)間,簡(jiǎn)化繁瑣的計(jì)算過(guò)程,對(duì)于避免航行過(guò)程中由于穩(wěn)性不足引起安全事故有著十分重要的作用。本文利用8051單片機(jī)控制電路,設(shè)計(jì)出一種船舶穩(wěn)性自動(dòng)檢測(cè)系統(tǒng),基本實(shí)現(xiàn)了上述功能。
電路的總體結(jié)構(gòu)如圖1所示,主要包括8051單片機(jī)控制系統(tǒng)、8279鍵盤顯示接口電路、按鍵輸入電路、數(shù)碼管顯示電路和光電檢測(cè)電路。單片機(jī)控制系統(tǒng)是整個(gè)電路的核心,用于對(duì)橫搖周期信號(hào)的檢測(cè)、計(jì)算和顯示,同時(shí)根據(jù)相關(guān)參數(shù)計(jì)算和顯示船舶初穩(wěn)性高度GM值。

式中:f為系數(shù),根據(jù)船寬吃水比查有關(guān)表可得;B為船舶型寬;KG為所核算狀態(tài)下的船舶重心距基線高度;T為船舶橫搖周期。
8279鍵盤顯示接口電路實(shí)現(xiàn)對(duì)顯示器和鍵盤電路的綜合管理,降低了系統(tǒng)軟件編寫難度。按鍵輸入電路用于輸入f,B和KG等船舶參數(shù)。數(shù)碼管顯示電路作用有2個(gè),1個(gè)是顯示船舶橫搖周期T的值;另1個(gè)是顯示船舶穩(wěn)性參數(shù)GM的值。光電檢測(cè)系統(tǒng)用于實(shí)現(xiàn)對(duì)船舶橫搖周期的檢測(cè),船舶每橫搖約半個(gè)周期,它將向單片機(jī)控制系統(tǒng)發(fā)送1個(gè)檢測(cè)信號(hào)。

圖1 電路總體結(jié)構(gòu)框圖Fig.1 Block diagram of the overall structure
為了控制成本,減小體積和滿足控制功能,主控制器選用Atmel公司生產(chǎn)的AT89S52單片機(jī)。它是一種低功耗、高性能的CMOS 8位微控制器,內(nèi)置8 kB在線可編程Flash,不需要擴(kuò)展存儲(chǔ)器。采用了ISP在線編程,提高了調(diào)試效率,減少了傳統(tǒng)程序燒寫器寫芯片時(shí)對(duì)芯片的損耗。
按鍵輸入和數(shù)碼管顯示系統(tǒng)可以采用鎖存器或8155,但它們共同的缺點(diǎn)是需要編制定時(shí)掃描顯示和掃描鍵盤的程序,因此整個(gè)系統(tǒng)軟件比較復(fù)雜。Intel8279是一個(gè)專用的顯示器鍵盤接口,它用硬件完成對(duì)顯示器和鍵盤的掃描。在硬件上它只占用2個(gè)地址,在軟件上省去了顯示和鍵盤掃描,大大方便了控制程序的編寫。所以,按鍵輸入和數(shù)碼管顯示系統(tǒng)采用了Intel8279控制系統(tǒng)。
該系統(tǒng)中設(shè)計(jì)了1個(gè)隨船舶靈活擺動(dòng)的扇擺。扇擺一半為黑色,一半為白色。黑色面反光率極低而白色面反光率極高,直接反射式的光電開(kāi)關(guān)是首選的檢測(cè)模式。因此光電檢測(cè)系統(tǒng)采用紅外光電開(kāi)關(guān)E3F-DS10C4,它是一種直接反射式紅外光電開(kāi)關(guān),是一種集發(fā)射器和接收器于一體的傳感器,當(dāng)有被檢測(cè)物體經(jīng)過(guò)時(shí),將光電開(kāi)關(guān)發(fā)射器發(fā)射的足夠量的光線反射到接收器,于是光電開(kāi)關(guān)就產(chǎn)生了開(kāi)關(guān)信號(hào)。
扇擺要求要有一定的重量并懸掛在一個(gè)靈活轉(zhuǎn)動(dòng)的軸上,以保證隨著船舶的搖擺而自由擺動(dòng)。扇擺設(shè)計(jì)成夾角為96°的扇形,其半徑要根據(jù)監(jiān)測(cè)儀器的實(shí)際高度確定。在扇擺夾角1/2處做垂線,該垂線左右分別設(shè)置成黑白兩色。紅外光電檢測(cè)開(kāi)關(guān)是固定的,最好固定位置偏離扇形中心線3°處,探測(cè)頭前端與扇面相距5 cm,利于監(jiān)測(cè)有效橫搖周期,提高觀測(cè)精度。扇擺與紅外光電檢測(cè)開(kāi)關(guān)的相對(duì)位置圖如圖2所示。

圖2 扇擺設(shè)計(jì)示意圖Fig.2 Design of the fans
扇擺將隨著船舶的橫搖而擺動(dòng),擺動(dòng)周期同船舶橫搖周期相同。隨著扇擺的擺動(dòng),紅外光電檢測(cè)開(kāi)關(guān)探測(cè)頭將交替照在扇擺的黑面和白面上。當(dāng)照在黑面上時(shí),探測(cè)頭檢測(cè)不到被反射的紅外線,紅外光電檢測(cè)開(kāi)關(guān)從而輸出低電平;當(dāng)照在白面上時(shí),探測(cè)頭將檢測(cè)到被反射的紅外線,紅外光電檢測(cè)開(kāi)關(guān)從而輸出高電平。因此,每當(dāng)扇擺的黑白界線經(jīng)過(guò)一次探測(cè)頭,紅外光電檢測(cè)開(kāi)關(guān)輸出將發(fā)生一次由高到低或由低到高的電平變化,即產(chǎn)生一次脈沖的下降沿或上升沿,從而可以觸發(fā)單片機(jī)系統(tǒng)的外部中斷,單片機(jī)執(zhí)行周期檢測(cè)程序計(jì)算出船舶橫搖周期。
為了使周期檢測(cè)更加精確,在系統(tǒng)中將紅外光電檢測(cè)開(kāi)關(guān)輸出的中斷請(qǐng)求信號(hào)分別加在單片機(jī)的2個(gè)外部中斷源上,如圖1所示。首先將中斷請(qǐng)求直接加在單片機(jī)的輸入端上,當(dāng)探測(cè)頭由白面照到黑面的瞬間,紅外光電檢測(cè)開(kāi)關(guān)將輸出下降沿,從而通過(guò)觸發(fā)單片機(jī)中斷,計(jì)算探測(cè)頭照在白面上的時(shí)間。同時(shí)中斷請(qǐng)求也通過(guò)反相器加在單片機(jī)的T1輸入端上,當(dāng)探測(cè)頭由黑面照到白面的瞬間,紅外光電檢測(cè)開(kāi)關(guān)將輸出上升沿,從而通過(guò)T1觸發(fā)單片機(jī)中斷,計(jì)算探測(cè)頭照在黑面上的時(shí)間。單片機(jī)程序不斷將探測(cè)頭照在白面和黑面上的時(shí)間相加,便可以得到船舶橫搖周期的實(shí)時(shí)數(shù)據(jù)。
在系統(tǒng)中,外部中斷源共需3個(gè),其中光電檢測(cè)系統(tǒng)用到2個(gè),8279電路用到1個(gè)。8051單片機(jī)僅有2個(gè)外部中斷請(qǐng)求輸入端和,需要對(duì)外部中斷源進(jìn)行擴(kuò)展。擴(kuò)展方法有很多,用閑置的定時(shí)器作為外部中斷源是優(yōu)選方案。因?yàn)槎〞r(shí)器T0被用作內(nèi)部時(shí)間定時(shí)器,所以采用定時(shí)器T1作為外部中斷源,方法是將定時(shí)器T1設(shè)置成計(jì)數(shù)方式,計(jì)數(shù)初值設(shè)為滿量程,則它的計(jì)數(shù)輸入端T1(P3.5)引腳上發(fā)生負(fù)跳變時(shí),計(jì)數(shù)器T1將加1產(chǎn)生溢出中斷。利用此特性,把T1腳作為外部中斷請(qǐng)求輸入線,計(jì)數(shù)器的溢出中斷作為外部中斷請(qǐng)求標(biāo)志。
利用上述電路系統(tǒng)設(shè)計(jì)了船舶穩(wěn)性測(cè)定儀,儀器面板設(shè)計(jì)如圖3所示。
閉合電源開(kāi)關(guān)后,電源指示燈亮,顯示器全部顯示數(shù)字8,然后復(fù)位燈閃爍一次,顯示器全部顯示數(shù)字0后,隨著船舶的搖動(dòng),周期即開(kāi)始顯示,輸入f,B,KG數(shù)值之前,GM顯示區(qū)將顯示0。
按*鍵1次,周期顯示區(qū)第4位數(shù)碼管顯示F,此時(shí)第1位數(shù)碼管閃爍,提示輸入f,f輸入范圍為0.01~0.99,從最低位開(kāi)始輸入,按#鍵切換輸入位數(shù)。
按*鍵2次,周期顯示區(qū)第4位數(shù)碼管顯示b,此時(shí)第1位數(shù)碼管閃爍,提示輸入B,B輸入范圍為0.00~99.99,從最低位開(kāi)始輸入,按#鍵切換輸入位數(shù)。
按*鍵3次,周期顯示區(qū)第4位數(shù)碼管顯示g,此時(shí)第1位數(shù)碼管閃爍,提示輸入KG,KG輸入范圍為0.00~99.99,從最低位開(kāi)始輸入,按#鍵切換輸入位數(shù)。

圖4 系統(tǒng)流程Fig.4 Overall program flow diagram
按*鍵4次,退出輸入狀態(tài),GM和周期將隨船舶橫搖而實(shí)時(shí)顯示。
由于船舶周期越大表明GM值越小,通過(guò)觀察橫搖周期的變化可以判斷本船的穩(wěn)性的變化情況。
單片機(jī)系統(tǒng)軟件設(shè)計(jì)是本系統(tǒng)研制過(guò)程中任務(wù)最繁重的一項(xiàng)工作,不僅要使用匯編語(yǔ)言編程,還配合使用了C語(yǔ)言。本系統(tǒng)軟件主要包括:初始化程序、鍵盤輸入子程序、船舶橫搖周期檢測(cè)與計(jì)算子程序、GM值計(jì)算子程序及輸出顯示子程序。
圖4所示為整個(gè)控制系統(tǒng)的流程圖。首先對(duì)系統(tǒng)硬件進(jìn)行初始化,然后判斷*鍵是否被按下。如果*鍵被按下,則執(zhí)行鍵盤輸入子程序,輸入船舶參數(shù)f,B和KG;如果*鍵沒(méi)有被按下,則執(zhí)行周期計(jì)算子程序計(jì)算出船舶橫搖周期T,然后再執(zhí)行GM值計(jì)算子程序計(jì)算出GM值,最后通過(guò)輸出顯示子程序?qū)值和GM值通過(guò)數(shù)碼管顯示器顯示出來(lái)。其中鍵盤輸入子程序和輸出顯示子程序在很多參考資料上都有實(shí)用的子程序,可以直接調(diào)用。重點(diǎn)是船舶橫搖周期檢測(cè)與計(jì)算子程序和GM值計(jì)算子程序的設(shè)計(jì)與編寫。
如前所述,船舶橫搖周期的檢測(cè)是通過(guò)扇擺擺動(dòng)過(guò)程中使光電檢測(cè)開(kāi)關(guān)輸出高低電平信號(hào),從而向單片機(jī)發(fā)出中斷請(qǐng)求信號(hào),單片機(jī)執(zhí)行周期檢測(cè)程序計(jì)算出船舶橫搖周期。主要包括3個(gè)單片機(jī)的中斷服務(wù)子程序:
1)T0定時(shí)器定時(shí)中斷服務(wù)子程序,用來(lái)產(chǎn)生0.01 s的時(shí)間基準(zhǔn),即T0定時(shí)器每隔0.01 s溢出一次,設(shè)溢出次數(shù)為R;
3)T1中斷服務(wù)子程序,用來(lái)檢測(cè)光電開(kāi)關(guān)探測(cè)頭經(jīng)過(guò)扇擺黑面時(shí)R的值,設(shè)為RH,從而可以計(jì)算出探測(cè)頭經(jīng)過(guò)扇擺黑面的時(shí)間TH,即TH=RH×0.01 s。則可以計(jì)算出船舶橫搖周期T,即T=TB+TH。
在以上3個(gè)中斷服務(wù)子程序的基礎(chǔ)上,在主程序中加入周期計(jì)算程序即可,即在主程序中只需實(shí)現(xiàn)T=TB+TH。T0定時(shí)器定時(shí)中斷服務(wù)子程序流程如圖5(a)所示;中斷服務(wù)子程序流程如圖5(b)所示,T1中斷服務(wù)子程序流程如圖5(c)所示。

圖5 系統(tǒng)中斷服務(wù)子程序流程Fig.5 Interrupt service subroutine program flow diagram
GM值計(jì)算子程序主要作用是編程實(shí)現(xiàn)公式

然后將計(jì)算出的GM值存入相應(yīng)寄存器。在程序編制過(guò)程中,需要將公式中的小數(shù)擴(kuò)展成整數(shù)后進(jìn)行計(jì)算,最后存儲(chǔ)并輸出的數(shù)值為100GM,然后通過(guò)設(shè)定數(shù)碼管顯示器小數(shù)點(diǎn)的位置而顯示實(shí)際GM的值。例如,通過(guò)程序計(jì)算存儲(chǔ)的100GM值為112,但通過(guò)顯示器看到的GM值實(shí)際為1.12。在編制GM值計(jì)算子程序時(shí),公式中涉及到多字節(jié)的加法、乘法和除法,可以查閱參考資料直接調(diào)用實(shí)用子程序即可。
橫搖周期與GM之間的關(guān)系是個(gè)非常復(fù)雜的計(jì)算過(guò)程。在觀測(cè)橫搖周期的過(guò)程中也需要掌握一定的技巧,需要花費(fèi)一定的時(shí)間。通過(guò)船舶穩(wěn)性自動(dòng)檢測(cè)儀就可以避免以上的弊端,方便地求出本船的GM值,從而保證船舶的航行安全。
GM值直接反映了船舶穩(wěn)性的大小,通過(guò)觀察GM值的極端變化可以判斷出本船穩(wěn)性的變化情況。實(shí)驗(yàn)中選取了多組船舶參數(shù)進(jìn)行測(cè)試,表1所示數(shù)據(jù)為其中的幾組,對(duì)GM的理論值與實(shí)測(cè)值進(jìn)行了比較。需要指出的是,GM值與船舶參數(shù)輸入有著非常大的關(guān)系,對(duì)照開(kāi)航時(shí)計(jì)算的GM值,需要經(jīng)常總結(jié)船舶參數(shù)的規(guī)律,通過(guò)總結(jié)得出較為準(zhǔn)確的船舶參數(shù)值以保證GM顯示的精度。

表1 GM值的具體測(cè)試值與理論值的比較Tab.1 Comparison test and theoretical value of the value of GM
[1]曹天漢.單片機(jī)原理與接口技術(shù)(第2版)[M].北京:電子工業(yè)出版社,2006.
[2]樊炳輝,賈朝川,楊婷.基于C8051FO20的假肢控制系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,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]吳戈,李玉峰.案例學(xué)單片機(jī)C語(yǔ)言開(kāi)發(fā)[M].北京:人民郵電出版社,2008.
[4]招惠玲.光電開(kāi)關(guān)在自動(dòng)裝箱系統(tǒng)中的應(yīng)用[J].中國(guó)測(cè)試技術(shù),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
山東省高等學(xué)校優(yōu)秀青年教師國(guó)內(nèi)訪問(wèn)學(xué)者資助項(xiàng)目
武玉升(1979-),男,工程碩士,講師,主要研究方向?yàn)殡娮有畔⒐こ碳夹g(shù)。