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