基于单片机的飞机航向控制显示教学模型设计与实现

时间:2012-12-25来源:网络

3.1 口线说明和变量定义
程序清单中第1行至第16行是说明和定义部分。在图中和图中输入输出口线已初步拟定好。但在程序中不直接采用P1.0,P1.1等这类的口线名称,而是采用了符号地址,即用户自定义的有助记意义的名称。对于一些字节变量或布尔变量也采用了助记名。这样做给程序设计带来了方便,提高了程序的可读性和可维护性,一旦要改变具体的引脚或变量单元(或位),只要在说明和定义部分略作修改,而不必把程序中所有有关的部分都一一修改。
在原理设计阶段,诸如引脚功能的确定,通常是带主观性的。在印制电路板设计阶段可能发现适当变化一下引脚的功能,会给电路板设计带来极大的方便。在不采用符号地址的程序设计中,这种少量的硬件变动可能会造成大量的软件修改量。雷同的情况还可能在其他设计阶段中发生。因此,尽可能采用符号地址。
3.2 背景程序(主程序)
程序清单中第18行和第26行至第34行是背景程序。这一段程序的框图如图4所示。

f.JPG


系统中利用定时器/计数器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所示。

g.JPG


现对中断服务程序做几点说明:
(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的高频信号。

h.JPG


表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单片机开发系统为基础,开展相关系统教学模型的设计,并与多媒体技术交联,实现学科专修室建设。

1 2 3

关键词: 飞机航向 方向舵 余度设计 故障监控

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版