唐金元,張鵬明,王思臣
(海軍航空工程學院青島校區(qū),山東青島266041)
無線電高度表信號模擬器控制/顯示模塊程序設(shè)計
唐金元,張鵬明,王思臣
(海軍航空工程學院青島校區(qū),山東青島266041)
設(shè)計一套無線電高度表信號模擬器控制/顯示模塊組件,主控制單元(MCU)檢測操作鍵盤的按鍵操作,向外部的射頻信號延時/衰減模塊發(fā)送相應(yīng)的模擬高度選擇和功率衰減值設(shè)置控制信號,同時向其顯示驅(qū)動芯片發(fā)送相應(yīng)的顯示控制信號,實現(xiàn)控制、顯示功能。
無線高度表;信號模擬器;控制單片機;程序設(shè)計
無線電高度表是飛機上最基本的無線電導(dǎo)航設(shè)備,用于測量并標示飛機飛行期間距地面(水面)的真實高度,以保證飛機安全飛行。無線電高度表需定期或不定期地進行性能測試(檢測)工作,以保證設(shè)備性能指標的完好性。無線電高度表信號模擬器是無線電高度表進行性能測試和檢修時必需的的專用儀器,用于模擬產(chǎn)生不同高度值對應(yīng)的不同射頻調(diào)制信號,在其他測試儀器配合下完成無線電高度表測高精度、靈敏度等主要性能指標的定量測試。
某型無線電高度表信號模擬器(圖1)由3個功能模塊組成:射頻信號延時/衰減模塊、控制/顯示模塊和電源模塊。其中,射頻信號延時/衰減模塊用于將被測無線電高度表收發(fā)機輸出的射頻調(diào)制信號進行不同數(shù)值的延時和功率衰減,再送回高度表收發(fā)機,實現(xiàn)飛機不同飛行高度值的模擬;控制/顯示模塊用于產(chǎn)生射頻信號延時/衰減模塊所需的模擬高度選擇控制信號和功率衰減值設(shè)置控制信號,并顯示所設(shè)定的模擬高度數(shù)值和衰減功率值,實現(xiàn)“人-機”交互的控制、顯示功能;電源模塊用于將內(nèi)置鋰電池的15~21 V直流電壓或外接27 V直流電壓轉(zhuǎn)換為+12 V直流電壓,提供給上述2個功能模塊控制/顯示模塊完成模擬器工作流程的控制和人機交互功能的實現(xiàn)。
圖1 無線電高度表信號模擬器各功能模塊間的信號連接關(guān)系
無線電高度表信號模擬器控制/顯示模塊的硬件電路原理如圖2所示。
控制/顯示模塊主要由主控電路(主控制單元MCU、模擬高度值/功率衰減值設(shè)置鍵盤電路、模擬高度值/功率衰減值控制信號輸出調(diào)理/驅(qū)動電路等)、顯示電路(模擬高度值/功率衰減值顯示屏和顯示驅(qū)動電路等)、故障監(jiān)測與指示電路和電源電壓變換電路等部分組成。工作時,主控制單元(MCU)接收模擬高度值/功率衰減值設(shè)置鍵盤電路的模擬高度值和功率衰減值設(shè)置信號,產(chǎn)生相應(yīng)的模擬高度值選擇控制信號和功率衰減值設(shè)置控制信號,經(jīng)模擬高度值/功率衰減值控制信號輸出調(diào)理/驅(qū)動電路驅(qū)動后,傳送給外部的射頻信號延時/衰減模塊;MCU產(chǎn)生模擬高度值和功率衰減值顯示控制信號,送至模擬高度值/功率衰減值顯示驅(qū)動電路,經(jīng)驅(qū)動后點亮模擬高度值和功率衰減值顯示屏,使其同步顯示出所設(shè)定的模擬高度值和功率衰減值。同時MCU還隨時接收來自故障監(jiān)測與指示電路的故障警告信號,有故障時使操作控制面板上的“故障”警告燈燃亮。
本設(shè)計中,MCU為單片機控制系統(tǒng),選用C8051F320單片機;模擬高度值/功率衰減值設(shè)置鍵盤選用專制的壓膜式行列式鍵盤(共16個按鍵,其中模擬高度值設(shè)置按鍵12個,功率衰減值設(shè)置按鍵4個)。MCU采用行列掃描的方式對鍵盤上的按鍵狀態(tài)進行掃描檢測。MCU輸出模擬高度值選擇控制信號(表1)和功率衰減量設(shè)置控制信號(表2)指令的同時,還產(chǎn)生模擬高度值和功率衰減值顯示控制信號指令至顯示電路。模擬高度值和功率衰減值的顯示屏分別采用1片4位數(shù)字段碼式液晶屏EDS815,選取PCF8576作為EDS815的顯示驅(qū)動芯片。
圖2 控制/顯示模塊硬件電路組成框圖
圖3 控制/顯示模塊程序工作流程圖
表1 模擬高度值選擇控制信號(C4~C1)真值表
表2 功率衰減量設(shè)置控制信號(D7~D1)真值表
在進行無線電高度表信號模擬器控制/顯示模塊程序設(shè)計時,首先依據(jù)任務(wù)需求和電路工作原理,設(shè)計出程序工作流程圖,如圖3所示。
控制/顯示模塊上電后,C8051F320單片機開始運行。首先對內(nèi)部時鐘和各個輸出端口進行初始化,然后顯示初始化模擬高度值(0 m)和初始化功率衰減值(55 dB),并輸出對應(yīng)的模擬高度值選擇控制信號(C4~C1)和功率衰減值設(shè)置控制信號(D7~D1)。
初始化工作完成后,C8051F320單片機開始檢測控制面板的按鍵狀態(tài)。若檢測到鍵盤按鍵被按下,則立即通過行列式掃描的方式獲得按鍵對應(yīng)的返回值(1~16),并判斷該返回值對應(yīng)的是模擬高度值設(shè)置按鍵還是功率衰減量設(shè)置按鍵,若對應(yīng)的是模擬高度值設(shè)置按鍵,則獲取相應(yīng)的模擬高度值,使模擬高度值顯示液晶屏顯示當前模擬高度值,然后更改模擬高度值選擇控制信號,通過端口輸出;若對應(yīng)的是功率衰減量設(shè)置按鍵,則獲取相應(yīng)的功率衰減量變化值(+1、-1、+10或-10),并與前一狀態(tài)衰減值進行運算,得到當前狀態(tài)的功率衰減值,使功率衰減值顯示液晶屏顯示當前的功率衰減值,然后更改功率衰減量設(shè)置控制信號,通過相應(yīng)端口輸出。
完成對顯示數(shù)值和輸出控制信號的更改后,C8051F320主控芯片繼續(xù)將輸出控制信號C4~C1,D7~D1分別與模擬高度值、功率衰減量進行對比,若兩者的對應(yīng)關(guān)系與真值表不一致,則輸出故障指示信號,使故障指示燈燃亮。
控制/顯示模塊的程序設(shè)計采用C語言作為編程語言,選用Keil C51編譯器作為程序編譯器。
3.1 程序架構(gòu)圖設(shè)計
控制/顯示模塊的程序架構(gòu)如圖4所示。
采用main.c程序作為主程序,采用time.c、pcf8576.c、numkey.c程序作為子程序,在主程序中調(diào)用上述3個子程序。子程序中,time.c編寫時鐘初始化函數(shù),pcf8576.c編寫PCF8576顯示驅(qū)動芯片的初始化和數(shù)值顯示函數(shù),numkey.c編寫鍵盤按鍵狀態(tài)檢測函數(shù)。
圖4 控制/顯示模塊程序架構(gòu)圖
3.2 main.c程序設(shè)計
main.c主程序編寫main主函數(shù)、輸入/輸出端口初始化函數(shù)和輸出端口檢測函數(shù)。其中main主函數(shù)控制C8051F320單片機程序運行流程和邏輯。為了響應(yīng)鍵盤按鍵返回的1~16數(shù)值并產(chǎn)生相應(yīng)的模擬高度值(4位10進制)或者功率衰減值(3位10進制),main函數(shù)中采用switch語句掃描鍵盤按鍵返回值。當搜索到一個與鍵盤按鍵返回值相匹配的標簽時,程序跳轉(zhuǎn)到標簽所在行,然后將對應(yīng)的模擬高度值或者功率衰減值賦值給變量;輸出端口檢測函數(shù)“Port_check”比較輸出信號電平是否與處理結(jié)果一致,若不一致則輸出故障信號,使故障指示燈燃亮;
通過switch語句響應(yīng)獲得模擬高度值和功率衰減值后,需要將模擬高度值(4位10進制)轉(zhuǎn)換為模擬高度值選擇控制信號(4位2進制,C4~C1),將功率衰減值(3位10進制)轉(zhuǎn)換為衰減值設(shè)置控制信號(7位2進制,D7~D1)。
3.3 time.c程序設(shè)計
time.c程序中編寫定時器初始化函數(shù)“Time_init”、時間延遲函數(shù)“delay1us”和定時器中斷函數(shù)“Timer0_int”。其中定時器初始化函數(shù)“Time_init”將單片機內(nèi)部時鐘恢復(fù)至初始狀態(tài);時間延遲函數(shù)“delay1us”通過單片機計時原理使時間延遲1us;定時器中斷函數(shù)“Timer0_int”使單片機定時器中斷。
3.4 pcf8576.c程序設(shè)計
pcf8576.c程序中編寫2片EDS815液晶屏顯示驅(qū)動芯片PCF8576的控制程序,包括顯示初始化函數(shù)、顯示清除函數(shù)、顯示信號處理函數(shù)和顯示保持函數(shù)等。從鍵盤輸入的按鍵信號經(jīng)過main主函數(shù)處理后得到模擬高度值(4位10進制)和功率衰減值(3位10進制),顯示信號處理函數(shù)將10進制數(shù)字運算、分解,得到PCF8576可以識別的顯示控制信號,驅(qū)動EDS815顯示對應(yīng)的模擬高度值和功率衰減值。當鍵盤沒有按鍵按下時,顯示保持函數(shù)仍控制PCF8576驅(qū)動EDS815,使得EDS815仍顯示之前的模擬高度值和功率衰減值。當按鍵狀態(tài)變化時,程序自動運行顯示清除函數(shù)、顯示初始化函數(shù)和顯示信號處理函數(shù),控制PCF8576驅(qū)動EDS815顯示新的模擬高度值和功率衰減值。
3.5 numkey.c程序設(shè)計
numkey.c程序中編寫鍵盤狀態(tài)識別函數(shù)“Numkey_scan”和按鍵輸入函數(shù)“Numkey_check”。當鍵盤沒有按鍵被按下時,鍵盤狀態(tài)識別函數(shù)“Numkey_scan”返回值0;當鍵盤有按鍵被按下時,鍵盤狀態(tài)識別函數(shù)“Numkey_scan”返回值1。按鍵輸入函數(shù)“Numkey_check”通過行列掃描的方式判斷按鍵狀態(tài),返回一個對應(yīng)于按鍵位置的1~16整數(shù)。
介紹了某型無線電高度表信號模擬器控制/顯示模塊的硬件電路工作原理,重點分析控制/顯示模塊的程序工作流程圖和程序設(shè)計思想及實現(xiàn)方法。實際工程應(yīng)用表明,該型無線電高度表信號模擬器工作可靠,操作簡便,對于提高無線電高度表維護工作的效率具有積極的意義。
[1]李樹君,劉會勇.基于LPC2292和PCF8576的大氣慣導(dǎo)顯示面板設(shè)計[J].數(shù)字技術(shù)與應(yīng)用,2011,08(1):121-122.
[2]王成,張松鋼.Blackfin531與PCF8576的接口設(shè)計及I2C協(xié)議實現(xiàn)[J].電子設(shè)計應(yīng)用,2005,(12):130-132.
[3]馮玲.基于C8051F005無線電高度表檢測儀的研制[D].南京:南京航空航天大學,2008.
[4]程國曉,高憲軍.一種新的無線電高度表原位檢測的高度模擬方法[J].自動化測試技術(shù),2012,20(3):624-626.
[5]楊昆,王曉涓.基于虛擬儀器的265A高度表檢測儀的研制[J].微計算機信息,2008,24(12):116-117.
[6]徐愛鈞.Keil C51單片機高級語言應(yīng)用編程技術(shù)[M].北京:電子工業(yè)出版社,2015.
〔編輯 李波〕
TP273
B
10.16621/j.cnki.issn1001-0599.2017.01.55