




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于VHDL的多功能數字鐘設計報告021215班衛(wèi)時章02121451、設計要求1、具有以二十四小時制計時、顯示、整點報時、時間設置和鬧鐘的功能。2、設計精度要求為1秒。二、設計環(huán)境:Quartus II、系統(tǒng)功能描述1系統(tǒng)輸入:時鐘信號elk采用50MHz ;系統(tǒng)狀態(tài)及較時、定時轉換的控制 信號為k、set,校時復位信號為reset均由按鍵信號產生。2、系統(tǒng)輸出:LED顯示輸出;蜂鳴器聲音信號輸出。3、多功能數字電子鐘系統(tǒng)功能的具體描述如下:(一) 計時:正常工作狀態(tài)下,每日按 24h計時制計時并顯示,蜂鳴器無聲,逢 整點報時。(二) 校時:在計時顯示狀態(tài)下,按下“ k ”鍵,進入“小時”待
2、校準狀態(tài),若此時按下“ set”鍵,小時開始校準;之后按下“ k”鍵則進入“分”待校準狀態(tài); 繼續(xù)按下“k”鍵則進入“秒”待復零狀態(tài);再次按下“ k ”鍵數碼管顯示鬧鐘時 間,并進入鬧鐘“小時”待校準狀態(tài);再次按下“k ”鍵則進入鬧鐘“分”待校準狀態(tài);若再按下“ k”鍵恢復到正常計時顯示狀態(tài)。若校時過程中按下“ reset” 鍵,則系統(tǒng)恢復到正常計數狀態(tài)。(1) “小時”校準狀態(tài):在“小時”校準狀態(tài)下,顯示“小時”的數碼管以2Hz 閃爍,并按下“set”鍵時以2Hz的頻率遞增計數。2Hz閃爍,(2) “分”校準狀態(tài):在“分”校準狀態(tài)下,顯示“分”的數碼管以 并按下“ set”鍵時以2Hz的頻率
3、遞增計數。2Hz閃爍,(3) “秒”校準狀態(tài):在“秒復零”狀態(tài)下,顯示“秒”的數碼管以 并以1Hz的頻率遞增計數。(4) 鬧鐘“小時”校準狀態(tài):在鬧鐘“小時”校準狀態(tài)下,顯示“小時”的數 碼管以2Hz閃爍,并按下“ set”鍵時以2Hz的頻率遞增計數。(5) 鬧鐘“分”校準狀態(tài):在鬧鐘“分”校準狀態(tài)下,顯示“分”的數碼管以 2Hz閃爍,并按下“ set”鍵時以2Hz的頻率遞增計數。(三) 整點報時:蜂鳴器在“ 59”分鐘的第“ 51”、“53”、“55”、“57”秒發(fā)頻率 為500Hz的低音,在“ 59”分鐘的第“ 59”秒發(fā)頻率為1000Hz的高音,結束時 為整點。(四) 顯示:采用掃描顯示
4、方式驅動 4個LED數碼管顯示小時、分,秒由兩組 led燈以4位BCD碼顯示。(五) 鬧鐘:鬧鐘定時時間到,蜂鳴器發(fā)出頻率為1000Hz的高音,持續(xù)時間為60秒。四、各個模塊分析說明1、分頻器模塊(freq.vhd)(1) 模塊說明:輸入一個頻率為 50MHz的CLK,利用計數器分出1KHz 的 q1KHz,500Hz 的 q500Hz,2Hz 的 q2Hz 和 1Hz 的 q1Hz。(2) 源程序:library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_ un sig ned.all;en tity freq isport (
5、CLK: in std_logic ;q1KHz: buffer std_logic; q500Hz: buffer std_logic; q2Hz: buffer std_logic; q1Hz: out std_logic);end freq;-輸入時鐘信號architecture bhv of freq isbeg inP1KHZ:p rocess(CLK)variable cout: in teger:=0;begi nif CLK'eve nt and CLK='1' the ncout:=cout+1;if cout<=25000 then q1KHz
6、<='0'-每來個時鐘上升沿時cout開始計數 -當 cout<=25000 時,q1KHz 輸出“ 0”elsif cout<50000 then q1KHz<='1'-當 25000<cout<=50000時,q1KHz else cout:=0;end if;end if;end p rocess;-輸出“1”,完成1KHZ頻率輸出P500HZ:p rocess(q1KHz) variable cout: in teger:=0; begi nif q1KHz'eve nt and q1KHz='1
7、9; the n cout:=cout+1;if cout=1 then q500Hz<='0'-elsif cout=2 then cout:=0;q500Hz<='1' end if;end if;end p rocess;-qlKHz作為輸入信號,分出q500Hz-二分頻P2HZ:P rocess(q500Hz) variable cout: in teger:=0; begi nif q500Hz'eve nt and q500Hz='1' then cout:=cout+1;if cout<=125 then
8、q2Hz<='0'elsif cout<250 then q2Hz<='1' else cout:=0;end if;end if;end p rocess;P1HZ:p rocess(q2Hz) variable cout: in teger:=O; begi nif q2Hz'eve nt and q2Hz='1' then cout:=cout+1;if cout=1 then q1Hz<='0'elsif cout=2 the n cout:=0;q1Hz<='1' e
9、nd if; end if;end p rocess;end bhv;(3)模塊圖:d - Z_MBI. >JCLK hIKHh q&33Hz-irrst2、控制器模塊(contral.vhd)(1) 模塊說明:輸入端口 k, set鍵來控制6個狀態(tài),這六個狀態(tài)分別是:顯示計時時間狀態(tài),調計時的時、分、秒的3個狀態(tài),調鬧鈴的時、分的3個狀態(tài),reset鍵是復位鍵,用來回到顯示計時時間的狀態(tài)。(2) 波形仿真圖:elkp e3sc 0 isJM.g ItsMO衛(wèi)址Sn.p QziJLTLTLrLILILc-rb*tr.十2 H-asUiO. fe-cln1aiL!±12
10、1j*1 iIltt(3)模塊圖:J;0:*=-Domtrol=-_ciha1E!k-»t-cbhitbmIflzskhflashm1Hhwto:irrf- H 1 H H3、二選一模塊(mux21a.vhd)(1)源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_ un sig ned.all;en tity mux21a is port(a,b,s:in bit;y:out bit); end en tity mux21a;architecture one of mux21a is beg in p r
11、ocess(a,b,s) beg in if s-0' the n-若s=O,y輸出a,反之輸出b。y<=a;else y<=b;end if;end p rocess;end architecture one;(2)仿真波形圖:=IFTiti(3)模塊圖:J 1U 工 II-.-=rrHt2Ta4、計時模塊a.秒計時(second.vhd)(1)仿真波形圖:)pt? « UE5 12 Kt7 aa Lit悒.胡 ut12 ftL9 * uiLT ue也 40 uc 23JI_i_ IlliLE 4% Ht一zlth"!冒iW3 =111zammvwir
12、uirjLrniruiruTrVimrLrLfKUirLrjwurvuuvuvuirjwviJri0y;展-廠(2)模塊圖:悒 mt mkqNmdk4:OD-irrsUb.分計時(minute.vhd)(1)仿真波形圖:Kant兇k3 alJCbj <41g 価 p nu I =e n. 1 睥 uu 2 SB uu 3 2嚴 3 叫 u= 4 IS u= E. 12 5= g.朮 g 6.4, -u j. 3 IkE bifinrjwwumjwtrunuinnnjmnmuummjumrjnuirjmjmiuinjmmmnmmrjwr '匡! "jC g'
13、39; ' Y 一一 4 '丁 匕YI十,i ,i i ; i 'n(2)模塊圖:J .Bli H-"- III.=m>Ltedk sklO3.D(I sIdIF d co:irrmtEC.小時計時(hour.vhd)(1)仿真波形圖:Hvitelk l±J sldO E aldlps5.1£ gLl.】£ JUjWjwwTrwraiwowoTfWirmHTOuwDWonuwm工 二冥 一 M / 廠iric ; 5 , Y! <r 冥一一;廠-;(2)模塊圖:dk 5klO13.D(|5W7 qd.鬧鐘分計時(cnt
14、m60b.vhd)(1)仿真波形圖:fintHzlk0. 0 Ji 1L.申 US 10. £1 11=1G-1J TLa 10_7p TLa £L gg di £3- 05 gTl|£| =1JDB <lLinmn-nnrn.innnnnnnnn'n nnrnnr nrn nnnnr.r nrn nrmfinr(2)模塊圖:h skiop. I dk swip q'irrsfe.鬧鐘小時計時(cnth24b.vhd)(1)仿真波形圖:Idutsi Tnir BaHeIrtixa- I24i_es5血"£.騎y
15、5坤43DJ 山甲P= 訴丄L呂爭ui 九apa aOH 刃qiHas 申駅nQM2tl ?7SrEParler |.4?U5Encf三一詈一dhId Hir3 =idi0 一 y 1 FjmrLrLnjxrLrLrLnrLrLrLrLrmrLrLrwv-LrLrvmjnrwTj(2)模塊圖:=cntii24 匕h sklO3.D(| 出 sWip q-irrst5、鬧鐘比較模塊(compare.vhd)compout(1)模塊說明:比較正常計數時間與鬧鐘定時時間是否相等,若相等, 輸出“ 1”,反之輸出“ 0”。(2)仿真波形圖:】ps S4O- Q HEI. £S ns1.52
16、us£. 5& us3. 2 口s3. 54 us4. 4S nzf111Illi15.35 ns 0 bhOp IbHH1B!11r1:1111a111!1r111r1r11iiririirii0 1 ! !0 bhl11111Illi1111II111:111191111II,111I1II'1'H1'2: ll田bmO11i:1i1iII1i1IH111'1111'1I1.!L.:.1.:.t.L.:.t!L!10 ' ? !田 bill 1 1 ' 1 ' 1 1 ' irirziriiririi
17、1111111Q111i113!1n10 thO111111111111111I1II111:r1r1J1111!HI1111111IlliIIIIII1;0'i !a thi11'1J1I11 1 : 1 1 1 ' 1 1III1II11-i111;2:!1 J1V1田tmO:耳 X T 工 0 K g K 0 X T X 2 X + r 4 j 茸 X E11HI'1 1fii k0 tml1rr?Vr11r11irii11說1A''f1!'''I'r!T !11-J 11comp outr1r1rILrii
18、riirii1ii1:111III1'1111il111mII>I>mr1r.11i11*1'''"<'rr1.r1:;bi!'11.1(3)模塊圖:J -BILBIII I .1.- I_ KsrnrarsampOLTttml 7. 40I Mil p.41bTilp. 4J 穴卩.qf:irratS6報時模塊(bell.vhd)(1)模塊說明:該模塊既實現了整點報時的功能,又實現了鬧鈴的功能,蜂鳴 器通過所選頻率的不同,而發(fā)出不同的聲音。(2)仿真波形圖:ps5.16J5 asJl>opcubJs1CQmpo
19、-ctqlKH£ 4500 1 tnl trO tsl tiO bel:.碎UB5.3|G ui£0_ 4325. 0 us30.7; 口mMwnjmiHMHWHmlHMHHMiMnuHnniHHnBnjuvLrLnrnrmLrwumnnrLrLnjuinruwuuumnnjmnjuLRArLrLId扌!a'.11kI 1 ! I:11!H!1.1.'111 乓.1'.1III:!1! 7 一 ! 1.:!r01.111r1-1u -,11.1'1.II'.1! ;勺=! r!firiI!Si !(67 X e X' X t)
20、 X 1 X t !J 3 X fl X & X 6"22MBrnfflirailiMiimiraBii_rLTLUin_I11-II(3)模塊圖:ml (T .4| telL師4一隅:comfrtut1;鄰曲衛(wèi)'i_' qSOOHz5irralM7、控制顯示模塊(show_con.vhd)(1)模塊說明:該模塊實現了數碼管既可以顯示正常時間,又可以顯示鬧鐘時 間的功能;調時過程的定時閃爍功能也在此模塊中真正實現。(2)源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_ un sig
21、 ned.all;en tity show_c on isp ort(th1,tm1,ts1:i n std_logic_vector(7 dow nto 4); thO,tmO,tsO:in std_logic_vector(3 dow nto 0);bh1,bm1:i n std_logic_vector(7 dow nto 4); bhO,bmO:in std_logic_vector(3 dow nto 0);sec1, min 1,h1: out std_logic_vector(7 dow nto 4); sec0, minO ,h0: out std_logic_vector(3
22、 dow nto 0); q2Hz,flashs,flashh,flashm,sel_show:i n std_logic); end show_c on;architecture rtl of show_c on isbeg inp rocess(th1,tm1,ts1,thO,tmO,tsO,bh1,bm1,bhO,bmO,q2H z,flashs,flashh,flashm,sel_sho w)beginif sel_show='0'the nif ( flashh='1'a nd q2Hz='1')the n h1<="1
23、111"hO<="1111"-顯示小時數碼管以2Hz閃爍 min 1<=tm1; minO v=tm0;sec1<=ts1;sec0<=ts0;elsif (flashm='1'a nd q2Hz='1')the n h1<=th1;hO<=thO;min 1<="1111"mi n0v="1111" sec1<=ts1;sec0<=ts0;elsif (flashs='1'a nd q2Hz='1')the
24、 n h1<=th1;hO<=thO;min 1<=tm1; minO v=tm0; sec1<="1111"sec0<="1111"elseh1<=th1;hO<=thO;min 1<=tm1; minO v=tm0; sec1<=ts1;sec0<=ts0;end if;elsif sel_show-1'then-若sel_show為“ 1,數碼管顯示鬧鐘時間 if(flashh='1' and q2Hz='1')the nh1<="1
25、111"hO<="1111"mi n1v=bm1;mi n0 v=bm0; sec1<="0000"sec0<="0000"elsif ( flashm='1' and q2Hz='1')the n h1<=bh1;hO<=bhO;min 1<="1111"mi n0v="1111"sec1<="0000"sec0<="0000"elseh1<=bh1;hO&l
26、t;=bhO;mi n1v=bm1;mi nO v=bmO; sec1v="0000"sec0v="0000"end if ;end if;end p rocess;end rtl;(3) 模塊圖:.a - Filial-;1(7 4|Jtml 7,町rniiip qtSl7 .4hiR.lJsrT:inO(3.0|闌郵0I bh17.brnipUJ HbTrU卩.罰網2 y率農:f lathsjj他曲seLshw-irrsli-S I H IHH L I HH I 3一二8、動態(tài)掃描顯示模塊(scan_led.vhd)(1) 模塊說明:由4組輸入信號和
27、輸出信號進而實現了時鐘時、分的動態(tài)顯示。(2) 源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_ un sig ned.all;en tity sca n_led ispo rt(clk1:i n std_logic;h0:i n std_logic_vector(3 dow nto 0); h1:i n std_logic_vector(7 dow nto 4); mi n0:in std_logic_vector(3 dow nto 0); min 1:in std_logic_vector(7 dow nto
28、 4); ML:out std_logic_vector(7 dow nto 0); MH:out std_logic_vector(7 dow nto 0); HL:out std_logic_vector(7 dow nto 0); HH:out std_logic_vector(7 dow nto 0) );end sca n_led;architecture one of sca n_led is signal cn t4:std_logic_vector(1 dow nto 0);sig nal a: std_logic_vector(3 dow nto 0); beg inp1:p
29、 rocess(clk1)begi nif clk1'eve nt and clk1 ='1' the ncn t4<=c nt4+1;if cnt4=3 the ncn t4<="00"end if;end if;end p rocess p1;-控制數碼管位選p2:p rocess(c nt4,h1,h0, min1,minO) beg in case cnt4 is whe n "00"=>case minO iswhe n "OOOO"=>ML<="11OOOOO
30、O" whe n "OOO1"=>ML<="11111OO1" whe n "OO1O"=>ML<="1O1OO1OO" whe n "OO11"=>ML<="1O11OOOO" whe n "O1OO"=>ML<="1OO11OO1" whe n "O1O1"=>ML<="1OO1OO1O" whe n "O11O&
31、quot;=>ML<="1OOOOO1O" whe n "O111"=>ML<="11111OOO" when "1OOO"=>ML<="1OOOOOOO" whe n "1OO1"=>ML<="1OO1OOOO"whe n others=>NULL; end case;whe n "01"=>case mi n1 iswhen "OOOO"=>MH&
32、lt;="11OOOOOO" whe n "OOO1"=>MH<="11111OO1" whe n "OO1O"=>MH<="1O1OO1OO" whe n "OO11"=>MH<="1O11OOOO" whe n "O1OO"=>MH<="1OO11OO1" whe n "O1O1"=>MH<="1OO1OO1O"
33、whe n "O11O"=>MH<="1OOOOO1O" whe n "O111"=>MH<="11111OOO" whe n "1OOO"=>MH<="1OOOOOOO" whe n "1OO1"=>MH<="1OO1OOOO"whe n others=>NULL;end case;whe n "10"=>case hO iswhen "OOOO
34、"=>HL<="11OOOOOO" whe n "0001"=>HL<="11111001"whe n "0010"=>HLv="10100100"whe n "0011"=>HL<="10110000"whe n "0100"=>HL<="10011001"whe n "0101"=>HL<="10010010
35、"whe n "0110"=>HL<="10000010"whe n "0111"=>HL<="11111000"when "1000"=>HL<="10000000"whe n "1001"=>HL<="10010000"whe n others=>NULL;end case;whe n "11"=>case h1 iswhe n "0
36、000"=>HH<="11000000"whe n "0001"=>HH<="11111001"whe n "0010"=>HH<="10100100"whe n "0011"=>HH<="10110000"whe n "0100"=>HH<="10011001"whe n "0101"=>HH<="100
37、10010"whe n "0110"=>HH<="10000010"whe n "0111"=>HH<="11111000"whe n "1000"=>HH<="10000000"whe n "1001"=>HH<="10010000"whe n others=>NULL;end case;whe n others =>nu II;end case;end proce
38、ss p2;end one;(3)模塊圖:J .L. ZC ! . Ill:I.-led niiBk I . 1.b'ctfclMLR.OiH3a.0JJ 訓4HL7.O mirvOIS 町J mimr.4J五、端口設定k: button2set : buttonireset : buttonOBell : SW1用于開關蜂鳴器;QudTtut a - F:/SluciErer/t'DA/L>igitaICIock/DigrialClock - DrgilalClock - Pin Plannerr匚:.-V:: :u 二pX V |Btl1 阿y rlBMmhim>
39、;KtaH1LHA 亦;lUD珈欣r froup1UQ StlTQird*tHfv«dL"fm *9片川1irEd:TlUt1'mjs=BLJMCL5-. GdrtJci3cPFtHTOli汨4HUM %E用WifeTRJi2u(drtdV5HHKCl TP - .t7梓口工1.5-.e世HH國CS-Tl-tF叫pw7'嚇世5匚皆diifWTuHH圈OlFCFHPJ Cig?iEP皈L弭蛀!令吧(HUHClWm 9317I*卜川J.L'.'drtJr-*hhHC "HU*PIN 生7fi卞M*刖轉L0HH1Q pjtnpj_Fs7BTJLB ©b和J二LtaHHt-OLZJ-tRJ即白?1la?血±SU肚憐iP誼0HL 4i1匕J 4 LAT'訂歯L弭皆hlP】l-Jf*h|Mrs -,i.frrj FHTII? MC7.'.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論