基于VHDL多功能數(shù)字鐘設(shè)計報告_第1頁
基于VHDL多功能數(shù)字鐘設(shè)計報告_第2頁
基于VHDL多功能數(shù)字鐘設(shè)計報告_第3頁
基于VHDL多功能數(shù)字鐘設(shè)計報告_第4頁
基于VHDL多功能數(shù)字鐘設(shè)計報告_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

創(chuàng)作時間:貳零貳壹年柒月貳叁拾日鑒于VHDL的多功能數(shù)字鐘之巴公井創(chuàng)始作創(chuàng)作時間:貳零貳壹年柒月貳叁拾日設(shè)計陳說021215班衛(wèi)時章02121451一、設(shè)計要求1、擁有以二十四小時制計時、顯示、整點報時、時間設(shè)置和鬧鐘的功能。2、設(shè)計精度要求為1秒。二、設(shè)計環(huán)境:QuartusII三、系統(tǒng)功能描繪1、系統(tǒng)輸入:時鐘信號clk采納50MHz;系統(tǒng)狀態(tài)及較時、定時變換的控制信號為k、set,校時復(fù)位信號為reset,均由按鍵信號發(fā)生。2、系統(tǒng)輸出:LED顯示輸出;蜂鳴器聲音信號輸出。3、多功能數(shù)字電子鐘系統(tǒng)功能的詳細描繪以下:(一)計時:正常工作狀態(tài)下,每天按24h計時制計時并顯示,蜂鳴器無聲,逢整點報時。(二)校時:在計時顯示狀態(tài)下,按下“k”鍵,進入“小時”待校準(zhǔn)狀態(tài),若此時按下“set”鍵,小時開始校準(zhǔn);以后按下創(chuàng)作時間:貳零貳壹年柒月貳叁拾日創(chuàng)作時間:貳零貳壹年柒月貳叁拾日“k”鍵則進入“分”待校準(zhǔn)狀態(tài);連續(xù)按下“k”鍵則進入“秒”待復(fù)零狀態(tài);再次按下“k”鍵數(shù)碼管顯示鬧鐘時間,并進入鬧鐘“小時”待校準(zhǔn)狀態(tài);再次按下“k”鍵則進入鬧鐘“分”待校準(zhǔn)狀態(tài);若再按下“k”鍵恢復(fù)到正常計時顯示狀態(tài)。若校時過程中按下“reset”鍵,則系統(tǒng)恢復(fù)到正常計數(shù)狀態(tài)。1)“小時”校準(zhǔn)狀態(tài):在“小時”校準(zhǔn)狀態(tài)下,顯示“小時”的數(shù)碼管以2Hz閃耀,并按下“set”鍵時以2Hz的頻次遞加計數(shù)。2)“分”校準(zhǔn)狀態(tài):在“分”校準(zhǔn)狀態(tài)下,顯示“分”的數(shù)碼管以2Hz閃耀,并按下“set”鍵時以2Hz的頻次遞加計數(shù)。3)“秒”校準(zhǔn)狀態(tài):在“秒復(fù)零”狀態(tài)下,顯示“秒”的數(shù)碼管以2Hz閃耀,并以1Hz的頻次遞加計數(shù)。4)鬧鐘“小時”校準(zhǔn)狀態(tài):在鬧鐘“小時”校準(zhǔn)狀態(tài)下,顯示“小時”的數(shù)碼管以2Hz閃耀,并按下“set”鍵時以2Hz的頻次遞加計數(shù)。5)鬧鐘“分”校準(zhǔn)狀態(tài):在鬧鐘“分”校準(zhǔn)狀態(tài)下,顯示“分”的數(shù)碼管以2Hz閃耀,并按下“set”鍵時以2Hz的頻次遞加計數(shù)。(三)整點報時:蜂鳴器在“59”分鐘的第“51”、“53”、“55”、“57”秒發(fā)頻次為500Hz的低音,在“59”分鐘的第“59”秒發(fā)頻次為1000Hz的高音,結(jié)束時為整點。(四)顯示:采納掃描顯示方式驅(qū)動4個LED數(shù)碼管顯示小時、創(chuàng)作時間:貳零貳壹年柒月貳叁拾日創(chuàng)作時間:貳零貳壹年柒月貳叁拾日分,秒由兩組led燈以4位BCD碼顯示。(五)鬧鐘:鬧鐘準(zhǔn)不時間到,蜂鳴器發(fā)出頻次為1000Hz的高音,連續(xù)時間為60秒。四、各個模塊剖析說明1、分頻器模塊(freq.vhd)(1)模塊說明:輸入一個頻次為50MHz的CLK,利用計數(shù)器分出1KHz的q1KHz,500Hz的q500Hz,2Hz的q2Hz和1Hz的q1Hz。2)源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityfreqisport(CLK:instd_logic;--輸入時鐘信號q1KHz:bufferstd_logic;q500Hz:bufferstd_logic;q2Hz:bufferstd_logic;q1Hz:outstd_logic);endfreq;architecturebhvoffreqisbeginP1KHZ:process(CLK)variablecout:integer:=0;創(chuàng)作時間:貳零貳壹年柒月貳叁拾日創(chuàng)作時間:貳零貳壹年柒月貳叁拾日beginifCLK'eventandCLK='1'thencout:=cout+1;--每來個時鐘上漲沿時cout開始計數(shù)ifcout<=25000thenq1KHz<='0';--當(dāng)cout<=25000時,q1KHz輸出“0”elsifcout<50000thenq1KHz<='1';--當(dāng)25000<cout<=50000時,q1KHzelsecout:=0;--輸出“1”,達成1KHz頻次輸出endif;endif;endprocess;P500HZ:process(q1KHz)--q1KHz作為輸入信號,分出q500Hzvariablecout:integer:=0;beginifq1KHz'eventandq1KHz='1'thencout:=cout+1;ifcout=1thenq500Hz<='0';--二分頻elsifcout=2thencout:=0;q500Hz<='1';endif;創(chuàng)作時間:貳零貳壹年柒月貳叁拾日創(chuàng)作時間:貳零貳壹年柒月貳叁拾日endif;endprocess;P2HZ:process(q500Hz)variablecout:integer:=0;beginifq500Hz'eventandq500Hz='1'thencout:=cout+1;ifcout<=125thenq2Hz<='0';elsifcout<250thenq2Hz<='1';elsecout:=0;endif;endif;endprocess;P1HZ:process(q2Hz)variablecout:integer:=0;beginifq2Hz'eventandq2Hz='1'thencout:=cout+1;ifcout=1thenq1Hz<='0';elsifcout=2thencout:=0;q1Hz<='1';endif;endif;創(chuàng)作時間:貳零貳壹年柒月貳叁拾日創(chuàng)作時間:貳零貳壹年柒月貳叁拾日endprocess;endbhv;(3)模塊圖:2、控制器模塊(contral.vhd)1)模塊說明:輸入端口k,set鍵來控制6個狀態(tài),這六個狀態(tài)分別是:顯示計不時間狀態(tài),調(diào)計時的時、分、秒的3個狀態(tài),調(diào)鬧鈴的時、分的3個狀態(tài),reset鍵是復(fù)位鍵,用往返到顯示計不時間的狀態(tài)。2)波形仿真圖:3)模塊圖:3、二選一模塊(mux21a.vhd)(1)源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitymux21aisport(a,b,s:inbit;y:outbit);endentitymux21a;architectureoneofmux21aisbegin創(chuàng)作時間:貳零貳壹年柒月貳叁拾日創(chuàng)作時間:貳零貳壹年柒月貳叁拾日process(a,b,s)beginifs='0'theny<=a;--若s=0,y輸出a,反之輸出b。elsey<=b;endif;endprocess;endarchitectureone;2)仿真波形圖:3)模塊圖:4、計時模塊a.秒計時(second.vhd)1)仿真波形圖:2)模塊圖:b.分計時(minute.vhd)1)仿真波形圖:2)模塊圖:c.小時計時(hour.vhd)1)仿真波形圖:2)模塊圖:d.鬧鐘分計時(cntm60b.vhd)(1)仿真波形圖:創(chuàng)作時間:貳零貳壹年柒月貳叁拾日創(chuàng)作時間:貳零貳壹年柒月貳叁拾日(2)模塊圖:e.鬧鐘小時計時(cnth24b.vhd)1)仿真波形圖:2)模塊圖:5、鬧鐘比較模塊(compare.vhd)1)模塊說明:比較正常計數(shù)時間與鬧鐘準(zhǔn)不時間能否相等,若相等,compout輸出“1”,反之輸出“0”。2)仿真波形圖:3)模塊圖:6、報時模塊(bell.vhd)1)模塊說明:該模塊既實現(xiàn)了整點報時的功能,又實現(xiàn)了鬧鈴的功能,蜂鳴器經(jīng)過所選頻次的分歧,而發(fā)出分歧的聲音。2)仿真波形圖:3)模塊圖:7、控制顯示模塊(show_con.vhd)1)模塊說明:該模塊實現(xiàn)了數(shù)碼管既能夠顯示正常時間,又能夠顯示鬧鐘時間的功能;調(diào)時過程的準(zhǔn)時閃耀功能也在此模塊中真實實現(xiàn)。2)源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;創(chuàng)作時間:貳零貳壹年柒月貳叁拾日創(chuàng)作時間:貳零貳壹年柒月貳叁拾日entityshow_conisport(th1,tm1,ts1:instd_logic_vector(7downto4);th0,tm0,ts0:instd_logic_vector(3downto0);bh1,bm1:instd_logic_vector(7downto4);bh0,bm0:instd_logic_vector(3downto0);sec1,min1,h1:outstd_logic_vector(7downto4);sec0,min0,h0:outstd_logic_vector(3downto0);q2Hz,flashs,flashh,flashm,sel_show:instd_logic);endshow_con;architecturertlofshow_conisbeginprocess(th1,tm1,ts1,th0,tm0,ts0,bh1,bm1,bh0,bm0,q2Hz,flashs,flashh,flashm,sel_show)beginifsel_show='0'thenif(flashh='1'andq2Hz='1')thenh1<="1111";h0<="1111";--顯示小時數(shù)碼管以2Hz閃爍min1<=tm1;min0<=tm0;sec1<=ts1;sec0<=ts0;elsif(flashm='1'andq2Hz='1')thenh1<=th1;h0<=th0;創(chuàng)作時間:貳零貳壹年柒月貳叁拾日創(chuàng)作時間:貳零貳壹年柒月貳叁拾日min1<="1111";min0<="1111";sec1<=ts1;sec0<=ts0;elsif(flashs='1'andq2Hz='1')thenh1<=th1;h0<=th0;min1<=tm1;min0<=tm0;sec1<="1111";sec0<="1111";elseh1<=th1;h0<=th0;min1<=tm1;min0<=tm0;sec1<=ts1;sec0<=ts0;endif;elsifsel_show='1'then--若sel_show為“1”,數(shù)碼管顯示鬧鐘時間if(flashh='1'andq2Hz='1')thenh1<="1111";h0<="1111";min1<=bm1;min0<=bm0;sec1<="0000";sec0<="0000";elsif(flashm='1'andq2Hz='1')thenh1<=bh1;h0<=bh0;min1<="1111";min0<="1111";sec1<="0000";sec0<="0000";else創(chuàng)作時間:貳零貳壹年柒月貳叁拾日創(chuàng)作時間:貳零貳壹年柒月貳叁拾日h1<=bh1;h0<=bh0;min1<=bm1;min0<=bm0;sec1<="0000";sec0<="0000";endif;endif;endprocess;endrtl;(3)模塊圖:8、動向掃描顯示模塊(scan_led.vhd)1)模塊說明:由4組輸入信號和輸出信號從而實現(xiàn)了時鐘時、分的動向顯示。2)源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityscan_ledisport(clk1:instd_logic;h0:instd_logic_vector(3downto0);h1:instd_logic_vector(7downto4);min0:instd_logic_vector(3downto0);min1:instd_logic_vector(7downto4);ML:outstd_logic_vector(7downto0);創(chuàng)作時間:貳零貳壹年柒月貳叁拾日創(chuàng)作時間:貳零貳壹年柒月貳叁拾日MH:outstd_logic_vector(7downto0);HL:outstd_logic_vector(7downto0);HH:outstd_logic_vector(7downto0));endscan_led;architectureoneofscan_ledissignalcnt4:std_logic_vector(1downto0);signala:std_logic_vector(3downto0);beginp1:process(clk1)beginifclk1'eventandclk1='1'thencnt4<=cnt4+1;ifcnt4=3thencnt4<="00";endif;endif;endprocessp1;p2:process(cnt4,h1,h0,min1,min0)begincasecnt4is--控制數(shù)碼管位選when"00"=>casemin0is創(chuàng)作時間:貳零貳壹年柒月貳叁拾日創(chuàng)作時間:貳零貳壹年柒月貳叁拾日when"0000"=>ML<="11000000";when"0001"=>ML<="11111001";when"0010"=>ML<="10100100";when"0011"=>ML<="10110000";when"0100"=>ML<="10011001";when"0101"=>ML<="10010010";when"0110"=>ML<="10000010";when"0111"=>ML<="11111000";when"1000"=>ML<="10000000";when"1001"=>ML<="10010000";whenothers=>NULL;endcase;when"01"=>casemin1iswhen"0000"=>MH<="11000000";when"0001"=>MH<="11111001";when"0010"=>MH<="10100100";when"0011"=>MH<="10110000";when"0100"=>MH<="10011001";when"0101"=>MH<="10010010";when"0110"=>MH<="10000010";when"0111"=>MH<="11111000";when"1000"=>MH<="10000000";創(chuàng)作時間:貳零貳壹年柒月貳叁拾日創(chuàng)作時間:貳零貳壹年柒月貳叁拾日when"1001"=>MH<="10010000";whenothers=>NULL;endcase;when"10"=>caseh0iswhen"0000"=>HL<="11000000";when"0001"=>HL<="11111001";when"0010"=>HL<="10100100";when"0011"=>HL<="10110000";when"0100"=>HL<="10011001";when"0101"=>HL<="10010010";when"0110"=>HL<="10000010";when"0111"=>HL<="11111000";when"1000"=>HL<="10000000";when"1001"=>HL<="10010000";whenothers=>NULL;endcase;when"11"=>caseh1iswhen"0000"=>HH<="11000000";when"0001"=>HH<="11111001";when"0010"=>HH<="10100100";when"0011"=>HH<="10110000";when"0100"=>HH<="10011001";創(chuàng)作時間:貳零貳壹年柒月貳叁拾日創(chuàng)作時間:貳零貳壹年柒月貳叁拾日when"0101"=>HH<="10010010";when"0110"=>HH<="10000010";when

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論