唐金元,張鵬明,王思臣
(海軍航空工程學院青島校區,山東青島266041)
無線電高度表信號模擬器控制/顯示模塊程序設計
唐金元,張鵬明,王思臣
(海軍航空工程學院青島校區,山東青島266041)
設計一套無線電高度表信號模擬器控制/顯示模塊組件,主控制單元(MCU)檢測操作鍵盤的按鍵操作,向外部的射頻信號延時/衰減模塊發送相應的模擬高度選擇和功率衰減值設置控制信號,同時向其顯示驅動芯片發送相應的顯示控制信號,實現控制、顯示功能。
無線高度表;信號模擬器;控制單片機;程序設計
無線電高度表是飛機上最基本的無線電導航設備,用于測量并標示飛機飛行期間距地面(水面)的真實高度,以保證飛機安全飛行。無線電高度表需定期或不定期地進行性能測試(檢測)工作,以保證設備性能指標的完好性。無線電高度表信號模擬器是無線電高度表進行性能測試和檢修時必需的的專用儀器,用于模擬產生不同高度值對應的不同射頻調制信號,在其他測試儀器配合下完成無線電高度表測高精度、靈敏度等主要性能指標的定量測試。
某型無線電高度表信號模擬器(圖1)由3個功能模塊組成:射頻信號延時/衰減模塊、控制/顯示模塊和電源模塊。其中,射頻信號延時/衰減模塊用于將被測無線電高度表收發機輸出的射頻調制信號進行不同數值的延時和功率衰減,再送回高度表收發機,實現飛機不同飛行高度值的模擬;控制/顯示模塊用于產生射頻信號延時/衰減模塊所需的模擬高度選擇控制信號和功率衰減值設置控制信號,并顯示所設定的模擬高度數值和衰減功率值,實現“人-機”交互的控制、顯示功能;電源模塊用于將內置鋰電池的15~21 V直流電壓或外接27 V直流電壓轉換為+12 V直流電壓,提供給上述2個功能模塊控制/顯示模塊完成模擬器工作流程的控制和人機交互功能的實現。

圖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)真值表
在進行無線電高度表信號模擬器控制/顯示模塊程序設計時,首先依據任務需求和電路工作原理,設計出程序工作流程圖,如圖3所示。
控制/顯示模塊上電后,C8051F320單片機開始運行。首先對內部時鐘和各個輸出端口進行初始化,然后顯示初始化模擬高度值(0 m)和初始化功率衰減值(55 dB),并輸出對應的模擬高度值選擇控制信號(C4~C1)和功率衰減值設置控制信號(D7~D1)。
初始化工作完成后,C8051F320單片機開始檢測控制面板的按鍵狀態。若檢測到鍵盤按鍵被按下,則立即通過行列式掃描的方式獲得按鍵對應的返回值(1~16),并判斷該返回值對應的是模擬高度值設置按鍵還是功率衰減量設置按鍵,若對應的是模擬高度值設置按鍵,則獲取相應的模擬高度值,使模擬高度值顯示液晶屏顯示當前模擬高度值,然后更改模擬高度值選擇控制信號,通過端口輸出;若對應的是功率衰減量設置按鍵,則獲取相應的功率衰減量變化值(+1、-1、+10或-10),并與前一狀態衰減值進行運算,得到當前狀態的功率衰減值,使功率衰減值顯示液晶屏顯示當前的功率衰減值,然后更改功率衰減量設置控制信號,通過相應端口輸出。
完成對顯示數值和輸出控制信號的更改后,C8051F320主控芯片繼續將輸出控制信號C4~C1,D7~D1分別與模擬高度值、功率衰減量進行對比,若兩者的對應關系與真值表不一致,則輸出故障指示信號,使故障指示燈燃亮。
控制/顯示模塊的程序設計采用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整數。
介紹了某型無線電高度表信號模擬器控制/顯示模塊的硬件電路工作原理,重點分析控制/顯示模塊的程序工作流程圖和程序設計思想及實現方法。實際工程應用表明,該型無線電高度表信號模擬器工作可靠,操作簡便,對于提高無線電高度表維護工作的效率具有積極的意義。
[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