版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 數(shù)字頻率計</b></p><p><b> 設計報告書</b></p><p><b> 一、設計要求</b></p><p> 設計一個4位十進制數(shù)字式頻率計,最大測量范圍為10MHz。量程分10kHz、100kHz、1MHz和10MHz四檔(最大讀數(shù)分別為9.
2、999kHz、99.99kHz、999.9kHz、9999.kHz).</p><p> 量程自動轉(zhuǎn)換規(guī)則如下:</p><p> 當讀數(shù)大于9999時,頻率計處于超量程狀態(tài),此時顯示器發(fā)出溢出指示,下一次測量時,量程自動增大一檔,小數(shù)點位置隨量程變更自動移位。</p><p> 可用手動方式使量程在每次測量開始時處于最低檔。</p><p
3、><b> 顯示方式如下:</b></p><p> 采用記憶顯示方式,即計數(shù)過程中不顯示數(shù)據(jù),待計數(shù)過程結束以后,顯示計數(shù)結果,將此顯示結果保持到下一次計數(shù)結束。顯示時間應不小于1s。</p><p> 送入信號應是符合CMOS電路要求的脈沖波,對于小信號模擬信號應有放大整形電路。</p><p><b> 二、方案設
4、計</b></p><p><b> <1>整體思路</b></p><p> 所謂頻率就是周期性信號在單位時間 (1s)內(nèi)變化的次數(shù)。若在一定時間間隔 T內(nèi)測得周期性信號的重復變化次數(shù)為 N ,則頻率可表示為 f =N /T (Hz)。被測信號fx經(jīng)放大整形電路變成計數(shù)電路所要求的脈沖信號,其頻率與被測信號fx的頻率相同。基準電路提供標準
5、時間基準信號clk,其高電平持續(xù)時間 t 1 = 1 s,當 1 s信號來到時 ,閘門電路開通 ,被測脈沖信號通過閘門電路,成為計數(shù)電路的計數(shù)脈沖 CP,計數(shù)電路開始計數(shù),直到 ls信號結束時閘門電路關閉 ,停止計數(shù)。若在閘門時間 1 s內(nèi)計數(shù)電路計得的脈沖個數(shù)為 N ,則被測信號頻率 f =NHz??刂齐娐返淖饔糜袃蓚€:一是產(chǎn)生鎖存脈沖 CLK,使顯示電路上的數(shù)字穩(wěn)定;二是產(chǎn)生清“0”脈沖,使計數(shù)電路每次測量從零開始計數(shù)。</p
6、><p> <2>時鐘信號的選擇</p><p> 設計電路中時鐘信號采用12M有源晶振產(chǎn)生,下面是12M有源晶振引腳圖:</p><p> <3>整形電路的選擇</p><p> 整形電路中可以用運算放大器LM311組成電壓選擇器實現(xiàn),以下是關于此芯片的資料:</p><p><b&
7、gt; 引腳功能:</b></p><p> GROUND/GND 接地 INPUT + 正向輸入端 INPUT - 反向輸入端 OUTPUT 輸出端 BALANCE
8、; 平衡 BALANCE/STROBE 平衡/選通 V+ 電源正 V- 電源負</p><p><b> NC 空腳</b></p><p><b> LM311引腳圖</b></p><p> 由于LM311過于復雜
9、且此次設計要求精度不高,整形電路可以改為如下電路:</p><p> 這樣產(chǎn)生穩(wěn)定3.3V為幅值的信號送入EPM570中,對芯片起到保護作用。</p><p> <3>設計所用核心芯片資料及其原理</p><p> 所用核心芯片為CPLD器件EPM570T100C5?;驹O計方法是借助集成開發(fā)軟件平臺quartus II 6.0,用原理圖、硬件描述
10、語言(Verilog HDL)等方法,生成相應的目標文件,通過下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標芯片中,實現(xiàn)設計的數(shù)字系統(tǒng)。</p><p> EPM570引腳圖:</p><p> 在Quartus II 6.0中設定的引腳分布如下:</p><p> <4>計數(shù)譯碼原理圖:</p><p> <5>
11、分頻選擇器原理圖:</p><p> <6>數(shù)碼管引腳圖:</p><p> 通過Verilog HDL語言設計程序,實現(xiàn)上述原理圖功能,最終所測信號頻率以四位共陰極數(shù)碼管顯示,單位為KHz。</p><p><b> 三、調(diào)試</b></p><p> 按照分頻計、計數(shù)器、鎖存器、選擇器、譯碼器模塊
12、分別進行編程調(diào)試、仿真;</p><p> 建立工程,把五個模塊連接,調(diào)試。針對錯誤模塊進行修改,重新建立工程、連接模塊;</p><p> 將程序下載到EMP570中,利用數(shù)電實驗板以及數(shù)碼管進行調(diào)試;</p><p> 將各種器件焊接到萬用板上,連接電源進行實際調(diào)試。</p><p><b> 程序代碼</b>
13、;</p><p> 1.module ssss(b,base);</p><p><b> input b;</b></p><p> output reg base;</p><p> reg [23:0]q;</p><p> always@(posedge b)</p>
14、;<p> if(q<5999999)</p><p><b> q<=q+1;</b></p><p><b> else </b></p><p><b> begin</b></p><p> base<=!base;q<=
15、0;</p><p><b> end</b></p><p><b> Endmodule</b></p><p><b> 2</b></p><p> module Fen6M(b,base);</p><p><b> inp
16、ut b;</b></p><p> output reg base;</p><p> reg [23:0]q;</p><p> always@(posedge b)</p><p> if(q<5999999)</p><p><b> q<=q+1;</b>
17、;</p><p><b> else </b></p><p><b> begin</b></p><p> base<=!base;q<=0;</p><p><b> end</b></p><p><b> En
18、dmodule</b></p><p><b> 3.</b></p><p> module ctrl(clk,Counter_EN,Latch_EN,Counter_Clr);</p><p> input clk;</p><p> output Counter_EN,Latch_EN,Coun
19、ter_Clr;</p><p> reg wire_1=0,wire_2=0;</p><p> always @(posedge clk)</p><p><b> begin</b></p><p> wire_1 <= ! wire_1;</p><p><b>
20、 end</b></p><p> always @(negedge clk)</p><p><b> begin</b></p><p> wire_2 <= wire_1;</p><p><b> end</b></p><p> assi
21、gn Counter_EN = wire_1;</p><p> assign Latch_EN = (! Counter_EN) & wire_2;</p><p> assign Counter_Clr = (! Counter_EN) & (! Latch_EN) & (! wire_2);</p><p><b>
22、; endmodule</b></p><p><b> 4.</b></p><p> module counter(clk,clr,en,q,ql);</p><p> input clk,en,clr;</p><p> output reg[3:0] q;</p><p&
23、gt; output ql;</p><p> assign ql=en&(q==9);</p><p> always@(posedge clk,posedge clr)</p><p> if(clr) q<=0;</p><p><b> else </b></p><
24、p><b> if(en)</b></p><p><b> begin</b></p><p> if(q<9) q<=q+1;</p><p> else q<=0;</p><p><b> end</b></p><
25、p><b> endmodule</b></p><p><b> 5.</b></p><p> module latcher(d1,d2,en,clk,q1,q2);</p><p> input [3:0] d1,d2;</p><p> input clk,en;</p
26、><p> output reg[3:0] q1,q2;</p><p> always@(posedge clk)</p><p><b> if(~en)</b></p><p><b> begin</b></p><p><b> q1<=d1;
27、</b></p><p><b> q2<=d2;</b></p><p><b> end</b></p><p><b> endmodule</b></p><p><b> 6.</b></p><p&
28、gt; module over_select(IN,SELECT,OUT);</p><p> input [3:0] IN;</p><p> input SELECT;</p><p> output reg[3:0] OUT;</p><p> always @(SELECT)</p><p> ca
29、se(SELECT)</p><p> 0:OUT<=IN;</p><p> 1:OUT<=10;</p><p><b> endcase</b></p><p><b> endmodule</b></p><p><b> 7.<
30、/b></p><p> module decode4to7(incode,outcode);</p><p> input [3:0] incode;</p><p> output [6:0] outcode;</p><p> reg[6:0] outcode;</p><p> always@(
31、incode)</p><p><b> begin</b></p><p> case(incode)</p><p> 4'b0000: outcode= 7'b1111110;</p><p> 4'b0001: outcode= 7'b0110000;</p>
32、<p> 4'b0010: outcode= 7'b1101101; </p><p> 4'b0011: outcode= 7'b1111001; </p><p> 4'b0100: outcode= 7'b0110011; </p><p> 4'b0101: outcode= 7&
33、#39;b1011011; </p><p> 4'b0110: outcode= 7'b1011111; </p><p> 4'b0111: outcode= 7'b1110000; </p><p> 4'b1000: outcode= 7'b1111111; </p><p>
34、 4'b1001: outcode= 7'b1110011;</p><p> default: outcode= 7'b1000111;</p><p><b> endcase</b></p><p><b> end</b></p><p><b>
35、 Endmodule</b></p><p><b> 8.</b></p><p> module Half_freq(CLK_in,CLK_out);</p><p> input CLK_in;</p><p> output CLK_out;</p><p> reg
36、 CLK_out;</p><p> always@(posedge CLK_in)</p><p><b> begin</b></p><p> CLK_out=~CLK_out; </p><p><b> end</b></p><p><b>
37、 Endmodule</b></p><p><b> 9.</b></p><p> module fenpin(clk,fout10,fout100,fout1000);</p><p> input clk;</p><p> output fout10,fout100,fout1000;&
38、lt;/p><p> reg[3:0] q1,q2,q3;</p><p> assign fout10=(q1==9);</p><p> assign fout100=fout10&(q2==9);</p><p> assign fout1000=fout100&(q3==9);</p><p&g
39、t; always@(posedge clk)</p><p> if(q1<9) q1<=q1+1;</p><p> else q1<=0;</p><p> always@(negedge fout10)</p><p> if(q2<9) q2<=q2+1;</p><p&
40、gt; else q2<=0;</p><p> always@(negedge fout100)</p><p> if(q3<9) q3<=q3+1;</p><p> else q3<=0;</p><p><b> Endmodule</b></p><p&
41、gt;<b> 10.</b></p><p> module decode2to4(incode,outcode);</p><p> input[1:0] incode;</p><p> output reg[3:0] outcode;</p><p> integer i;</p>&l
42、t;p> always @(incode)</p><p><b> begin</b></p><p> case(incode) </p><p> 2'b00:outcode=4'b1000;</p><p> 2'b01:outcode=4'b0100; </
43、p><p> 2'b10:outcode=4'b0010;</p><p> 2'b11:outcode=4'b0001;</p><p><b> endcase</b></p><p><b> end</b></p><p><
44、b> endmodule</b></p><p><b> 11.</b></p><p> module decode4to7(incode,outcode,in);</p><p> input [3:0] incode;</p><p><b> input in;</b
45、></p><p> output [7:0] outcode;</p><p> reg[7:0] outcode;</p><p> always@(incode)</p><p><b> begin</b></p><p> case(incode)</p>
46、<p> 4'b0000: outcode[6:0]= 7'b1111110;</p><p> 4'b0001: outcode[6:0]= 7'b0110000;</p><p> 4'b0010: outcode[6:0]= 7'b1101101; </p><p> 4'b0011:
47、outcode[6:0]= 7'b1111001; </p><p> 4'b0100: outcode[6:0]= 7'b0110011; </p><p> 4'b0101: outcode[6:0]= 7'b1011011; </p><p> 4'b0110: outcode[6:0]= 7'
48、b1011111; </p><p> 4'b0111: outcode[6:0]= 7'b1110000; </p><p> 4'b1000: outcode[6:0]= 7'b1111111; </p><p> 4'b1001: outcode[6:0]= 7'b1110011;</p>
49、<p> default: outcode[6:0]= 7'b1000111;</p><p><b> endcase</b></p><p> if(in==1) outcode[7]=1'b1;</p><p> else outcode[7]=1'b0;</p><p>
50、<b> end</b></p><p><b> endmodule</b></p><p><b> 12. </b></p><p> module mux4_1(a,b,c,d,s,out);</p><p> input a,b,c,d;</p>
51、<p> input [1:0] s;</p><p> output reg out;</p><p> always @(s)</p><p><b> case(s)</b></p><p> 2'b00:out=a;</p><p> 2'b01:
52、out=b;</p><p> 2'b10:out=c;</p><p> 2'b11:out=d;</p><p><b> endcase</b></p><p><b> endmodule</b></p><p><b> 13.&
53、lt;/b></p><p> module renge_counter(clk,clr,q,ql);</p><p> input clk,clr;</p><p> output reg [2:0] q;</p><p> output ql;</p><p> assign ql=(q==4);&
54、lt;/p><p> always @(posedge clk ,posedge clr)</p><p><b> if(clr)</b></p><p><b> q<=0;</b></p><p> else if(q<4)</p><p><b&
55、gt; q<=q+1;</b></p><p> else q<=0;</p><p><b> endmodule</b></p><p><b> 總體電路圖</b></p><p> 四、測試數(shù)據(jù)與實驗結果</p><p><b&
56、gt; 五、心得體會</b></p><p> 我們小組的實習題目是數(shù)字式頻率計。該項目主要是通過verilog語言編程后進行焊接完成。我們在十七十八號兩天對verilogHDL語言設計進行了學習與鞏固,從十九號正式開始數(shù)字式頻率計的設計,二十一號編程驗收通過,開始處理外部信號的測試,即穩(wěn)壓工作。之后進行PCB圖的制作。從二十四號開始焊接電路板,于二十七號完成所有工作。</p>&l
57、t;p> 在剛開始編程的時候,對于verilogHDL語言這種新知識要花一段時間來消化,所以在編寫頻率計的代碼時遇到很多問題,但是經(jīng)過我們查找資料和激烈的討論后終于解決了問題。通過自我學習以及其他方式我們了解到了計數(shù)器分頻器譯碼器等模塊的編譯方式,學到了很多Verilog的有用的知識點。從二十四號開始的焊接由于之前電子工藝實習時焊接過幾百個點,所以最后的焊接工作還比較順利。同時經(jīng)過這幾天的焊接,在某種程度上又鍛煉了我們的動手能力
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字頻率計課程設計報告
- 數(shù)字頻率計課程設計報告
- 數(shù)字頻率計--課程設計報告
- 數(shù)字頻率計課程設計報告
- 數(shù)字頻率計課程設計
- 數(shù)字頻率計課程設計
- 課程設計--數(shù)字頻率計
- 課程設計——數(shù)字頻率計
- 數(shù)字頻率計課程設計
- 課程設計-數(shù)字頻率計
- 課程設計--數(shù)字頻率計
- 課程設計--數(shù)字頻率計
- 數(shù)字頻率計課程設計
- 數(shù)字頻率計課程設計
- 數(shù)字頻率計課程設計
- 簡易數(shù)字頻率計課程設計報告
- 課程設計報告--簡易數(shù)字頻率計
- 簡易數(shù)字頻率計課程設計報告
- 簡易數(shù)字頻率計課程設計報告
- 數(shù)字頻率計課程設計報告 (2)
評論
0/150
提交評論