为增强飞行学员飞机航向控制理论直观教学效果,采用MCS-51单片机作为系统CPU,完成了飞机航向控制系统仿真动态模型平台的设计。通过模拟飞机操纵机构控制,直接利用汇编语言即可实现仪表显示功能。试验结果表明,系统响应速度快,控制显示功能直观,课堂教学效果好。
直观教学是增强飞行学员理论联系实际的有效手段,伴随着多媒体技术的发展,如何提升传统教学模型不可替代的演示功能,成为制约教学质量的关键。
传统教学模型存在数量多、结构简单、功能单一的缺点,但是其演示功能强,学员可以动手操作的优点是现代多媒体教学方式无法替代的。飞机航向控制显示系统是利用MCS-51单片机控制功能,将系统内多个模型综合,采用机电控制方式实现系统多功能教学和学员操作功能。一方面可以提高教学效果,同时还可以增强教员解决教学问题的动手能力,为将来从事相关科学研究打下坚实的基础。
1 系统功能要求
飞机航向控制显示系统为多功能教学系统,本文只探讨其中飞机航向控制及其相关显示部分功能设计与实现。仿真模型仿照飞机座舱安装方向舵。通过微动电门,单片机可接受方向舵三个位置信号;方向舵中立位置时,飞机航向不变化;向左蹬舵时,飞机左转弯;向右蹬舵时,飞机右转弯。飞机改变航向时,要求飞机航向改变方向灯光和座舱显示仪表板上的指示灯相应地发出提示信号。打开开机电门时,所有信号灯都应闪烁。待机时,2个待机灯发出不闪烁的信号。表1为飞机航向控制显示系统真值表。
在飞机航向控制显示系统中,设定打开开机电门时,信号灯以高频(约30 Hz)频率闪烁,提示使用人员准备操作。飞机航向改变或开机状态下,信号灯和座舱显示仪表板指示灯的闪烁频率为1 Hz(低频信号)。
根据飞机航向变化信号显示控制系统的功能,可以用数字逻辑电路来实现,如图1所示。系统中还应有高低频信号发生电路和输出驱动电路。用数字逻辑电路来实现系统功能的缺点是:一旦系统的功能有所改动,电路也要随之变动,灵活性较差;增加功能,实现难度大。
2 系统硬件
为适应其他功能需要,飞机航向控制显示系统采用28 V直流供电,所以除单片机外,其他电路采用28 V电源。单片机内部定时器产生闪烁频率信号。图2是采用单片机的飞机航向显示控制系统的基本电路。
在单片机系统中,可以利用其较强的控制功能,实现故障监控和余度设计,提高系统的可靠性。例如飞机航向控制显示系统模型教学使用频率高、时间长,显示器件易损耗,设计采用标准的双信号灯并联,以增加系统的冗余度,在一个信号灯出故障时,系统仍能正常工作。即使采用了余度技术,信号灯也全部失灵,或因发生线路上的故障而不能正常工作。因此还希望系统具有故障监控功能,一旦发现故障,能自动报警。
图3是这类故障监控方案的电路,它利用T0做检测输入,只增加1个晶体管和几个电阻。假定其中一个信号灯是受控断开的(输出口线送高电平),而其余信号灯皆受控接通。这时晶体管Q7的6个输入端中有5个是低电平。与受控断开的信号灯相应的那个输入端的电平则取决于这一路线路的状态,若28 V电源经过信号灯、连接器、控制线和印制板都是导通的,这一路驱动晶体管也没有发生基极与地短路的现象,则该输入端应保持高电平,使Q7导通,测试口T0是低电平。若这时T0是高电平,说明相应的线路出了故障。
现在让单片机发出控制使所有信号灯都接通,则Q7应截止,测试口T0应呈高电平。如果这时存在控制线与28 V电源短路或驱动晶体管断路等故障,则Q7仍导通,T0呈低电平,表示线路中存在着另一类故障。这种故障监控功能可以通过软件来实现。
3 系统软件
系统软件用MCS-51系统布尔处理机机器指令子集汇编语言编写。编写程序按照系统功能分为三部分:第一部分是输入、输出口线说明和变量定义;第二部分是背景程序(主程序);第三部分是中断服务程序。
飞机航向控制显示系统软件程序如下:
3.1 口线说明和变量定义
程序清单中第1行至第16行是说明和定义部分。在图中和图中输入输出口线已初步拟定好。但在程序中不直接采用P1.0,P1.1等这类的口线名称,而是采用了符号地址,即用户自定义的有助记意义的名称。对于一些字节变量或布尔变量也采用了助记名。这样做给程序设计带来了方便,提高了程序的可读性和可维护性,一旦要改变具体的引脚或变量单元(或位),只要在说明和定义部分略作修改,而不必把程序中所有有关的部分都一一修改。
在原理设计阶段,诸如引脚功能的确定,通常是带主观性的。在印制电路板设计阶段可能发现适当变化一下引脚的功能,会给电路板设计带来极大的方便。在不采用符号地址的程序设计中,这种少量的硬件变动可能会造成大量的软件修改量。雷同的情况还可能在其他设计阶段中发生。因此,尽可能采用符号地址。
3.2 背景程序(主程序)
程序清单中第18行和第26行至第34行是背景程序。这一段程序的框图如图4所示。
系统中利用定时器/计数器0和一个软件计数器SUB_DIV来产生为时1 s的定时信号,以实现低频(1Hz)闪烁功能。
对于TH0置初值16,即F0H,使定时器0每隔4 096 μs(采用12 MHz晶体,计数频率为1 MHz)溢出中断一次。每次中断后,重置TH0,并使用软件计数器SUB_DIV的值减1。SUB_DIV的初值为244,当此值减为0时,历经的时间为:
244×4 096×10-6=0.999 424 s
3.3 中断服务程序
定时器0溢出中断服务程序是整个程序的实际主体部分其框图如图5所示。
现对中断服务程序做几点说明:
(1)故障监控测试过程可参见对图3的说明。发现故障时。转而执行一跳指令CPL S_FALL,S_FALL是P2.3引脚的符号地址。若故障一直存在,则P2.3的状态每隔1 s转换一次。若在此引脚处接一个指示灯(硬件图中未给出),则告警时指示灯以0.5 Hz的频率闪烁。
(2)关于低频振荡信号(1 Hz)的产生
SUB_DIV的初值为244(11110100B),由244变到0,历经0.999 424 s,其中SUB_DIV.7为1的时间约占117/244 s,为0的时间约占127/244 s,故从SUB_DIV.7(LO_FREQ)获得的就是占空比接近50%(47.95%)的低频(1 Hz)信号。
(3)关于高频振荡信号(30 Hz)的产生
由第66行至第70行5条指令形成占空比为62.5%的30 Hz高频信号。软件计数器SUB_DIV的值,由244(11110100B)变为0时,SUB_DIV的低3位可以构成8种状态,如表2的左半部所示。在0.999 424 s中这8种状态的重复次数=11110B=30。故把低3位的状态以某种方式组合起来,就可以形成一定占空比30 Hz的高频信号。
表2的右半部分表示不同占空比的信号作用下,在每个周期的8个状态时刻中信号灯通断情况。在50%占空比下信号灯的光不够亮,故本系统采用62.5%的占空比。上述几条指令的执行结果使PARK=1(模型待机)的状态下DIM=SUB_DIV.20R(SUB_DIV.1AND SUB_DIV.0),由表2可以看出,在8个状态时刻中,前3个状态信号灯断开(DIM=0),后5个状态信号灯接通(DIM=1),形成占空比为62.5%的30 Hz高频信号。
调节闪烁信号的亮度可以靠对SUB_DIV的低3位进行不同的逻辑操作来实现,例如SUB_DIV.1 ORSUB_DIV.2的结果得占空比75%;SUB_D IV.0 ORSUB_DIV.1 OR SUB_DIV.2的结果得占空比为87.5%等。但要注意,在这8个状态时刻中,信号灯只能通断各一次,否则闪烁频率就变了。
(4)关于各种信号的形成
由第102行至第113行是程序的基本部分,它们根据系统的输入状态(各开关的位置)来计算送给指示灯的信号。这一段程序用布尔处理机完全实现了图1所示的逻辑功能。
4 结论
采用单片机实现飞机航向控制显示系统模型控制,具有系统响应速度快,控制显示功能直观,课堂教学效果好的特点。经过近2年教学使用和跟踪调查,飞行学员在学科考试该部分内容掌握非常好,后期飞行训练阶段相关内容与飞行实际结合效果反映较好。目前按照学科组划分,对其他相关飞机系统模型进行功能组合,以MCS-51单片机开发系统为基础,开展相关系统教学模型的设计,并与多媒体技术交联,实现学科专修室建设。
上一篇:基于单片机的OLED显示实现方法
下一篇:一个轻量级的单片机多级菜单实现方法