多功能發(fā)動機(jī)轉(zhuǎn)速模擬器設(shè)計(jì)
3 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)的軟件流程如圖7所示。它包括頻率/轉(zhuǎn)速測量、串行A/D轉(zhuǎn)換值讀取、數(shù)值顯示及相關(guān)處理部分。
3.1 頻率/轉(zhuǎn)速測量軟件設(shè)計(jì)
當(dāng)電路一上電,MAX813L產(chǎn)生復(fù)位信號,促使單片機(jī)復(fù)位,程序跳至起始地址0000h,首先對內(nèi)部寄存器和MAX7219初始化,如TO、T1、TMOD,接著對TO、T1、EXl開中斷。喂狗語句放在循環(huán)查詢處,給MAX813L喂狗的時(shí)間間隔應(yīng)小于1.6 s,否則它將再次產(chǎn)生復(fù)位信號,擾亂程序的正常運(yùn)行。接著檢測P1.3腳,若為低電平,則執(zhí)行串行A/D轉(zhuǎn)換值的讀取程序;若為高電平,則單片機(jī)在信號下降沿被觸發(fā)中斷,開通T1定時(shí)、TO計(jì)數(shù)。當(dāng)T1定時(shí)1 s到,關(guān)閉TO、T1,讀取TO值后,再對TO、T1開中斷,重新計(jì)時(shí)計(jì)脈沖數(shù)。接著計(jì)算(T0值乘以2)、判斷(當(dāng)不超過9999或等于O時(shí),定為合法,并置FLAG標(biāo)志),然后送MAX7219,經(jīng)其譯碼后在LED上顯示,并有頻率指示燈亮,告知使用者顯示的是頻率值,以便根據(jù)所需調(diào)整旋扭W1(見圖2),使發(fā)生器發(fā)出想要的頻率值信號,這就是測量信號頻率的原理;若數(shù)值不合法,LED將不顯示或顯示O,此時(shí)應(yīng)調(diào)整W1直到合法。外來信號的頻率測量和顯示程序同前(需將扭轉(zhuǎn)開關(guān)旋到輸入檔)。若P2.7腳為低電平,則測量的是發(fā)動機(jī)的轉(zhuǎn)速,需將前面的頻率值代入轉(zhuǎn)速公式(2):
n=(f?60)/k (2)
式中:n為柴油機(jī)轉(zhuǎn)速(r/min),f為所測到的頻率值(Hz),k為發(fā)動機(jī)測速齒輪的齒數(shù)。
可見單片機(jī)需要讀取齒數(shù)值,然后計(jì)算并判斷(n不大于9999),并送LED顯示。需注意的是:上面所講的是先通過在1 s時(shí)間內(nèi)對轉(zhuǎn)速脈沖信號的個(gè)數(shù)進(jìn)行累加計(jì)數(shù),再代入公式(2)計(jì)算轉(zhuǎn)速。這種測量方法稱為測頻法。當(dāng)發(fā)動機(jī)在低速下運(yùn)轉(zhuǎn)時(shí),則要使用測周期法:先測出脈沖平均周期,然后使用除法算出頻率值,代入轉(zhuǎn)速公式計(jì)算,顯示后跳至循環(huán)查詢處,然后使用除法算出頻率值,代入轉(zhuǎn)速公式計(jì)算,顯示后跳至循環(huán)查詢處,并繼續(xù)查詢定時(shí)中斷。
3.2 串行A/D轉(zhuǎn)換值的讀取軟件設(shè)計(jì)
由于MAXl44與單片機(jī)的接口十分簡單,只需3根I/O線即可,故本系統(tǒng)使用單片機(jī)的P1.O、P1.1、P1.2。該電路采用內(nèi)部時(shí)鐘模式,單片機(jī)通過編程產(chǎn)生串行時(shí)鐘,并按時(shí)序讀出數(shù)據(jù),其A/D轉(zhuǎn)換后的數(shù)據(jù)(16位)可以存于MAXl44內(nèi)部的存儲單元R2、R3中,通過標(biāo)志位CHID可以區(qū)分CHO和CHl通道,然后將高4位屏蔽即可得到實(shí)際的A/D轉(zhuǎn)換數(shù)據(jù),利用ANL R3,OFH將高4位屏蔽。該程序結(jié)束后,R3內(nèi)為A/D轉(zhuǎn)換的12位數(shù)據(jù)的高4位,R2中為低8位,然后利用單片機(jī)內(nèi)設(shè)定的程序轉(zhuǎn)換(OFFFH對應(yīng)為2.048V,即20.48 mA;0000H對應(yīng)為OV,即O mA),即可顯示電流值的大小。
結(jié) 語
本多功能發(fā)動機(jī)轉(zhuǎn)速模擬器使用器件少,成本低,調(diào)節(jié)方便,易于實(shí)現(xiàn)。通過調(diào)試發(fā)現(xiàn),只要阻容元件的溫度系數(shù)低,則輸出頻率、電流是相當(dāng)穩(wěn)定的,因此性價(jià)比高。該多功能轉(zhuǎn)速模擬器的使用情況表明,其可靠性好、輸出穩(wěn)定、攜帶方便。
評論