基于8051单片机的船舶稳性自动检测系统设计
2012-07-12武玉升董远志
武玉升,董远志
(青岛港湾职业技术学院,山东 青岛 266404)
基于8051单片机的船舶稳性自动检测系统设计
武玉升,董远志
(青岛港湾职业技术学院,山东 青岛 266404)
以8051单片机为核心处理器,设计了船舶稳性自动检测系统。该系统中有1个随船舶横摇的扇摆,当扇摆经过红外光电检测开关时,光电开关会输出同船舶横摇周期一致的开关信号,开关信号经过单片机处理后可以检测出船舶横摇周期。结合输入的其他船舶参数,单片机可以计算出船舶稳性参数GM。通过观察GM值的极端变化可以判断出船舶稳性的变化情况,从而保证船舶的航行安全。
船舶稳性;单片机;光电检测
0 引言
船舶稳性是指船舶受外力作用发生倾斜,当外力消失后能自行回复到原来平衡位置的能力。船舶稳性对船舶安全至关重要,在航行过程中,为了保证船舶安全,有必要随时对船舶的稳性进行监测。将稳性计算公式通过电路系统实现实时计算,通过显示器实时显示船舶稳性值,可以帮助值班驾驶员随时监测本船稳性的变化。这种自动监测能节约时间,简化繁琐的计算过程,对于避免航行过程中由于稳性不足引起安全事故有着十分重要的作用。本文利用8051单片机控制电路,设计出一种船舶稳性自动检测系统,基本实现了上述功能。
1 船舶稳性自动检测系统总体设计
电路的总体结构如图1所示,主要包括8051单片机控制系统、8279键盘显示接口电路、按键输入电路、数码管显示电路和光电检测电路。单片机控制系统是整个电路的核心,用于对横摇周期信号的检测、计算和显示,同时根据相关参数计算和显示船舶初稳性高度GM值。
式中:f为系数,根据船宽吃水比查有关表可得;B为船舶型宽;KG为所核算状态下的船舶重心距基线高度;T为船舶横摇周期。
8279键盘显示接口电路实现对显示器和键盘电路的综合管理,降低了系统软件编写难度。按键输入电路用于输入f,B和KG等船舶参数。数码管显示电路作用有2个,1个是显示船舶横摇周期T的值;另1个是显示船舶稳性参数GM的值。光电检测系统用于实现对船舶横摇周期的检测,船舶每横摇约半个周期,它将向单片机控制系统发送1个检测信号。
图1 电路总体结构框图Fig.1 Block diagram of the overall structure
2 船舶稳性自动检测系统硬件设计
2.1 单片机与键盘显示接口系统设计
为了控制成本,减小体积和满足控制功能,主控制器选用Atmel公司生产的AT89S52单片机。它是一种低功耗、高性能的CMOS 8位微控制器,内置8 kB在线可编程Flash,不需要扩展存储器。采用了ISP在线编程,提高了调试效率,减少了传统程序烧写器写芯片时对芯片的损耗。
按键输入和数码管显示系统可以采用锁存器或8155,但它们共同的缺点是需要编制定时扫描显示和扫描键盘的程序,因此整个系统软件比较复杂。Intel8279是一个专用的显示器键盘接口,它用硬件完成对显示器和键盘的扫描。在硬件上它只占用2个地址,在软件上省去了显示和键盘扫描,大大方便了控制程序的编写。所以,按键输入和数码管显示系统采用了Intel8279控制系统。
2.2 光电检测系统设计
该系统中设计了1个随船舶灵活摆动的扇摆。扇摆一半为黑色,一半为白色。黑色面反光率极低而白色面反光率极高,直接反射式的光电开关是首选的检测模式。因此光电检测系统采用红外光电开关E3F-DS10C4,它是一种直接反射式红外光电开关,是一种集发射器和接收器于一体的传感器,当有被检测物体经过时,将光电开关发射器发射的足够量的光线反射到接收器,于是光电开关就产生了开关信号。
扇摆要求要有一定的重量并悬挂在一个灵活转动的轴上,以保证随着船舶的摇摆而自由摆动。扇摆设计成夹角为96°的扇形,其半径要根据监测仪器的实际高度确定。在扇摆夹角1/2处做垂线,该垂线左右分别设置成黑白两色。红外光电检测开关是固定的,最好固定位置偏离扇形中心线3°处,探测头前端与扇面相距5 cm,利于监测有效横摇周期,提高观测精度。扇摆与红外光电检测开关的相对位置图如图2所示。
图2 扇摆设计示意图Fig.2 Design of the fans
扇摆将随着船舶的横摇而摆动,摆动周期同船舶横摇周期相同。随着扇摆的摆动,红外光电检测开关探测头将交替照在扇摆的黑面和白面上。当照在黑面上时,探测头检测不到被反射的红外线,红外光电检测开关从而输出低电平;当照在白面上时,探测头将检测到被反射的红外线,红外光电检测开关从而输出高电平。因此,每当扇摆的黑白界线经过一次探测头,红外光电检测开关输出将发生一次由高到低或由低到高的电平变化,即产生一次脉冲的下降沿或上升沿,从而可以触发单片机系统的外部中断,单片机执行周期检测程序计算出船舶横摇周期。
为了使周期检测更加精确,在系统中将红外光电检测开关输出的中断请求信号分别加在单片机的2个外部中断源上,如图1所示。首先将中断请求直接加在单片机的输入端上,当探测头由白面照到黑面的瞬间,红外光电检测开关将输出下降沿,从而通过触发单片机中断,计算探测头照在白面上的时间。同时中断请求也通过反相器加在单片机的T1输入端上,当探测头由黑面照到白面的瞬间,红外光电检测开关将输出上升沿,从而通过T1触发单片机中断,计算探测头照在黑面上的时间。单片机程序不断将探测头照在白面和黑面上的时间相加,便可以得到船舶横摇周期的实时数据。
在系统中,外部中断源共需3个,其中光电检测系统用到2个,8279电路用到1个。8051单片机仅有2个外部中断请求输入端和,需要对外部中断源进行扩展。扩展方法有很多,用闲置的定时器作为外部中断源是优选方案。因为定时器T0被用作内部时间定时器,所以采用定时器T1作为外部中断源,方法是将定时器T1设置成计数方式,计数初值设为满量程,则它的计数输入端T1(P3.5)引脚上发生负跳变时,计数器T1将加1产生溢出中断。利用此特性,把T1脚作为外部中断请求输入线,计数器的溢出中断作为外部中断请求标志。
2.3 仪器面板设计
利用上述电路系统设计了船舶稳性测定仪,仪器面板设计如图3所示。
闭合电源开关后,电源指示灯亮,显示器全部显示数字8,然后复位灯闪烁一次,显示器全部显示数字0后,随着船舶的摇动,周期即开始显示,输入f,B,KG数值之前,GM显示区将显示0。
按*键1次,周期显示区第4位数码管显示F,此时第1位数码管闪烁,提示输入f,f输入范围为0.01~0.99,从最低位开始输入,按#键切换输入位数。
按*键2次,周期显示区第4位数码管显示b,此时第1位数码管闪烁,提示输入B,B输入范围为0.00~99.99,从最低位开始输入,按#键切换输入位数。
按*键3次,周期显示区第4位数码管显示g,此时第1位数码管闪烁,提示输入KG,KG输入范围为0.00~99.99,从最低位开始输入,按#键切换输入位数。
图4 系统流程Fig.4 Overall program flow diagram
按*键4次,退出输入状态,GM和周期将随船舶横摇而实时显示。
由于船舶周期越大表明GM值越小,通过观察横摇周期的变化可以判断本船的稳性的变化情况。
3 单片机系统软件设计
单片机系统软件设计是本系统研制过程中任务最繁重的一项工作,不仅要使用汇编语言编程,还配合使用了C语言。本系统软件主要包括:初始化程序、键盘输入子程序、船舶横摇周期检测与计算子程序、GM值计算子程序及输出显示子程序。
3.1 系统主流程
图4所示为整个控制系统的流程图。首先对系统硬件进行初始化,然后判断*键是否被按下。如果*键被按下,则执行键盘输入子程序,输入船舶参数f,B和KG;如果*键没有被按下,则执行周期计算子程序计算出船舶横摇周期T,然后再执行GM值计算子程序计算出GM值,最后通过输出显示子程序将T值和GM值通过数码管显示器显示出来。其中键盘输入子程序和输出显示子程序在很多参考资料上都有实用的子程序,可以直接调用。重点是船舶横摇周期检测与计算子程序和GM值计算子程序的设计与编写。
3.2 横摇周期检测与计算子程序
如前所述,船舶横摇周期的检测是通过扇摆摆动过程中使光电检测开关输出高低电平信号,从而向单片机发出中断请求信号,单片机执行周期检测程序计算出船舶横摇周期。主要包括3个单片机的中断服务子程序:
1)T0定时器定时中断服务子程序,用来产生0.01 s的时间基准,即T0定时器每隔0.01 s溢出一次,设溢出次数为R;
3)T1中断服务子程序,用来检测光电开关探测头经过扇摆黑面时R的值,设为RH,从而可以计算出探测头经过扇摆黑面的时间TH,即TH=RH×0.01 s。则可以计算出船舶横摇周期T,即T=TB+TH。
在以上3个中断服务子程序的基础上,在主程序中加入周期计算程序即可,即在主程序中只需实现T=TB+TH。T0定时器定时中断服务子程序流程如图5(a)所示;中断服务子程序流程如图5(b)所示,T1中断服务子程序流程如图5(c)所示。
图5 系统中断服务子程序流程Fig.5 Interrupt service subroutine program flow diagram
3.3 GM值计算子程序
GM值计算子程序主要作用是编程实现公式
然后将计算出的GM值存入相应寄存器。在程序编制过程中,需要将公式中的小数扩展成整数后进行计算,最后存储并输出的数值为100GM,然后通过设定数码管显示器小数点的位置而显示实际GM的值。例如,通过程序计算存储的100GM值为112,但通过显示器看到的GM值实际为1.12。在编制GM值计算子程序时,公式中涉及到多字节的加法、乘法和除法,可以查阅参考资料直接调用实用子程序即可。
4 实验结果分析
横摇周期与GM之间的关系是个非常复杂的计算过程。在观测横摇周期的过程中也需要掌握一定的技巧,需要花费一定的时间。通过船舶稳性自动检测仪就可以避免以上的弊端,方便地求出本船的GM值,从而保证船舶的航行安全。
GM值直接反映了船舶稳性的大小,通过观察GM值的极端变化可以判断出本船稳性的变化情况。实验中选取了多组船舶参数进行测试,表1所示数据为其中的几组,对GM的理论值与实测值进行了比较。需要指出的是,GM值与船舶参数输入有着非常大的关系,对照开航时计算的GM值,需要经常总结船舶参数的规律,通过总结得出较为准确的船舶参数值以保证GM显示的精度。
表1 GM值的具体测试值与理论值的比较Tab.1 Comparison test and theoretical value of the value of GM
[1]曹天汉.单片机原理与接口技术(第2版)[M].北京:电子工业出版社,2006.
[2]樊炳辉,贾朝川,杨婷.基于C8051FO20的假肢控制系统设计[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语言开发[M].北京:人民邮电出版社,2008.
[4]招惠玲.光电开关在自动装箱系统中的应用[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
山东省高等学校优秀青年教师国内访问学者资助项目
武玉升(1979-),男,工程硕士,讲师,主要研究方向为电子信息工程技术。