基于51單片機(jī)和CPLD的數(shù)字頻率計(jì)的設(shè)計(jì)
被測(cè)信號(hào)脈沖經(jīng)CHOICE選擇后,從控制模塊CONTROL1的FX1端輸入,基準(zhǔn)頻率信號(hào)從FS端輸入,CLR是初始化信號(hào)。在進(jìn)行頻率或周期測(cè)量時(shí),完成如下步驟:
(1)在CLR端加正脈沖信號(hào)完成測(cè)試電路狀態(tài)的初始化。
(2)由預(yù)置門控信號(hào)將STROBE置高電平,預(yù)置門開始定時(shí),此時(shí)由被測(cè)信號(hào)的上沿打開計(jì)數(shù)器COUNT,同時(shí)對(duì)基準(zhǔn)頻率信號(hào)和被測(cè)信號(hào)進(jìn)行計(jì)數(shù)。
(3)頂置門定時(shí)結(jié)束信號(hào)把STROBE置為低電平(由單片機(jī)來(lái)完成),在被測(cè)信號(hào)的下一個(gè)脈沖的上沿到來(lái)時(shí),COUNT停止計(jì)數(shù)。
(4)計(jì)數(shù)結(jié)束后,ED1端輸出低電平來(lái)指示測(cè)量計(jì)數(shù)結(jié)束,單片機(jī)得到此信號(hào)后,即可利用SS0,SS1進(jìn)行選擇,四次分別讀回COUNT中基準(zhǔn)頻率信號(hào)和被測(cè)信號(hào)計(jì)數(shù)值,并根據(jù)上述測(cè)量公式進(jìn)行運(yùn)算,計(jì)算出被測(cè)信號(hào)的頻率或周期值。
系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)的單片機(jī)主控及其外圍電路模塊用Keil C語(yǔ)言編寫,軟件模塊對(duì)應(yīng)于硬件電路的每一個(gè)部分,還包括部分?jǐn)?shù)據(jù)計(jì)算和轉(zhuǎn)換模塊。CPLD模塊用VHDL語(yǔ)言編寫,并在Max+PlusⅡ平臺(tái)上,完成 CPLD的軟件設(shè)計(jì)、編譯、調(diào)試、仿真和下載。系統(tǒng)初始化后,主程序不斷掃描鍵盤子程序,當(dāng)其鍵按下時(shí),程序跳轉(zhuǎn)到相應(yīng)的子程序執(zhí)行其功能,然后返回繼續(xù) 執(zhí)行鍵盤掃描主程序。其主程序流程圖如圖5所示。
圖5 系統(tǒng)主程序流程
試驗(yàn)測(cè)試的結(jié)果如表1所示。
結(jié)論
本文將智能控制靈活、邏輯運(yùn)算能力強(qiáng)的單片機(jī)和集成度高、運(yùn)算速度快的CPLD相結(jié)合,突破了傳統(tǒng)電子系統(tǒng)設(shè)計(jì)的瓶頸,使設(shè)計(jì)的系統(tǒng)具有結(jié)構(gòu)緊湊、體積小,可靠性高,測(cè)頻范圍寬、精度高等優(yōu)點(diǎn)。它可作為獨(dú)立的儀表使用,也可用做其他儀器儀表的組成部分。
評(píng)論