基于單片機(jī)的飛機(jī)航向控制顯示教學(xué)模型設(shè)計(jì)與實(shí)現(xiàn)
3.1 口線說(shuō)明和變量定義
程序清單中第1行至第16行是說(shuō)明和定義部分。在圖中和圖中輸入輸出口線已初步擬定好。但在程序中不直接采用P1.0,P1.1等這類的口線名稱,而是采用了符號(hào)地址,即用戶自定義的有助記意義的名稱。對(duì)于一些字節(jié)變量或布爾變量也采用了助記名。這樣做給程序設(shè)計(jì)帶來(lái)了方便,提高了程序的可讀性和可維護(hù)性,一旦要改變具體的引腳或變量單元(或位),只要在說(shuō)明和定義部分略作修改,而不必把程序中所有有關(guān)的部分都一一修改。
在原理設(shè)計(jì)階段,諸如引腳功能的確定,通常是帶主觀性的。在印制電路板設(shè)計(jì)階段可能發(fā)現(xiàn)適當(dāng)變化一下引腳的功能,會(huì)給電路板設(shè)計(jì)帶來(lái)極大的方便。在不采用符號(hào)地址的程序設(shè)計(jì)中,這種少量的硬件變動(dòng)可能會(huì)造成大量的軟件修改量。雷同的情況還可能在其他設(shè)計(jì)階段中發(fā)生。因此,盡可能采用符號(hào)地址。
3.2 背景程序(主程序)
程序清單中第18行和第26行至第34行是背景程序。這一段程序的框圖如圖4所示。本文引用地址:http://cafeforensic.com/article/170637.htm
系統(tǒng)中利用定時(shí)器/計(jì)數(shù)器0和一個(gè)軟件計(jì)數(shù)器SUB_DIV來(lái)產(chǎn)生為時(shí)1 s的定時(shí)信號(hào),以實(shí)現(xiàn)低頻(1Hz)閃爍功能。
對(duì)于TH0置初值16,即F0H,使定時(shí)器0每隔4 096 μs(采用12 MHz晶體,計(jì)數(shù)頻率為1 MHz)溢出中斷一次。每次中斷后,重置TH0,并使用軟件計(jì)數(shù)器SUB_DIV的值減1。SUB_DIV的初值為244,當(dāng)此值減為0時(shí),歷經(jīng)的時(shí)間為:
244×4 096×10-6=0.999 424 s
3.3 中斷服務(wù)程序
定時(shí)器0溢出中斷服務(wù)程序是整個(gè)程序的實(shí)際主體部分其框圖如圖5所示。
現(xiàn)對(duì)中斷服務(wù)程序做幾點(diǎn)說(shuō)明:
(1)故障監(jiān)控測(cè)試過(guò)程可參見(jiàn)對(duì)圖3的說(shuō)明。發(fā)現(xiàn)故障時(shí)。轉(zhuǎn)而執(zhí)行一跳指令CPL S_FALL,S_FALL是P2.3引腳的符號(hào)地址。若故障一直存在,則P2.3的狀態(tài)每隔1 s轉(zhuǎn)換一次。若在此引腳處接一個(gè)指示燈(硬件圖中未給出),則告警時(shí)指示燈以0.5 Hz的頻率閃爍。
(2)關(guān)于低頻振蕩信號(hào)(1 Hz)的產(chǎn)生
SUB_DIV的初值為244(11110100B),由244變到0,歷經(jīng)0.999 424 s,其中SUB_DIV.7為1的時(shí)間約占117/244 s,為0的時(shí)間約占127/244 s,故從SUB_DIV.7(LO_FREQ)獲得的就是占空比接近50%(47.95%)的低頻(1 Hz)信號(hào)。
(3)關(guān)于高頻振蕩信號(hào)(30 Hz)的產(chǎn)生
由第66行至第70行5條指令形成占空比為62.5%的30 Hz高頻信號(hào)。軟件計(jì)數(shù)器SUB_DIV的值,由244(11110100B)變?yōu)?時(shí),SUB_DIV的低3位可以構(gòu)成8種狀態(tài),如表2的左半部所示。在0.999 424 s中這8種狀態(tài)的重復(fù)次數(shù)=11110B=30。故把低3位的狀態(tài)以某種方式組合起來(lái),就可以形成一定占空比30 Hz的高頻信號(hào)。
表2的右半部分表示不同占空比的信號(hào)作用下,在每個(gè)周期的8個(gè)狀態(tài)時(shí)刻中信號(hào)燈通斷情況。在50%占空比下信號(hào)燈的光不夠亮,故本系統(tǒng)采用62.5%的占空比。上述幾條指令的執(zhí)行結(jié)果使PARK=1(模型待機(jī))的狀態(tài)下DIM=SUB_DIV.20R(SUB_DIV.1AND SUB_DIV.0),由表2可以看出,在8個(gè)狀態(tài)時(shí)刻中,前3個(gè)狀態(tài)信號(hào)燈斷開(kāi)(DIM=0),后5個(gè)狀態(tài)信號(hào)燈接通(DIM=1),形成占空比為62.5%的30 Hz高頻信號(hào)。
調(diào)節(jié)閃爍信號(hào)的亮度可以靠對(duì)SUB_DIV的低3位進(jìn)行不同的邏輯操作來(lái)實(shí)現(xiàn),例如SUB_DIV.1 ORSUB_DIV.2的結(jié)果得占空比75%;SUB_D IV.0 ORSUB_DIV.1 OR SUB_DIV.2的結(jié)果得占空比為87.5%等。但要注意,在這8個(gè)狀態(tài)時(shí)刻中,信號(hào)燈只能通斷各一次,否則閃爍頻率就變了。
(4)關(guān)于各種信號(hào)的形成
由第102行至第113行是程序的基本部分,它們根據(jù)系統(tǒng)的輸入狀態(tài)(各開(kāi)關(guān)的位置)來(lái)計(jì)算送給指示燈的信號(hào)。這一段程序用布爾處理機(jī)完全實(shí)現(xiàn)了圖1所示的邏輯功能。
4 結(jié)論
采用單片機(jī)實(shí)現(xiàn)飛機(jī)航向控制顯示系統(tǒng)模型控制,具有系統(tǒng)響應(yīng)速度快,控制顯示功能直觀,課堂教學(xué)效果好的特點(diǎn)。經(jīng)過(guò)近2年教學(xué)使用和跟蹤調(diào)查,飛行學(xué)員在學(xué)科考試該部分內(nèi)容掌握非常好,后期飛行訓(xùn)練階段相關(guān)內(nèi)容與飛行實(shí)際結(jié)合效果反映較好。目前按照學(xué)科組劃分,對(duì)其他相關(guān)飛機(jī)系統(tǒng)模型進(jìn)行功能組合,以MCS-51單片機(jī)開(kāi)發(fā)系統(tǒng)為基礎(chǔ),開(kāi)展相關(guān)系統(tǒng)教學(xué)模型的設(shè)計(jì),并與多媒體技術(shù)交聯(lián),實(shí)現(xiàn)學(xué)科專修室建設(shè)。
評(píng)論