導航:首頁 > 裝置知識 > 電子裝置設計數字頻率計報告

電子裝置設計數字頻率計報告

發布時間:2023-02-14 15:36:02

1. 單片機開題報告範文

隨著單片機由於其較小的體積和很高的性價比,而在各種電子產品中受到廣泛的應用和發展,單片機的研發人員也在不斷的進行技術上的革新。下面是我為大家整理的單片機開題報告範文,歡迎閱讀。

單片機開題報告範文篇1:

基於單片機數字頻率計設計開題報告

一、選題的依據及意義:

本課題主要研究如何用單片機來設計數字頻率計。因為在電子技術中,頻率的測量十分重要,這就要求頻率計要不斷的提高其測量的精度和速度。在科技以日新月異的速度向前發展,經濟全球一體化的社會中,簡潔、高效、經濟成為人們辦事的一大宗旨。在電子技術中這一點表現的尤為突出,人們在設計電路時,都趨向於用竟可能少的硬體來實現,並且盡力把以前由硬體實現的功能部分,通過軟體來解決。因為軟體實現比硬體實現具有易修改的特點,如簡單的修改幾行源代碼就比在印製電路板上改變幾條連線要容易的多,故基於微處理器的電路往往比傳統的電路設計具有更大的靈活性。

因為數字頻率計是計算機、通訊設備、音頻視頻等科研生產領域必不可少的測量儀器,所以頻率的測量就顯得更為重要。在數字電路中,頻率計屬於時序電路,它主要由具有記憶功能的觸發器構成。在計算機及各種數字儀表中,都得到了廣泛的應用。本課題採用的是直接測頻式的頻率計,設計原理簡單、電路穩定、測量精度高,大大的縮短了生產周期。

二、國內外研究概況及發展趨勢(含文獻綜述):

由於當今社會的需要,對信息傳輸和處理的要求不斷提高,對頻率的測量的精度也需要更高更准確的時頻基準和更精密的測量技術。而頻率測量所能達到的精度,主要取決於作為標准頻率源的精度以及所使用的測量設備和測量方法。目前,測量頻頻的方法有直接測頻法、內插法、游標法、頻差倍增法等等。直接測頻的方法較簡單,但精度不高。頻差倍增多法和周期法是一種頻差倍增法和差拍法相結合的測量方法,這種方法是將被測信號和參考信號經頻差倍增使被測信號

的相位起伏擴大,再通過混頻器獲得差拍信號,用電子計數器在低頻下進行多周期測量,能在較少的倍增次數和同樣的取樣時間情況下,得到比測頻法更高的系統解析度和測量精度,但是仍然存在著時標不穩而引入的誤差和一定的觸發誤差。

在電子系統廣泛的應用領域中,到處看見處理離散信息的數字電路。供消費用的冰箱和電視、航空通訊系統、交通控制雷達系統、醫院急救系統等在設計過程中都用到數字技術。 數字頻率計是現代通信測量設備系統中必不可少的測量儀器,不但要求電路產生頻率的准確度和穩定度都高的信號,也要能方便的改變頻率。

數字頻率計的實現方法主要有:直接式、鎖相式、直接數字式和混合式

(1)直接式

優點:速度快、相位雜訊低,但結構復雜、雜散多,一般只應用在地面雷達中。

(2)鎖相式

優點:相位同步的自動控制,製作頻率高,功耗低,容易實現系列化、小型化、模

塊化和工程化。

(3)直接數字式

優點:電路穩定、精度高、容易實現系列化、小型化、模塊化和工程化。

三、研究內容及實驗方案:

研究內容:本課題設計以單片機為核心,設計一種數字頻率計,應用單片機中的定時器/計數器和中斷系統等完成頻率的測量。

實驗方案:

圖1 頻率計總體設計框圖

四、目標、主要特色及工作進度

目標:

基於單片機的數字頻率計,畫出電路圖並用軟體模擬

工作特色:

(1)運用了單片機技術;

(2)運用了C語言、電路等知識;

(3)採用電腦等工具;

(4)採用顯示模塊、分頻模塊、單片機模塊等;

(5)簡單易理解,十分實用。

工作進度:

1、查閱文獻,翻譯英文資料,書寫開題報告; 第1---4周

2、相關資料的獲取和必要知識的學習 ; 第5---9周

3、設計系統的硬體和軟體模塊並調試 第10--14周

4、撰寫論文; 第15--16周

5、總結,准備答辯; 第17周

五、參考文獻

[1]李學海著.標准80C51單片機基礎教程.北京航空航天大學出版社,2006

[2] 戴仙金主編.51單片機及其C語言程序開發實例.清華大學出版社,2008

[3] 李誠人.高宏洋等.嵌入式系統及單片機應用,清華大學出版社,2005

[4] 龔運新編著.單片機C語言開發技術.清華大學出版社,2006

[5] 張天凡等編著.51單片機C語言開發詳解.電子工業出版社,2008

[6] 張義和.王敏男等.例說51單片機(C語言版).人民郵電出版社,2008

[7] 張洪潤、劉秀英、張亞凡等.單片機應用設計200例 .北京航空航天大學出版社,2006

[8] 彭為、黃科、雷道仲等.單片機典型系統設計實例精講.電子工業出版社, 2006

[9] 李學海著.標准80C51單片機基礎教程.北京航空航天大學出版社,2006

[10] 李朝青.單片機原理及介面技術[M].北京航天航空大學出版社,1998.

[11] 余發山,王福忠.單片機原理應用技術[M].徐州:中國礦業大學出版社,2003.

[12]V.Yu.Teplov,A.V. Anisimov.Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Moles Based on the Peltier Effect[J] ,2002

[13] Yeager Brent.How to troubleshoot your electronic scale[J]. Powder and Bulk Engineering. 1995

[14]WeiXiaoRu,JuJianZhi.Design of a CCD's driving circuit based on ATmega16.Microcomputer&Its Applications,2010,(16).

[15]HeLianYun,The Traffic Signal Lamp System Controlled with Single Chip Microcomputer.Computer Study,2008,(01).

單片機開題報告範文篇2:

基於單片機的火災報警器

一、畢業設計(論文)課題來源、類型

課題來源:生產(社會)實踐

課題類型:畢業設計

二、選題的目的及意義

對於廣大居民,尤其是單獨居住的老人,無人看護的病人、嬰幼兒童等弱勢群體在遇到火災時,行動不便,逃生能力不強,逃生所需時間相對較長,對他們來說火災的早期報警,爭取更多的逃生時間或者及時通知救援人員,避免造成人員傷亡,顯得更為重要。

火災報警器可以讓百姓的家居生活更加安全,本報警器是一個由單片機控制的火災煙霧濃度、溫度檢測系統,它將感測器輸出地電壓信號進行A/D轉換、濾波、線性化,由單片機將電壓值轉換為氣體濃度和溫度送LCD1602液晶顯示,並判斷是否超過報警上限,若超過,則發出聲光報警[1],並將報警情況通過GSM模塊發出,同時可以實現消防局對火災報警的集中接警,專業化處警,以最少的投資實現最快的接警和處警。同時還為接處警人員提供方便快捷的輔助決策手段,提高消防隊伍快速反應的能力,密切警民關系。高效的工作,還可以減少火災給居民帶來的人生安全的危害和財產的損失。

三、本課題在國內外的研究狀況及發展趨勢

以火災自動報警技術為核心的建築消防系統,是預防和遏制建築火災的重要保障。近年來,我國火災自動報警工程應用技術實現了較快發展。但由於在實際應用中,火災自動報警系統的通訊協議不一致,火災自動報警工程技術水平還相對落後,還存在著一些比較突出的問題。

(1)適用范圍過小。我國火災自動報警系統技術比美、英等發達國家起步較晚,安裝范圍主要是《高層民用建築設計防火規范》、《建築設計防火規范》規定的場所和部位,而在易造成群死群傷的中小型公眾聚集場所和社區居民家庭甚至部分高層住宅都沒有規定安裝火災自動報警系統,適用范圍過小,防範措施不到位。

(2)智能化程度低。我國使用的火災探測器雖然都進行了智能化設計,但由於感測器探測的參數較少、支持系統的軟體開發不成熟、各種演算法的准確性缺乏足夠驗證、火災現場參數資料庫不健全等,火災自動報警系統難以准確判定粒子(煙氣)的濃度、現場溫度、光波的強度以及可燃氣體的濃度、電磁輻射等指標,造成遲報、誤報、漏報情況較多。

(3)網路化程度低。我國應用的火災119動報警系統形式基本上以區域火災自動報警系統、集中火災自動報警系統和控制中心火災自動報警系統為主,安裝形式主要是集散控制方式,自成體系,自我封閉,尚未形成區域性網路化火災自動報警系統。

(4)組件連接方式有待改善。火災自動報警系統以多線制和匯流排制連接方式為主,探測器和報警器及控制器之間是採用兩條或多條的銅芯絕緣導線或銅芯電纜穿管相接,存在耗材多、成本高、抗干擾能力差的缺點。同時,銅導線耐高溫性能差、易磨損,系統施工維修復雜,影響了火災自動報警系統的可靠性和更廣泛的應用。

(5)火災自動報警系統誤報、漏報問題較多。由於火災探測器的安裝環境極其復雜,加之各種感測器在探測火災方面存在著某些先天不足,無法准確地感應各種物質在燃燒過程中所特有的聲波、光譜、輻射、氣味等諸多方面發生的微妙變化,對火災發生過程中所產生的不同粒徑和顏色的煙存在探測“盲區”,誤報、漏報現象時有發生。

(6)超早期火災探測器技術應用還幾乎處於空白。國外已開發出適合潔凈空間高靈敏度感煙火災探測報警系統,如激光式高靈敏度煙火災探測器,吸氣式高靈敏度感煙火災探測報警系統和氣體火災探測報警系統,與普通火災探測報警系統相比,其探測靈敏度提高了兩個數量級,甚至更多,這些系統採用了激光粒子計

數、激光散射等原理監視被保護空間,以單位體積內粒子增加的多少來判斷是否發生火災,系統可在火災發生前幾小時或幾天內識別潛在的火災危險性,實現超早期火災報警。而該技術我國目前還處於起步階段,有待進一步研究開發使用[2]。

針對上述問題,火災自動報警應用技術進一步著眼於當前國際發展的新形勢,加快更新改造進程,加強對數字技術和新工藝、新材料的應用,改進系統能力,使火災自動報警應用技術向著高可靠、低誤報和網路化、智能化方向發展。當前,國外火災自動報警應用技術的發展趨勢主要表現為網路化、智能化、多樣化、小型化、社區化、藍牙化、高靈敏化等。這也是火災自動報警應用技術的研究發展趨勢。

四、本課題主要的研究內容

設計一種以STC89C52單片機為核心的火災檢測與報警系統,可以通過氣體感測器實時獲取可燃氣體濃度、溫度感測器獲得火災現場溫度,並通過LCD1602液晶顯示,當濃度或溫度超過限定值時則報警並且把報警情況發送到報警器所設定的終端上。以方便人們更好的掌握安全狀況,提高生活質量。

五、擬採取的方法、技術或設計(開發)工具

本設計主要以MCS-51系列單片機STC89C52為控制核心,它自帶8K的FLASH程序存儲器,它的核心處理單元為8位。數據處理主要是對數字溫度感測器18B20採集溫度數據和對MQ-2煙物感測器進行AD採集,並進行邏輯判斷,根據數據的具體情況輸出到數碼管顯示和使蜂鳴器動作[3]。整個單片機應用系統的設計分為硬體電路設計和軟體編程設計兩大部分;其中硬體電路設計包括溫度採集電路,MQ-2煙物感測器電路,單片機控制電路,顯示電路,報警與控制電路和GSM模塊。軟體設計部分包括系統主程序,溫度採集子程序,數碼管顯示子程序,GSM模塊子程序和輸出驅動子程序,均採用51系列C語言編程實現。

六、本課題進度安排、各階段預期達到的目標

進度計劃:

2014.12.15 - 2015.3.1: 查找資料、搜集相關素材

2015.3.2 - 2015.3.6:完成需求分析

2015.3.7 - 2015.3.12: 完成概要設計

2015.3.13 - 2015.4.1:完成詳細設計

2015.4.2 - 2015.4.10完成編碼

2015.4.11 - 2015.4.13: 完成軟體測試

2015.4.14 - 2015.4.25:整理資料、撰寫設計報告

2015.4.26 - 2015.4.30:根據導師要求,完善畢業設計和設計報告

2. 數字頻率計

1)測周法:使用「測周法」測量輸入信號的頻率,在數字電路中可以利用被測信號的邊沿來向電路內部提供一個閘門時間,在閘門時間內對系統內部提供的標准高頻時鍾信號的邊沿進行計數。若被測信號的頻率為 ,標准高頻時鍾信號的頻率為 ,測量所得計數值為 ,則可以根據公式(1)得到被測信號頻率。

時序圖如圖1.1.1所示:

2)計數法:使用「計數法」測量輸入信號的頻率,即通過系統內部給一個固定閘門時間,在閘門時間內用計數器對被測信號的邊沿進行計數。若被測信號的頻率為 ,內部閘門時間為T,測量所得計數值為 ,則可以根據公式(2)得到被測信號頻率。

時序圖如圖1.1.2所示:

因為在數字電路中使用中小規模邏輯器件構建多位除法器電路十分困難,故選擇計數法來測量被測信號的頻率。通過設置內部閘門時間T為1s,計數器在閘門時間內的計數值 即為被測信號的頻率值。

根據設計要求,數字頻率計最高需測量100kHz的TTL電平信號,故數字頻率計系統通過邏輯控制電路給計數器晶元提供1s閘門時間的計數信號,在1s計數完成之後鎖存計數器所得到的計數值,並且通過解碼器解碼完成後通過數碼管顯示出來。鎖存完成之後再向計數器提供清零信號,然後計數器再開始下一次的測量,系統整體設計框圖如圖1.2.1所示。

時基電路是由555定時器構成的多諧振盪器,電路原理圖如圖2.1.1所示。在接通電源之後,若此時555定時器的放電三極體T未導通,則電容C1通過電阻R1、R2進行充電,此時電路輸出高電平。當電容C1上的電壓達到 時,電路輸出高電平,同時放電三極體T導通,電容C1通過電阻R2放電,電路輸出低電平。當電容C1上電壓下降至 時,電路輸出翻轉為高電平,同時放電三極體T截止,電路周而復始的工作,產生時基信號。

時基信號的高電平時間由電容充電時間決定,其計算公式如下:

時基信號的低電平時間由電容充電時間決定,其計算公式如下:

使用模擬示波器測量時基電路輸出的時基信號,示波器測量結果如圖2.1.2所示。根據示波器測量結果,時基信號的高電平時間約為1s,低電平時間約為120ms,時基信號滿足設計要求。

根據設計要求,需測量100kHz的信號,使用計數法計數時,計數模塊最低需在1s內可以計100k個邊沿脈沖。且因為顯示模塊為數碼管,為了讓數碼管方便顯示,故每一個計數器晶元都應設計為模十計數器,同時為6個模十計數器級聯才能符合設計要求。但是當計數模塊為6個計數器級聯時,若採用同步計數器,則可能會使得計數脈沖的負載加重,故選擇採用非同步十進制計數器晶元74LS90,其晶元的功能表如表2.2.1所示。

根據晶元功能表,當R9(1)、R9(2)保持低電平時,可以通過控制R0(1)、R0(2)兩個引腳的電平高低來控制計數器工作狀態。故通過邏輯控制電路向計數模塊輸入計數/清零信號,當該信號為高電平時,計數器計數。當該信號為低電平時,計數器清零。為了實現計數器之間的級聯,將低位計數器的Q4輸出端接至高位計數器的CKA輸入端。當低位計數器的計數狀態Q0Q1Q2Q3從1001變為0000即計數值從9變為0時,Q4會產生一個下降沿信號輸入到高位計數器的CKA端,實現了低位計數器向高位計數器的進位功能。計數模塊電路圖如圖2.2.2所示。

給電路加上計數/清零信號和被測信號後,使用邏輯分析儀去測量其中一個計數器晶元的輸出,其輸出結果如圖2.2.3所示,其中A0-A3分別對應著計數器晶元的四個輸出端Q0-Q3,A4為計數/清零信號。根據測量結果,計數器能夠在計數信號有效時正常計數,在清零信號有效時保持清零狀態。

根據設計方案,解碼顯示模塊需完成對計數器的計數結果進行鎖存、解碼並且通過數碼管顯示出來。為了減少晶元數量,故選擇自帶鎖存功能的解碼器晶元CD4511,CD4511的功能表如表2.3.1所示。

根據CD4511功能表,數碼管應選擇共陰極數碼管。邏輯控制電路給解碼顯示模塊輸入鎖存解碼信號,即CD4511晶元的 和 始終保持著接高電平,給晶元的LE端輸入解碼顯示信號。當解碼顯示信號為高電平時,解碼顯示模塊鎖存在上一個LE=0時的狀態,顯示在高電平來臨之前的狀態,當解碼顯示信號為低電平時,解碼顯示模塊就會實時刷新顯示狀態。解碼顯示模塊電路圖如圖2.3.2所示。

閘門電路需根據閘門信號來控制被測信號是否能夠輸入到計數模塊。當閘門信號為高電平時,被測信號能夠正常地通過閘門電路輸入到計數模塊,而當閘門信號為低電平時,被測信號被閘門阻礙,無法通過閘門電路。

根據閘門電路的設計要求,可以採用二輸入與非門來實現閘門信號對被測信號是否輸入到計數模塊的控制。如表2.4.1為四2輸入與非門74LS00的功能表。若閘門信號輸入到與非門的A端,被測信號輸入到與非門的B端,根據其功能表可知,當閘門信號為高電平時,閘門電路的輸出信號與被測信號反相,當閘門信號為低電平時,閘門電路的輸出信號一直保持高電平,阻礙被測信號輸入計數模塊。閘門電路的電路圖如圖2.4.2所示。

向閘門電路輸入閘門信號和被測信號,使用模擬示波器觀察輸出信號與兩個輸入信號的波形圖,如圖2.4.3所示。

如圖所示,第一個信號為閘門電路輸出信號,第二個為被測信號,第三個為閘門信號。當閘門信號為高電平時,被測信號能夠正常地通過閘門電路輸出到計數模塊,當閘門電路為低電平時,閘門電路輸出保持為高電平,導致被測信號無法傳輸到計數模塊,滿足設計要求。

根據設計方案,邏輯電路需要根據輸入的時基信號,通過邏輯電路來產生控制計數模塊的清零信號和控制解碼顯示模塊的鎖存信號,以此來實現數字頻率計的自動測量和刷新功能。

解碼顯示模塊需要通過邏輯控制電路產生一個解碼信號來實現對解碼顯示模塊的鎖存數據和刷新數據的功能。解碼信號是在計數模塊測量完成之後,在清零信號有效之前進行鎖存當前測量結果的數據,根據CD4511的功能表, 鎖存信號是高電平有效,即在高電平時解碼器對高電平來臨之前的輸入信號進行鎖存並保持,在低電平時鎖存失效,即根據輸入信號的變化實時刷新輸出信號。在邏輯控制電路內,為了讓其基於時基信號產生鎖存信號,採用了555構成的不可重復觸發的單穩態觸發器。

單穩態觸發器的特點是電路有一個穩定狀態和一個暫穩狀態。在觸發信號作用下,電路將由穩態翻轉到暫穩態,但是暫穩態是一個不能長久保持的狀態,由於電路中RC延時環節的作用,經過一段時間後,電路會自動返回到穩態,並在輸出端獲得一個脈沖寬度為 的矩形波。在單穩態觸發器中,輸出的脈沖寬度 ,就是暫穩態的維持時間,其長短取決於電路中電阻R和電容C的參數值。

由555構成的單穩態觸發器電路及工作波形如圖2.5.2所示。圖中R,C為外接定時元件,輸人的觸發信號 接在555的低電平觸發端(2腳)。穩態時,輸出 為低電平,即無觸發器信號( 為高電平)時,電路處於穩定狀態且輸出低電平。在 的負脈沖作用下,低電平觸發端得到低於 ,輸出 為高電平,放電三級管T截止,電路進入了暫穩態,定時開始。在暫穩態期間,電源→R→C→地,實現對電容的充電,充電時間常數T=RC, 按指數規律上升。當電容兩端電壓 上升到 後,6端為高電平,輸出 變為低電平,放電三極體T導通,定時電容C充電結束,即暫穩態結束。電路恢復到穩態 為低電 平的狀態。當第二個觸發脈沖到來時,又重復上述過程。

根據上述555單穩態觸發器電路原理, 從零電平上升到 的時間就是輸出電壓 的脈寬 ,其計算公式如公式5所示。

邏輯控制電路的原理圖如圖2.5.3所示,實現對輸入的時基信號進行變換,轉化為清零信號和鎖存信號。

向邏輯控制電路輸入時基信號,使用示波器測量其輸入信號和輸出的清零信號及鎖存信號的波形圖,如圖2.5.4所示。鎖存信號在時基信號的下降沿觸發,一直持續到時基信號下一次下降沿之前才轉化為低電平,清零信號與時基信號相比較發現清零信號在產生於時 基信號的上升沿,且比較短暫,模擬結果滿足設計方案。

方波發生器的電路是以555多諧振盪器為模板,通過控制555多諧振盪器的電阻大小和電容大小來改變輸出的矩形波的頻率。具體的555多諧振盪器電路原理參見節2.2.1。根據設計要求,矩形波發生器的電路原理圖如圖2.6.1所示。

使用頻率計測量矩形波發生器的輸出頻率,其最大頻率與最小頻率如圖2.6.2所示。

在設計邏輯控制電路時,原本採取的設計方案是用單穩態觸發器通過對時基信號的觸發產生一個很窄的高電平脈沖信號作為清零信號,再對清零信號通過一個單穩態觸發器產生一個很窄的低電平脈沖信號作為鎖存信號。這個設計方案是基於所使用單穩態觸發器為脈沖觸發時,才可能使得單穩態觸發器的暫穩態時間低於觸發信號的脈沖寬度。但是所使用的單穩態觸發電路是由555定時器晶元為核心搭建的,而根據555定時器晶元的功能表,如表3.1.1所示,555定時器搭建的單穩態觸發電路為電平觸發的單穩態電路,故修改設計方案,具體方案參考節2.5.1。

在製作頻率計時,考慮到電路較為復雜,如果在洞洞板上搭建電路則在電路連接上會受限制,會使用大量的跳線或者杜邦線去連接電路,電路的穩定性和可靠性比較低。故採用設計PCB製作電路板的方式去實現電路。

但是在設計PCB時由於經驗不足,在布線時將兩個不同網路的線路和焊盤放的過近,導致所製作出來的電路板在有的地方發生了短路的現象,花費了大量的時間去排查和解決短路問題。在放置數碼管與CD4511之間的限流電阻時,由於疏忽導致電阻的阻值不等,使得數碼管亮度不均勻。

通過本次數字頻率計課程設計,加強了我在數字電路方面的認識。在設計頻率計的電路時,通過查找資料加深了對時序電路和邏輯電路的了解,同時也學會了如何去通過查閱晶元的數據手冊來分析它的功能和建立時間、保持時間等一些參數,以此來選取符合設計功能的晶元。在電路的時序邏輯設計上,通過本次設計讓我體會到了數字電路中的時序對於整個系統是否正常能夠工作起著決定性作用。在時基電路和邏輯控制電路的設計中所運用的555定時器晶元搭建的不同功能的電路,讓我對與單穩態電路和無穩態電路有直接的體會。在模擬電路,學會了使用Protues這一款電子電路模擬軟體,並且通過虛擬示波器和邏輯分析儀去觀察和分析電路的時序邏輯。

在製作實物時,使用了EDA電路設計軟體來設計PCB和製作電路板來完成實物製作,在製作的過程中逐漸熟悉了軟體的時候和畫PCB的技巧。同時也發現了並非電路模擬成功電路就一定不存在問題。由於在實際電路中,各類元件的參數上的誤差和焊接上的缺陷對電路都會造成影響。而且在製作電路時一定要認真檢查,如果一處出現失誤,會導致整個電路失去作用甚至燒壞電路。所以在製作實物時要足夠的細心去排查電路故障產生的原因並且去修正它。

在短短幾天的課程設計中,不僅加深了我對數字電路基礎知識的掌握程度,而且還讓我經歷了一個電路從無到有的設計和製作過程,加深了對專業知識的理解,讓我對專業知識的學習有了更大的興趣和動力。

3. 數字頻率計

我有。不過我上年可是花了三個月做的。有詳細的論文和vhdl程序。心血吖。加點分我給你[email protected]

4. 簡易數字頻率計的設計

頻率測量的方法常用的有測頻法和測周法兩種。

測頻法的基本思想是讓計數器在閘門信號的控制下計數1秒時間,計數結果是1秒內被測信號的周期數,即被測信號的頻率。若被測信號不是矩形脈沖,則應先變換成同頻率的矩形脈沖。測頻法的原理框圖如圖所示。

圖中,秒脈沖作為閘門信號,當其為高電平時,計數器計數;低電平時,計數器停止計數。顯然,在同樣的閘門信號作用下,被測信號的頻率越高,測量誤差越小。當被測頻率一定時,閘門信號高電平的時間越長,測量誤差越小。但是閘門信號周期越長,測量的響應時間也越長。

2、當被測信號頻率較低時,為保證測量精度,常採用測周法。即先測出被測信號的周期,再換算成頻率。測周法的實質是把被測信號作為閘門信號。

在它的高電平的時間內,用一個標准頻率的信號源作為計數器的時鍾脈沖。若計數結果為N,標准信號頻率為f1,則被測信號的周期為:T = T1·N。被測信號的頻率為:f = 1/T1·N = f1/N。

利用測周法所產生的最大絕對誤差,顯然也等於±1個標准信號周期。如果被測信號周期的真值為T真= T1·N,則T測= T1·(N±1)σmax= (f測-f真)/ f真= T真/T測 – 1=±1/(N±1)由上式可知,對於一定的被測信號,標准信號的頻率越高,則N的值越大,因而相對誤差越小。

3、低頻段的測量,鑒於上述困難,對於低頻信號,為了達到規定的精度,要採取一些比較特殊的方法。例如,可考慮將被測信號倍頻後再用測頻法測量。

或將閘門信號展寬。由於倍頻電路比較復雜,所以一般採用後一種方法,實際上閘門信號展寬與被測信號倍頻在效果上是相同的。

閘門信號展寬比較容易做到,例如採用分頻電路就可以實現。若閘門信號高電平時間從1秒展寬到10秒,則相對誤差可以按比例下降,但響應時間也增大相同的比例。

4、顯示方式:共用右邊四個數碼管,左三個顯示數據,最右端一個顯示單位,為0時單位為Hz,為1時單位為Khz

5、代碼:

//#include<c8051F330.h>

#include<ZLG7289.h>

#include<init.h>

#define uint unsigned int

uint a,b,c,d;

unsigned long x;

unsigned long count;

unsigned char flag=0;

void Timer0_Init()interrupt 1

{

TH0=(65535-10000)/256;

TL0=(65535-10000)%256;

if(++count==40)

{

count=0;

TR1=0;

x=TH1*256+TL1;

TH1=0;

TL1=0;

TR1=1;

flag=1;

}

}

void show(void)

{if(x>=10&&x<100)

{

a=0;

b=x*10%100;

c=x/10;

d=x%10;

ZLG7289_Download(1,7,0,a);

ZLG7289_Download(1,6,0,b);

ZLG7289_Download(1,5,1,d);

ZLG7289_Download(1,4,0,c);

}

else if(x>=100&&x<1000)

{

a=0;

b=x/100;

c=x%100/10;

d=x%10;

ZLG7289_Download(1,7,0,a);

ZLG7289_Download(1,6,1,d);

ZLG7289_Download(1,5,0,c);

ZLG7289_Download(1,4,0,b);

}

else if(x>=1000&&x<10000)

{

a=x/1000;

b=x%1000/100;

c=x%100/10;

d=1;

ZLG7289_Download(1,7,0,d);

ZLG7289_Download(1,6,0,c);

ZLG7289_Download(1,5,0,b);

ZLG7289_Download(1,4,1,a);

}

}

main(void)

{

system_init();

systemclk_init();

port_init();

ZLG7289_Init(40);

ZLG7289_Reset();

timer_init();

while(1)

{

if(flag==1)

{

show();

flag = 0;

}

}}

#include <C8051F330.h>

#include <port.h>

void system_init()

{

PCA0MD&=~0x40;

}

void systemclk_init()

{

OSCICL=OSCICL+42; //設置內部振盪器為24MHZ

OSCICN|=0x01; //內部振盪器4分頻

}

void port_init()

{

P0SKIP=0x00; //跳過P0.0做INT0.P0.1做INT1(P0.6,P0.7模擬輸出不跳)

P1SKIP=0x00; //跳過P1.2,P1.3,P1.4

XBR0=0x00; //交叉開關使能UART0

XBR1=0x60; //打開交叉開關

//IT01CF=0x10; //INT0配置在P0.0,INT1配置在P0.1

P0MDIN=0xFF; //數字輸入

P1MDIN=0xFF;

P0MDOUT=0xFF; //推挽

P1MDOUT=0xFF;

}

void timer_init()

{

TMOD=0X51;

TH0=(65535-2500)/256;

TL0=(65535-2500)%256;

EA=1;

ET0=1;

TR1=1;

TR0=1;

}

#ifndef __port_H_

#define __port_H_

void system_init(void);

void systemclk_init(void);

void port_init(void);

void timer_init(void);

#endif

5. 跪求:《數字頻率計的設計》 原理,方框圖,電路圖!

摘 要:文中運用VHDL語言,採用Top To Down的方法,實現8位數字頻率計,並利用Isp Expert集成開發環境進行編輯、綜合、波形模擬,並下載到CPLD器件中,經實際電路測試,該系統系統性能可靠。
關鍵詞:EDA;VHDL;數字頻率計;波形模擬;CPLD�
1引言
VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成電路硬體描述語言)誕生於1982年,是由美國國防部開發的一種快速設計電路的工具,目前已經成為IEEE(The Institute of Electrical and Electronics Engineers)的一種工業標准硬體描述語言。相比傳統的電路系統的設計方法,VHDL具有多層次描述系統硬體功能的能力,支持自頂向下(Top to Down)和基於庫(LibraryBased)的設計的特點,因此設計者可以不必了解硬體結構。從系統設計入手,在頂層進行系統方框圖的劃分和結構設計,在方框圖一級用VHDL對電路的行為進行描述,並進行模擬和糾錯,然後在系統一級進行驗證,最後再用邏輯綜合優化工具生成具體的門級邏輯電路的網表,下載到具體的CPLD器件中去,從而實現可編程的專用集成電路(ASIC)的設計。
數字頻率計是數字電路中的一個典型應用,實際的硬體設計用到的器件較多,連線比較復雜,而且會產生比較大的延時,造成測量誤差、可靠性差。隨著復雜可編程邏輯器件(CPLD)的廣泛應用,以EDA工具作為開發手段,運用VHDL語言。將使整個系統大大簡化。提高整體的性能和可靠性。
本文用VHDL在CPLD器件上實現一種8 b數字頻率計測頻系統,能夠用十進制數碼顯示被測信號的頻率,不僅能夠測量正弦波、方波和三角波等信號的頻率,而且還能對其他多種物理量進行測量。具有體積小、可靠性高、功耗低的特點。
2數字頻率計的基本設計原理
數字頻率計的原理框圖如圖1所示。他主要由5個模塊組成,分別是:脈沖發生器電路、測頻控制信號發生器電路、計數模塊電路、鎖存器、解碼驅動電路。�

當系統正常工作時,脈沖發生器提供的1 Hz的輸入信號,經過測頻控制信號發生器進行信號的變換,產生計數信號,被測信號通過信號整形電路產生同頻率的矩形波,送入計數模塊,計數模塊對輸入的矩形波進行計數,將計數結果送入鎖存器中,保證系統可以穩定顯示數據,顯示解碼驅動電路將二進製表示的計數結果轉換成相應的能夠在七段數碼顯示管上可以顯示的十進制結果。在數碼顯示管上可以看到計數結果。�
3設計實現�
3.1系統方框圖的劃分和結構設計
根據數字頻率計的系統原理框圖(圖1虛線框內),設計系統的頂層電路圖如圖2所示。�

圖2中TESTCTL為測頻控制信號發生器。TESTCTL的計數使能信號TSTEN能產生一個1 s寬的周期信號,並對頻率計的每一計數器CNT10的ENA使能端進行同步控制:當TSTEN高電平時允許計數、低電平時停止計數。
REG32B為鎖存器。在信號Load的上升沿時,立即對模塊的輸入口的數據鎖存到REG32B的內部,並由REG32B的輸出端輸出,然後,七段解碼器可以解碼輸出。在這里使用了鎖存器,好處是可以穩定顯示數據,不會由於周期性的清零信號而不斷閃爍。
CNT10為十進制計數器。有一時鍾使能輸入端ENA,用於鎖定計數值。當高電平時允許計數,低電平時禁止計數。圖2中將8個十進制計數器CNT10級聯起來實現8 b十進制計數功能。
SEVYM為七段解碼顯示驅動電路,可以將頻率計數的結果譯成能在數碼管上顯示相對應的阿拉伯數字,便於讀取測量的結果。
為了實現系統功能,測頻控制信號發生器TESTCTL、計數器CNT10、鎖存器REG32B存在一個工作時序的問題,設計時需要綜合考慮。
圖3給出了系統的工作時序。圖3中CLK是由圖1中脈沖發生器產生的頻率為1 Hz的標准時鍾信號,當測頻控制信號發生器TESTCTL的TSTEN端為高電平時允許計數、低電平時停止計數,在停止計數期間,測頻控制信號發生器TESTCTL的Load端產生一個上升沿,將計數器在前1 s的計數值鎖存進32 b鎖存器REG32B中,並由8個7段解碼器將計數結果譯出穩定顯示。鎖存信號之後經過半個CLK周期,測頻控制信號發生器TESTCTL的CLR�_CNT端產生一個上升沿,對計數器進行清零。為下1 s的計數操作做准備。
為了產生這個時序圖,首先有一個D觸發器構成二分頻器,在每次時鍾CLK的上升沿到來使其值翻轉。D觸發器的輸出高電平正好是1 s,因此可以作為測頻控制信號發生器TESTCTL的TSTEN端,用來控制計數。而Load信號正好是TSTEN端信號的翻轉。在計數結束後半個CLK周期,CLK與TSTEN都為低電平,這時CLR�_CNT產生一個上升沿作為清零信號。�

3.2各模塊的VHDL源程序
採用VHDL描述數字頻率計的電路時,根據圖2所示的數字頻率計系統頂層電路圖,按照自頂向下的設計思路,編寫各個模塊的VHDL源程序,最後再對各個模塊進行組合,編寫頂層描述的VHDL源程序,由於篇幅所限,本文僅介紹數字頻率計頂層描述的源程序,各個模塊的VHDL源程序編寫較為簡單,可以根據各自的功能,相應地寫出。
8位數字頻率計的頂層描述VHDL源程序為:

4系統的功能模擬
Lattice公司推出的Isp Expert的數字系統設計軟體,是一套完整的EDA軟體,能夠對所設計的數字電子系統進行時序模擬和功能模擬。
採用Lattice公司推出的Isp Expert EDA軟體,對所編寫數字頻率計VHDL源程序進行編譯、邏輯綜合,自動地把VHDL描述轉變為門級電路。然後進行波形模擬,編寫的模擬測試向量文件如下(為模擬簡單起見,測試一個66 Hz的周期信號):

模擬後得到的波形圖如圖4所示,從模擬波形上看測量的結果是准確的。還可以進一步修改測試向量文件,進行波形模擬。最後通過編程電纜,將所設計的內容下載到CPLD器件中,進行實物模擬。�

5結語
本文介紹了使用VHDL語言設計數字頻率計的方法,並下載到CPLD中組成實際電路,這樣可以簡化硬體的開發和製造過程,而且使硬體體積大大縮小,並提高了系統的可靠性。同時在基本電路模塊基礎上,不必修改硬體電路,通過修改VHDL源程序,增加一些新功能,滿足不同用戶的需要,實現數字系統硬體的軟體化。

6. 單片機課程設計數字頻率計

數碼管台古老了,你用這個吧,看著還稍微有點可以,代碼和電路都給你了,沒有做不出來的理由,有問題加我QQ11422376745

#include "d:c51 eg51.h"

#include "d:c51intrins.h"

sbit LCM_RS=P3^0;

sbit LCM_RW=P3^1;

sbit LCM_EN=P3^7;

#define BUSY 0x80 //常量定義

#define DATAPORT P1

#define uchar unsigned char

#define uint unsigned int

#define L 50

uchar str0[16],str1[16],count;

uint speed;

unsigned long time;

void ddelay(uint);

void lcd_wait(void);

void display();

void initLCM();

void WriteCommandLCM(uchar WCLCM,uchar BusyC);

void STR();

void account();

/*********延時K*1ms,12.000mhz**********/

void int0_isr(void) interrupt 0 /*遙控使用外部中斷0,接P3.2口*/

{

unsigned int temp;

time=count;

TR0=0;

temp=TH0;

temp=((temp << 8) | TL0);

TH0=0x3c;

TL0=0xaf;

count=0;

TR0=1;

time=time*50000+temp;

}

void time0_isr(void) interrupt 1 /*遙控使用定時計數器1 */

{

TH0 =0x3c;

TL0 =0xaf;

count++;

}

void main(void)

{

TMOD=0x01; /*TMOD T0選用方式1(16位定時) */

IP|=0x01; /*INT0 中斷優先*/

TCON|=0x11; /*TCON EX0下降沿觸發,啟動T0*/

IE|=0x83;

TH0=0x3c;

TL0=0xaf;

initLCM();

WriteCommandLCM(0x01,1); //清顯示屏

for(;;)

{

account();

display();

}

}

void account()

{

unsigned long a;

if (time!=0)

{

a=L*360000000/time;

}

speed=a;

}

void STR()

{

str0[0]='S';

str0[1]='p';

str0[2]='e';

str0[3]='e';

str0[4]='d';

str0[5]=' ';

str0[6]=(speed%100000)/10000+0x30;

str0[7]=(speed%10000)/1000+0x30;

str0[8]=(speed%1000)/100+0x30;

str0[9]='.';

str0[10]=(speed%100)/10+0x30;

str0[11]=speed%10+0x30;

str0[12]='k';

str0[13]='m';

str0[14]='/';

str0[15]='h';

}

void ddelay(uint k)

{

uint i,j;

for(i=0;i<k;i++)

{

for(j=0;j<60;j++)

{;}

}

}

/**********寫指令到LCD子函數************/

void WriteCommandLCM(uchar WCLCM,uchar BusyC)

{

if(BusyC)lcd_wait();

DATAPORT=WCLCM;

LCM_RS=0; /* 選中指令寄存器*/

LCM_RW=0; // 寫模式

LCM_EN=1;

_nop_();

_nop_();

_nop_();

LCM_EN=0;

}

/**********寫數據到LCD子函數************/

void WriteDataLCM(uchar WDLCM)

{

lcd_wait( ); //檢測忙信號

DATAPORT=WDLCM;

LCM_RS=1; /* 選中數據寄存器 */

LCM_RW=0; // 寫模式

LCM_EN=1;

_nop_();

_nop_();

_nop_();

LCM_EN=0;

}

/***********lcd內部等待函數*************/

void lcd_wait(void)

{

DATAPORT=0xff; //讀LCD前若單片機輸出低電平,而讀出LCD為高電平,則沖突,Proteus模擬會有顯示邏輯黃色

LCM_EN=1;

LCM_RS=0;

LCM_RW=1;

_nop_();

_nop_();

_nop_();

while(DATAPORT&BUSY)

{ LCM_EN=0;

_nop_();

_nop_();

LCM_EN=1;

_nop_();

_nop_();

}

LCM_EN=0;

}

/**********LCD初始化子函數***********/

void initLCM( )

{

DATAPORT=0;

ddelay(15);

WriteCommandLCM(0x38,0); //三次顯示模式設置,不檢測忙信號

ddelay(5);

WriteCommandLCM(0x38,0);

ddelay(5);

WriteCommandLCM(0x38,0);

ddelay(5);

WriteCommandLCM(0x38,1); //8bit數據傳送,2行顯示,5*7字型,檢測忙信號

WriteCommandLCM(0x08,1); //關閉顯示,檢測忙信號

WriteCommandLCM(0x01,1); //清屏,檢測忙信號

WriteCommandLCM(0x06,1); //顯示游標右移設置,檢測忙信號

WriteCommandLCM(0x0c,1); //顯示屏打開,游標不顯示,不閃爍,檢測忙信號

}

/****顯示指定坐標的一個字元子函數****/

void DisplayOneChar(uchar X,uchar Y,uchar DData)

{

Y&=1;

X&=15;

if(Y)X|=0x40; //若y為1(顯示第二行),地址碼+0X40

X|=0x80; //指令碼為地址碼+0X80

WriteCommandLCM(X,0);

WriteDataLCM(DData);

}

/*******顯示指定坐標的一串字元子函數*****/

void DisplayListChar(uchar X,uchar Y,uchar *DData)

{

uchar ListLength=0;

Y&=0x01;

X&=0x0f;

while(X<16)

{

DisplayOneChar(X,Y,DData[ListLength]);

ListLength++;

X++;

}

}

void display()

{

STR();

DisplayListChar(0,0,str0);

DisplayListChar(0,1,str1);

}

7. 電子測量與儀器的實驗報告怎麼寫

英盛觀察:
一. 實訓目的(1) 熟悉常用電子儀器的功能及使用方法。(2) 掌握常用電子儀器的工作原理。(3) 掌握常用電子儀器附加功能的使用。(4) 熟練使用常用電子儀器進行數據測量。(5) 掌握常用電子元器件的測量方法,掌握電子元器件的焊接技巧和裝配工藝;學會 使用萬用表、示波器、毫伏表、頻率計、 信號發生器等電子測量儀器。掌握查找電子設備故障的一般方法。培養學生實際動手操作能力;為學生以後參加工作打下良好的基礎。

二.基本要求一、課程性質和任務

陝航航空電子設備維修專業的主幹專業課程。其任務是使學生掌握從事航空電子設備維修工作所必需的電子基本工藝和基本技能,初步形成解決實際問題的能力,為學習其他專業知識和職業技能打下基礎。

二、課程教學目標

(一) 知識教學目標

1. 了解電工電子儀表、儀器的基本結構及正確使用與維護;2. 掌握常用電子元器件的正確識別與檢測方法;3. 理解常用電子電路和簡單電子整機電路的分析、檢測與常見故障排除方法;4. 掌握電子電路安裝的工藝知識。

(二) 能力培養目標

1. 能正確使用常用電工電子儀表、儀器;2. 能正確閱讀分析電路原理圖和設備方框圖,並能根據原理圖繪制簡單印刷電路;3. 初步學會藉助工具書、設備銘牌、產品說明書及產品目錄等資料,查閱電子元器件及產品有關數據、功能和使用方法;4. 能按電路圖要求,正確安裝、調試單元電子電路、簡單整機電路;5. 處理電子設備的典型故障。

(三) 思想教育目標

1. 具有熱愛科學、實事求是的學風和創新意識、創新精神;2. 加強愛崗敬業意識和職業道德意識。

三、教學內容和要求

基 礎 模 塊

(一) 常用電子儀器、儀表的使用與維護1. 了解常用電子儀器、儀表的結構;2. 理解常用電子儀器、儀表的基本功能;3. 掌握常用電子儀器、儀表的使用方法和注意事項。

(二) 常用電子元器件的識別與檢測

1. 理解常用電子元器件的型號和主要參數;2. 理解常用電子元器件的識別和分類方法;3. 掌握用萬用表檢測常用電子元器件的方法。

三.實訓內容

1.各種交流表電壓的測量 1. 實訓目的

1﹚掌握模擬是電壓表的使用方法和幾種典型電壓表波形的觀測和分析方法。

2)掌握模擬電壓表、數字電壓表的使用方法。

3)掌握直流穩壓電源的輸出指示准確度和紋波系數的測量方法。

2. 實訓儀器

yb2173交流毫伏表一台;mag-203d音頻信號發生器一台;yb4320示波器一台;fc-1000數字頻率計一台。

3. 交流電壓表整概要

1)一個交流電壓的大小,可以用峰值up,平均值 u,有效值u,以及波形因數kf,波峰因數kp等表徵,若被測電壓的瞬時值為u(t),則

全波平均值 有效值 波形因數 波峰因數

2)電壓表的檢波特性有峰值型,均值型,有效值型等多種形式。一般說來,具有不同檢波特性的電壓表都是以正弦電壓的有效值來定度的,但是,除了有效電壓表之外,電壓表的示值本身並不直接代表任意波形被測電壓的有效值。

3)根據理據論分析,不同波形的電壓加至不同檢波特性的電壓表示,可根據電壓表的讀數確定電壓的up,Ū,u,一般可根據表1-1的關系換算。

圖1-2

2.將各測量數據填入表1-3中

調節交流毫伏表的旋鈕,使之正確測量各種波形電壓,並記錄交流毫伏表電壓示值,將各種測量數據填入表1-4中

1.2直流穩壓電源的輸出指示准確度的測量

1.按1-5圖所示連接電路圖1-5

2.用數字電壓表分別測量直流穩壓電源的輸出,將讀數分別記入表1-6.

1.按如圖1-7所示連接測量電路

圖1-7

2.在交流毫伏表適當的檔位上,分別記下交流毫伏表的讀數u2,填入表1-8中

2.1 示波器的應用

1. 實訓目的

1﹚掌握示波器、交流毫伏表、音頻信號發生器的基本應用。

2﹚掌握示波器觀察信號波形和測量直流電壓幅度、周期的方法。

2. 實訓內容

﹙1﹚ 示波器的校準

﹙2﹚ 利用示波器1khz,0.5vp-p的方波校準信號作為示波器的輸入信號,調出圖2-1所示正常波形。

﹙3﹚ 將掃描基線移動的格數、垂直偏轉因數和穩定電壓原指示電壓值填入表2-2中。

圖2-1

表2-2直流電壓測量

已調信號低、中放的增益可以做的較大,工作較穩定,通頻帶特性也可做的(5)梯形法測量調幅波的調幅系數

1)採用音頻信號發生器輸出1000hz的正弦信號加至示波器的ch1(x)端;as1053rf信號發生器的輸出的已調信號加至示波器的ch2(y)端。

2)按下「x-y」,示波器處於x-y工作方式。

3)適當調節音頻信號發生器,調節示波器的x,y位移及v/div開關,使屏幕上顯示出圓柱形或梯形。

4)若調制信號與與x掃描信號同頻同相,即以音頻正弦信號同時作為高頻信號發生器的外調制信號,高頻信號發生器採用外調制方式進行調節,可顯示較穩定的梯形。適當調節外調制調制度旋鈕,觀察波形的變化。

4 實訓報告要求

整理好測量數據,填好表2-4、2-5。

。在實習期間,我們學習了初步的錫焊以及印製電路板的設計,元件測試,剛開始,錫焊,一個既熟悉又陌生 的概念,從開始的興奮到後來的痛苦,一遍遍的焊接,看焊點,反反復復,基本上掌握了要點。如果說焊接是體力勞動,那麼印製電路設計就是腦力勞動,遠比體力 勞動恐怖,最後在無數次的改動中結束。可 以說,兩周的電工實習,學到了不少東西,動手能力得到了提高,更重要的是有了一種精益求精的追求,獲益匪淺,而且理解了一個道理,什麼都是一門學問!

通過實際的測量實訓,讓我學到了很多實實在在的東西,比如對實驗儀器的錯誤!未找到索引項。操作更加熟練,懂得了如何運用該知識結合實際來完成對收音機的檢修,同時也提高了我們的思維能力和實際操作能力。

另外,這次電子產品設備維修實訓還讓我更進一步的認識了關於對lv軟體的操作和使用方法,使我學會了應用該軟體來繪制一些電子電路,為以後更好的走上工作崗位奠定了堅實的基礎。

在製作實訓報告的過程中,我們感覺自己的知識還是太有限了,還要繼續學習,因為它對我們以後的學習和工作太有幫助了,因為它給人一種「電腦在手,使用不愁」的感覺。課程雖然學完了,但我們對於這門課的學習才剛剛起步,真心希望我們能夠在這方面能有更深的造詣!

經驗教訓:

1、實驗儀器對實驗數據的誤差有很大的影響;

2、小組成員的合作很重要,實習小組的氣氛很大程度上影響實驗的進度。

8. 基於FPGA的頻率計設計 畢業論文。。請高手幫忙,有重謝。。

這是大規模數字集成電路在系統可編程領域的經典課程設計。

數字頻率計是近代電子技術領域的重要測量工具之一,同時也是其他許多領域廣泛應用的測量儀器。數字頻率計是在規定的基準時間內把測量的脈沖數記錄下來,換算成頻率並以數字形式顯示出來。數字頻率計用於測量信號(方波,正弦波或其他周期信號)的頻率,並用十進制數字顯示,它具有精度高,測量速度快,讀數直觀,使用方便等優點。
一個用VHDL語言實現的實例如下:
-- Project Name: 恆精度頻率計
-- Target Devices: FPGA or CPLD
-- Revision 0.01 - File Created
-- Comments: clk--系統工作時鍾,2MHz
-------------reset--系統復位信號,高電平有效
-------------Fx--為待測信號
-------------FreqNx--為待測信號的計數值
-------------FreqNs--為標准信號的計數值
-------------Freq--為待測信號的頻率
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

----------------------------------------------------------
entity Cymometer is
generic(clk_freq : integer := 2000000);--系統工作時鍾頻率
Port ( clk : in STD_LOGIC;
reset : in STD_LOGIC;
Fx : in STD_LOGIC; ----待測信號
FreqNs : out natural;
FreqNx : out natural);
--Freq : out natural);
end Cymometer;
----------------------------------------------------------
architecture Behavioral of Cymometer is
----------------------------------------
signal start : STD_LOGIC;--此信號為高電平時計數器開始計數
signal CTRL : STD_LOGIC;--CTRL信號為待測信號和門控信號產生的計數器啟動信號
signal CNTx : natural;--待測信號計數器
signal CNTs : natural;--標准信號計數器
----------------------------------------
begin
--***************************************--
--產生一個門控信號,高電平有效
GateCtrl : process(clk)
---------------------------
variable CNT0 : integer range 0 to 2_097_152;--門控信號計數器
---------------------------
begin
if rising_edge(clk) then
if reset='1' then
CNT0 := 0;
else
CNT0 := CNT0 + 1;
end if;
---------
if reset='1' then
start <= '0';
elsif CNT0 < (clk_freq*3/4) then
start <= '1';
else
start <= '0';
end if;
end if;
end process GateCtrl;
--***************************************--
--產生CTRL信號,由待測信號和門控信號產生的計數器啟動信號
CtrlGen : process(Fx)
begin
if rising_edge(Fx) then
if reset='1' then
CTRL <= '0';
else
CTRL <= start;
end if;
end if;
end process CtrlGen;
--***************************************--
--用兩個計數器分別對標准信號clk和待測信號signal計數
----------------------------------
--計數標准信號,CTRL高電平期間有效
CountS : process(clk)
begin
if rising_edge(clk) then
if reset='1' then
CNTs <= 0;
elsif CTRL='1' then
CNTs <= CNTs + 1;
else
CNTs <= 0;
end if;
end if;
end process CountS;
----------------------------------
--計數待測信號,CTRL高電平期間有效
CountX : process(Fx)
begin
if rising_edge(Fx) then
if reset='1' then
CNTx <= 0;
elsif CTRL='1' then
CNTx <= CNTx + 1;
else
CNTx <= 0;
end if;
end if;
end process CountX;
--***************************************--
--CTRL下降沿將技術結果和測量值輸出
CountOut : process(CTRL)
begin
if falling_edge(CTRL) then
if reset='1' then
FreqNs <= 0;
FreqNx <= 0;
-- Freq <= 0;
else
FreqNs <= CNTs;
FreqNx <= CNTx;
-- Freq <= (clk_freq / CNTs * CNTx);
end if;
end if;
end process CountOut;
end Behavioral;

下面是為上面的模塊編寫的測試平台,在Modelsim下模擬通過,因為數據量較大,建議不要使用Altera及ISE模擬。
--------------------------------------------------------------------------------
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.all;
USE ieee.numeric_std.ALL;

ENTITY tb IS
END tb;

ARCHITECTURE behavior OF tb IS

-- Component Declaration for the Unit Under Test (UUT)

COMPONENT Cymometer
PORT(
clk : IN std_logic;
reset : IN std_logic;
Fx : IN std_logic;
FreqNs : OUT natural;
FreqNx : OUT natural;
Freq : OUT natural
);
END COMPONENT;

--Inputs
signal clk : std_logic := '0';
signal reset : std_logic := '1';
signal Fx : std_logic := '0';

--Outputs
signal FreqNs : natural;
signal FreqNx : natural;
-- signal Freq : natural;

-- Clock period definitions
constant clk_period : time := 500ns;

BEGIN

-- Instantiate the Unit Under Test (UUT)
uut: Cymometer PORT MAP (
clk => clk,
reset => reset,
Fx => Fx,
FreqNs => FreqNs,
FreqNx => FreqNx,
-- Freq => Freq
);

-- Clock process definitions
clk_process :process
begin
clk <= '0';
wait for clk_period/2;
clk <= '1';
wait for clk_period/2;
end process;

--產生待測信號

Fx_process : process
begin
Fx <= '0';
wait for 2*clk_period;
Fx <= '1';
wait for 2*clk_period;
end process;

-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100ms.
wait for clk_period*10;
reset <= '0';

-- insert stimulus here

wait;
end process;

END;

參考原理M/T測頻法。

9. 數字頻率計設計

這個是提高,咱兩的題目一模一樣

閱讀全文

與電子裝置設計數字頻率計報告相關的資料

熱點內容
沈陽18k軸承怎麼拆 瀏覽:6
軸承ta是什麼意思啊 瀏覽:765
雷諾實驗的裝置和實驗現象 瀏覽:147
v法鑄造用什麼牌真空泵好 瀏覽:212
癩蛤蟆工具箱好用嗎 瀏覽:378
機床nc開關是什麼意思 瀏覽:993
超聲波清洗機在無紡布廠有什麼用 瀏覽:37
北京通州新華五金市場 瀏覽:822
某滲透實驗裝置及各點的 瀏覽:282
製冷8l10l什麼意思 瀏覽:486
工程施工買的電動工具入什麼科目 瀏覽:975
醫院儀器治療方法叫什麼治療 瀏覽:334
山西影像自動化設備哪裡有 瀏覽:871
跟水流指示器在一起的閥門是什麼 瀏覽:447
汽車儀表台避光墊什麼材質高檔 瀏覽:882
超聲波意思是什麼呢 瀏覽:548
丁蜀鎮五金裝潢市場 瀏覽:994
筆記本機械硬碟一般多少錢 瀏覽:563
氨吸收塔比其他設備有什麼優勢 瀏覽:604
一般冰箱不製冷是什麼原因導致的 瀏覽:460