【正文】
如下: ① TP( ): TF=0 時(shí)等精度測(cè)頻; TF=1 時(shí)測(cè)脈寬; ② CLR/TRIG( ):當(dāng) TF=0 時(shí)系統(tǒng)全清零功能;當(dāng) TF=1 時(shí)CLRTRIG 的上跳沿將啟動(dòng) CNT2 ,進(jìn)行脈寬測(cè)試計(jì)數(shù); ③ ENDD ( ):脈寬計(jì)數(shù)結(jié)束狀態(tài)信號(hào), ENDD=1 計(jì)數(shù)結(jié)束; ④ CHOICE( ):自校 /測(cè)頻選擇, CHOICE=1 測(cè)頻; CHOICE=0自校; ⑤ START( ):當(dāng) TF=0 時(shí),作為預(yù)置門閘,門寬可通過鍵盤由單片機(jī)控制, START=1 時(shí)預(yù)置門開;當(dāng) TF=1 時(shí), START 有第二功能,此時(shí),當(dāng) START=0 時(shí)測(cè)負(fù)脈寬,當(dāng) START=1 時(shí)測(cè)正脈寬。 C H K FF INC H O ISF O U TF INS T A R TC L RF S DC L K 1E E N DC L K 2C L R CC L RC L KQ [3 1 ..0 ]C N T 1Q 1 [3 1 ..0 ]Q 2 [3 1 ..0 ]S E L [2 ..0 ]O O [7 ..0 ]C L RQ [3 1 ..0 ]C N T 2C L KC L RS T A R TF IN P U LE N D DC O N T R L2C L K 2F S DC N LP U LC L K O U TG A T EF IN C O N T R LD S E L2 4427O U T P U T4 1E E N D9O U T P U T4 2O O [7 ..0 ]O U T P U T4 3E N D D61 01 41 5C H E KFF IN P U TC H O IC EIN P U TV C CIN P U TV C CIN P U TV C CIN P U TV C CIN P U TV C CIN P U TV C CIN P U TV C CIN P U TV C CS T A R TC L R T R IGF S T DS E L [2 ..0 ]T F1 81 61 71 92 08 圖 測(cè)頻模塊邏輯圖 二 各模塊功能和工作步驟如下 : (一) 測(cè)頻 /測(cè) 周期的實(shí)現(xiàn) 被測(cè)信號(hào)脈沖從 CONTRL 模塊的 FIN 端輸入,標(biāo)準(zhǔn)頻率信號(hào)從CONTRL 的 FSD 端輸入, CONTRL 的 CLR 是此模塊電路的工作初始化信號(hào)輸入端。 ④ 計(jì)數(shù)結(jié)束后, CONTRL 的 EEND 端將輸出低電平來指示測(cè)量計(jì)數(shù)結(jié)束,單片機(jī)得到此信號(hào)后,即可利用 ADRC( ), ADRB( ), ADRA( )分別讀回 CNT1 和 CNT2 的計(jì)數(shù) 值,并根據(jù)精度測(cè)量公式進(jìn)行運(yùn)算,計(jì)算出被測(cè)信號(hào)的頻率或周期值。該信號(hào)的上沿和下沿信號(hào)對(duì)應(yīng)于未經(jīng)處理時(shí)的被測(cè)信號(hào) 50%幅度時(shí)的上沿和下沿 .被測(cè)信號(hào)從 FIN端輸入 ,CLR為初始化信號(hào) START 為工作使能信號(hào) .CONTRL2 模塊的 PUL 端與 GATE 的輸入端 PUL 連接 . 圖 脈沖寬度測(cè)量原理圖FINSTART CLRD QCVCCD QCVCCD QCCONTRL2VCCENDDPUL23PLENDGT 圖 脈沖 寬度測(cè)量原理圖 測(cè)量脈沖寬度的工作步驟如下 : ① 向 CONTRL 的 CLR 端送一個(gè)脈沖以便進(jìn)行電路的工作狀態(tài)初始化 . ② 將 GATE的 CNL端置高電平 ,表示開始脈沖寬度測(cè)量 ,這時(shí) CNT2的輸入信號(hào)為 FSD. ③ 在被測(cè)脈沖的上沿到來時(shí) ,CONTRL2的 PUL端輸出高電平 ,標(biāo)準(zhǔn)頻率信號(hào)進(jìn)入計(jì)數(shù)器 CNT2. ④ 在被測(cè)脈沖的下沿到來時(shí) ,CONTRL2的 PUL端輸出低電平 ,計(jì)數(shù)器 CNT2 被關(guān)斷 . ⑤ 由單片機(jī)讀出計(jì)數(shù)器 CNT2 的結(jié)果 ,并通過上述測(cè)量原理公式計(jì)算出脈沖寬度 . (四) 電路顯示模塊 系統(tǒng)硬件電路中,單片機(jī) MCU 與 FPGA 進(jìn)行數(shù)據(jù)交換占用了P0 口、 P1 口和 P3 口,因此數(shù)據(jù)顯示電路的設(shè)計(jì)采用靜態(tài)顯示的方式,顯示電路由 8個(gè)共陽(yáng)極七段數(shù)碼管和 8 片 1 位串入 8位并出的 74LS164 芯片組成。 USE 。 鎖存信號(hào) EN: OUT STD_LOGIC。 定義變量 BEGIN PROCESS(CLK) BEGIN IF(CLK39。 計(jì)數(shù)大于 15,清零 ELSE Q=Q+39。 EN=NOT Q(3)。 END ART。 USE 。 ARCHITECTURE ART OF CB10 IS 結(jié)構(gòu)體 BEGIN PROCESS(CLK,CLR,EN) BEGIN IF CLR=39。139。 允許計(jì)數(shù) END IF。 END ART。 USE 。 計(jì)數(shù)器清零信號(hào) QA,QB,QC,QD: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0))。 計(jì)數(shù)輸出信號(hào) END COMPONENT。 BEGIN CLK2=NOT QA(3)。 元件引用例示 U2:CB10 PORT MAP(CLK2,EN,CLR,QB)。 第三節(jié) 鎖存與譯碼顯示控制電路模塊的 VHDL源程序 一 譯碼顯示電路的 VHDL 源程序 程序 LIBRARY IEEE。 七段譯碼輸出信號(hào) END。 二 鎖存與譯碼顯示控制模塊的 VHDL 源程序 程序 LIBRARY IEEE。 LEDA,LEDB,LEDC,LEDD: OUT STD_LOGIC_VECTOR(6 DOWNTO 0))。 LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0))。139。 QDL=QD。 元件引用例示 U1: BCD7 PORT MAP(QBL,LEDB)。 程序主要講述了調(diào)用七段譯碼器的顯示,將輸入的信號(hào)經(jīng)過譯碼之后在七段譯碼器上進(jìn)行顯示。 ENT,LOCKT,CLRT: BUFFER STD_LOGIC。 SIGNAL QAS,QBS,QCS,QDS: STD_LOGIC_VECTOR(3 DOWNTO 0)。 COMPONENT COUNT 元件 COUNT引用說明語(yǔ)句 PORT(CLK,EN,CLR: IN STD_LOGIC。 QA,QB,QC,QD: IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 LOCKT=LOCKS。 元件引用例示 U3:LOCK PORT MAP(LOCKS,QAS,QBS,QCS,QDS,Z1,Z2,Z3,Z4)。 二 待測(cè)信號(hào)脈沖計(jì)數(shù)器的仿真 圖 測(cè)信號(hào)脈沖計(jì)數(shù)器的仿真 圖 顯示的是測(cè)信號(hào)脈沖計(jì)數(shù)器的仿真圖,以圖文的形式更直接的表現(xiàn)了信號(hào)脈沖的計(jì)數(shù)值,簡(jiǎn)介明了。 結(jié)論 本設(shè)計(jì)采用 EDA 技術(shù),利用測(cè)頻法的原理和 VHDL 語(yǔ)言,采用自頂向下的設(shè)計(jì)方法,實(shí)現(xiàn)了 1Hz~ 10kHz 測(cè)量范圍的四位十進(jìn)制的數(shù)字頻率計(jì),并在 MAX+PLUSⅡ軟件平臺(tái)下對(duì)設(shè)計(jì)項(xiàng)目進(jìn)行的了編譯和時(shí)序仿真。