无线电高度表信号模拟器控制/显示模块程序设计

2017-06-01 12:54唐金元张鹏明王思臣
设备管理与维修 2017年1期
关键词:模拟器按键键盘

唐金元,张鹏明,王思臣

(海军航空工程学院青岛校区,山东青岛266041)

无线电高度表信号模拟器控制/显示模块程序设计

唐金元,张鹏明,王思臣

(海军航空工程学院青岛校区,山东青岛266041)

设计一套无线电高度表信号模拟器控制/显示模块组件,主控制单元(MCU)检测操作键盘的按键操作,向外部的射频信号延时/衰减模块发送相应的模拟高度选择和功率衰减值设置控制信号,同时向其显示驱动芯片发送相应的显示控制信号,实现控制、显示功能。

无线高度表;信号模拟器;控制单片机;程序设计

0 引言

无线电高度表是飞机上最基本的无线电导航设备,用于测量并标示飞机飞行期间距地面(水面)的真实高度,以保证飞机安全飞行。无线电高度表需定期或不定期地进行性能测试(检测)工作,以保证设备性能指标的完好性。无线电高度表信号模拟器是无线电高度表进行性能测试和检修时必需的的专用仪器,用于模拟产生不同高度值对应的不同射频调制信号,在其他测试仪器配合下完成无线电高度表测高精度、灵敏度等主要性能指标的定量测试。

某型无线电高度表信号模拟器(图1)由3个功能模块组成:射频信号延时/衰减模块、控制/显示模块和电源模块。其中,射频信号延时/衰减模块用于将被测无线电高度表收发机输出的射频调制信号进行不同数值的延时和功率衰减,再送回高度表收发机,实现飞机不同飞行高度值的模拟;控制/显示模块用于产生射频信号延时/衰减模块所需的模拟高度选择控制信号和功率衰减值设置控制信号,并显示所设定的模拟高度数值和衰减功率值,实现“人-机”交互的控制、显示功能;电源模块用于将内置锂电池的15~21 V直流电压或外接27 V直流电压转换为+12 V直流电压,提供给上述2个功能模块控制/显示模块完成模拟器工作流程的控制和人机交互功能的实现。

图1 无线电高度表信号模拟器各功能模块间的信号连接关系

1 控制/显示模块硬件电路工作原理

无线电高度表信号模拟器控制/显示模块的硬件电路原理如图2所示。

控制/显示模块主要由主控电路(主控制单元MCU、模拟高度值/功率衰减值设置键盘电路、模拟高度值/功率衰减值控制信号输出调理/驱动电路等)、显示电路(模拟高度值/功率衰减值显示屏和显示驱动电路等)、故障监测与指示电路和电源电压变换电路等部分组成。工作时,主控制单元(MCU)接收模拟高度值/功率衰减值设置键盘电路的模拟高度值和功率衰减值设置信号,产生相应的模拟高度值选择控制信号和功率衰减值设置控制信号,经模拟高度值/功率衰减值控制信号输出调理/驱动电路驱动后,传送给外部的射频信号延时/衰减模块;MCU产生模拟高度值和功率衰减值显示控制信号,送至模拟高度值/功率衰减值显示驱动电路,经驱动后点亮模拟高度值和功率衰减值显示屏,使其同步显示出所设定的模拟高度值和功率衰减值。同时MCU还随时接收来自故障监测与指示电路的故障警告信号,有故障时使操作控制面板上的“故障”警告灯燃亮。

本设计中,MCU为单片机控制系统,选用C8051F320单片机;模拟高度值/功率衰减值设置键盘选用专制的压膜式行列式键盘(共16个按键,其中模拟高度值设置按键12个,功率衰减值设置按键4个)。MCU采用行列扫描的方式对键盘上的按键状态进行扫描检测。MCU输出模拟高度值选择控制信号(表1)和功率衰减量设置控制信号(表2)指令的同时,还产生模拟高度值和功率衰减值显示控制信号指令至显示电路。模拟高度值和功率衰减值的显示屏分别采用1片4位数字段码式液晶屏EDS815,选取PCF8576作为EDS815的显示驱动芯片。

图2 控制/显示模块硬件电路组成框图

图3 控制/显示模块程序工作流程图

表1 模拟高度值选择控制信号(C4~C1)真值表

表2 功率衰减量设置控制信号(D7~D1)真值表

2 程序工作流程图设计

在进行无线电高度表信号模拟器控制/显示模块程序设计时,首先依据任务需求和电路工作原理,设计出程序工作流程图,如图3所示。

控制/显示模块上电后,C8051F320单片机开始运行。首先对内部时钟和各个输出端口进行初始化,然后显示初始化模拟高度值(0 m)和初始化功率衰减值(55 dB),并输出对应的模拟高度值选择控制信号(C4~C1)和功率衰减值设置控制信号(D7~D1)。

初始化工作完成后,C8051F320单片机开始检测控制面板的按键状态。若检测到键盘按键被按下,则立即通过行列式扫描的方式获得按键对应的返回值(1~16),并判断该返回值对应的是模拟高度值设置按键还是功率衰减量设置按键,若对应的是模拟高度值设置按键,则获取相应的模拟高度值,使模拟高度值显示液晶屏显示当前模拟高度值,然后更改模拟高度值选择控制信号,通过端口输出;若对应的是功率衰减量设置按键,则获取相应的功率衰减量变化值(+1、-1、+10或-10),并与前一状态衰减值进行运算,得到当前状态的功率衰减值,使功率衰减值显示液晶屏显示当前的功率衰减值,然后更改功率衰减量设置控制信号,通过相应端口输出。

完成对显示数值和输出控制信号的更改后,C8051F320主控芯片继续将输出控制信号C4~C1,D7~D1分别与模拟高度值、功率衰减量进行对比,若两者的对应关系与真值表不一致,则输出故障指示信号,使故障指示灯燃亮。

3 程序设计

控制/显示模块的程序设计采用C语言作为编程语言,选用Keil C51编译器作为程序编译器。

3.1 程序架构图设计

控制/显示模块的程序架构如图4所示。

采用main.c程序作为主程序,采用time.c、pcf8576.c、numkey.c程序作为子程序,在主程序中调用上述3个子程序。子程序中,time.c编写时钟初始化函数,pcf8576.c编写PCF8576显示驱动芯片的初始化和数值显示函数,numkey.c编写键盘按键状态检测函数。

图4 控制/显示模块程序架构图

3.2 main.c程序设计

main.c主程序编写main主函数、输入/输出端口初始化函数和输出端口检测函数。其中main主函数控制C8051F320单片机程序运行流程和逻辑。为了响应键盘按键返回的1~16数值并产生相应的模拟高度值(4位10进制)或者功率衰减值(3位10进制),main函数中采用switch语句扫描键盘按键返回值。当搜索到一个与键盘按键返回值相匹配的标签时,程序跳转到标签所在行,然后将对应的模拟高度值或者功率衰减值赋值给变量;输出端口检测函数“Port_check”比较输出信号电平是否与处理结果一致,若不一致则输出故障信号,使故障指示灯燃亮;

通过switch语句响应获得模拟高度值和功率衰减值后,需要将模拟高度值(4位10进制)转换为模拟高度值选择控制信号(4位2进制,C4~C1),将功率衰减值(3位10进制)转换为衰减值设置控制信号(7位2进制,D7~D1)。

3.3 time.c程序设计

time.c程序中编写定时器初始化函数“Time_init”、时间延迟函数“delay1us”和定时器中断函数“Timer0_int”。其中定时器初始化函数“Time_init”将单片机内部时钟恢复至初始状态;时间延迟函数“delay1us”通过单片机计时原理使时间延迟1us;定时器中断函数“Timer0_int”使单片机定时器中断。

3.4 pcf8576.c程序设计

pcf8576.c程序中编写2片EDS815液晶屏显示驱动芯片PCF8576的控制程序,包括显示初始化函数、显示清除函数、显示信号处理函数和显示保持函数等。从键盘输入的按键信号经过main主函数处理后得到模拟高度值(4位10进制)和功率衰减值(3位10进制),显示信号处理函数将10进制数字运算、分解,得到PCF8576可以识别的显示控制信号,驱动EDS815显示对应的模拟高度值和功率衰减值。当键盘没有按键按下时,显示保持函数仍控制PCF8576驱动EDS815,使得EDS815仍显示之前的模拟高度值和功率衰减值。当按键状态变化时,程序自动运行显示清除函数、显示初始化函数和显示信号处理函数,控制PCF8576驱动EDS815显示新的模拟高度值和功率衰减值。

3.5 numkey.c程序设计

numkey.c程序中编写键盘状态识别函数“Numkey_scan”和按键输入函数“Numkey_check”。当键盘没有按键被按下时,键盘状态识别函数“Numkey_scan”返回值0;当键盘有按键被按下时,键盘状态识别函数“Numkey_scan”返回值1。按键输入函数“Numkey_check”通过行列扫描的方式判断按键状态,返回一个对应于按键位置的1~16整数。

4 结束语

介绍了某型无线电高度表信号模拟器控制/显示模块的硬件电路工作原理,重点分析控制/显示模块的程序工作流程图和程序设计思想及实现方法。实际工程应用表明,该型无线电高度表信号模拟器工作可靠,操作简便,对于提高无线电高度表维护工作的效率具有积极的意义。

[1]李树君,刘会勇.基于LPC2292和PCF8576的大气惯导显示面板设计[J].数字技术与应用,2011,08(1):121-122.

[2]王成,张松钢.Blackfin531与PCF8576的接口设计及I2C协议实现[J].电子设计应用,2005,(12):130-132.

[3]冯玲.基于C8051F005无线电高度表检测仪的研制[D].南京:南京航空航天大学,2008.

[4]程国晓,高宪军.一种新的无线电高度表原位检测的高度模拟方法[J].自动化测试技术,2012,20(3):624-626.

[5]杨昆,王晓涓.基于虚拟仪器的265A高度表检测仪的研制[J].微计算机信息,2008,24(12):116-117.

[6]徐爱钧.Keil C51单片机高级语言应用编程技术[M].北京:电子工业出版社,2015.

〔编辑 李波〕

TP273

B

10.16621/j.cnki.issn1001-0599.2017.01.55

猜你喜欢
模拟器按键键盘
你知道手机拨号键盘上为什么要有*和#吗?
了不起的安检模拟器
键盘猫
基于有限状态机的按键检测程序设计
盲盒模拟器
划船模拟器
Cлово месяца
ikbc R300机械键盘
一种多方向导光按键结构设计
动态飞行模拟器及其发展概述