江蘇大學數(shù)字邏輯課程設(shè)計數(shù)字時鐘.doc_第1頁
江蘇大學數(shù)字邏輯課程設(shè)計數(shù)字時鐘.doc_第2頁
江蘇大學數(shù)字邏輯課程設(shè)計數(shù)字時鐘.doc_第3頁
江蘇大學數(shù)字邏輯課程設(shè)計數(shù)字時鐘.doc_第4頁
江蘇大學數(shù)字邏輯課程設(shè)計數(shù)字時鐘.doc_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

JIANGSU NIVERSITY課程設(shè)計報告學院:計算機科學與通信工程班級:網(wǎng)絡(luò)工程姓名:學號:指導(dǎo)老師:報告日期:2016年1月15日目 錄.設(shè)計目的1.設(shè)計內(nèi)容1.設(shè)計原理1.具體實現(xiàn)2(1)頂層圖2(2)代碼21.24進制:22. 60進制:33.動態(tài)顯示:44. 分頻器:55. 二路選擇器:66.整點報時:77.鬧鐘設(shè)置:88.alarmcmp:99.消抖:9.心得體會10.設(shè)計目的 設(shè)計一個擁有:正常的時分秒計數(shù)功能,實現(xiàn)校時校分清零的功能,利用揚聲器實現(xiàn)整點報時和鬧鐘功能的多功能數(shù)字鐘。.設(shè)計內(nèi)容 整個系統(tǒng)分成七個模塊進行:計時模塊、校時模塊、整點報時模塊、分頻模塊、動態(tài)掃描模塊,動態(tài)顯示模塊、鬧鐘模塊。l、能進行正常的時、分、秒計時功能,分別由6個數(shù)碼顯示24小時、60分鐘的計數(shù)器顯示。2、能利用實驗系統(tǒng)上的按鈕實現(xiàn)“校時”、“校分”功能;3、能利用揚聲器做整點報時:4、定時鬧鐘功能5、用層次化設(shè)計方法設(shè)計該電路,用硬件描述語言編寫各個功能模塊。6、報時功能。報時功能用功能仿真的仿真驗證,可通過觀察有關(guān)波形確認電路設(shè)計是否正確。.設(shè)計原理1 計時模塊:使用一個二十四進制和兩個六十進制計數(shù)器級聯(lián),構(gòu)成數(shù)字鐘的基本框架。二十四進制用于計時,六十進制用于計分和計秒。給秒計數(shù)器一個1hz的時鐘脈沖,分計數(shù)器以秒計數(shù)器的進位作為計數(shù)脈沖,時計數(shù)器以分計數(shù)器的進位作為計數(shù)脈沖。2 校時模塊:分別按下校時鍵和校分鍵,計數(shù)器增至所需時分數(shù),按下清零鍵,秒計數(shù)器歸零。此處注意事項:按鍵“抖動”消除。利用觸發(fā)器,如D觸發(fā)器,利用D觸發(fā)器邊沿觸發(fā)的特性,在除去時鐘邊沿來之前一瞬間之外的絕大部分時間都不能接受輸入,從而實現(xiàn)“消抖”。校分時,分計數(shù)器計數(shù)不應(yīng)對小時位產(chǎn)生影響,因而需要屏蔽此時分計數(shù)器的進位信號。需要設(shè)計二路選擇器對于正常計數(shù)以及校時進行選擇。3 整點報時模塊:計時到59分50秒,每兩秒一次低音報時,整點進行高音報時,將報時信號接到實驗板上的揚聲器輸出。、4 分頻模塊:通過不同進制的計數(shù)將1khz的時鐘脈沖分頻出不同頻率的時鐘脈沖,以實現(xiàn)系統(tǒng)對多頻率時鐘信號的需求。5動態(tài)顯示模塊:利用6個數(shù)碼管,將時分秒按照高低位輸出到數(shù)碼管上。其中掃描頻率超過人眼視覺暫留頻率就可以實現(xiàn)六個管同時顯示的視覺效果。6 鬧鐘模塊:需要新的計數(shù)器進行定時鬧鐘信號的存儲,與正常計時狀態(tài)實現(xiàn)切換,設(shè)計一個比較模塊使鬧鐘和計時相等時,開始鳴叫,同時需要一個按鍵能夠控制鬧鐘的開關(guān)。.具體實現(xiàn)(1)頂層圖圖一:頂層圖(2)代碼1.24進制:時計數(shù)器:模塊圖如圖。24進制無進位計數(shù)器,當計數(shù)信號計到23后再檢測到計數(shù)信號時會自動歸零。帶清零,clk輸入為分秒進位相與的結(jié)果。qh為十位,ql為個位。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt24 isport(clk:in std_logic; qh,ql:out std_logic_vector(3 downto 0); tc:out std_logic);end cnt24;architecture one of cnt24 is begin process(clk) variable iql,iqh:std_logic_vector(3 downto 0):=0000; begin if clkevent and clk=1 then iql:=iql+1; if iql=1010 then iqh:=iqh+1; iql:=0000; end if; if (iqh=0010)and(iql=0100) then iqh:=0000; iql:=0000; end if; end if; ql=iql; qh=iqh; end process; end one; 2. 60進制: 秒計數(shù)器模塊設(shè)計:六十進制帶進位計數(shù)器,可清零,clk輸入信號為1Hz脈沖,當ql計滿9后qh增加1,當ql滿9且qh記滿5,ql、qh同時歸零,co輸出為高電平。qh為十位ql為個位。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt60 is port(clk,clr:in std_logic; ql,qh:buffer std_logic_vector(3 downto 0); tc:out std_logic );end cnt60;architecture behavor of cnt60 isbegin tc=0 when(clk=1 and ql=0000 and qh=0110) else 1; process(clk,clr,ql,qh)variable iql,iqh:std_logic_vector(3 downto 0); begin if(clr=0or (iql=0000 and iqh=0110)then iql:=0000; iqh:=0000; else if(clkevent and clk=1)then iql:=iql+1; if(iql=1010)then iql:=0000; iqh:=qh+1; end if; end if;end if;ql=iql;qh=iqh;end process;END behavor;分計數(shù)器同上。注:不同之處為分的clk輸入信號為秒的進位信號。3.動態(tài)顯示:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY dtsm is port( clk:in std_logic; h:in std_logic_vector(7 downto 0); m:in std_logic_vector(7 downto 0); s:in std_logic_vector(7 downto 0); seg7out:out std_logic_vector(6 downto 0); sel:buffer std_logic_vector(2 downto 0) );END dtsm;ARCHITECTURE beha of dtsm is signal key:std_logic_vector(3 downto 0); BEGIN PROCESS(clk) variable dount:std_logic_vector(2 downto 0):=000; BEGIN IF(rising_edge(clk)then IF dount=111 then dount:=000; ELSE dount:=dount+1; END IF; END IF; selkeykeykeykeykeykeykeykeynull; END CASE; END PROCESS; PROCESS (key) BEGIN case key is when0000=seg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outnull; END CASE; END PROCESS; END beha;4. 分頻器:模塊圖如圖。由四個分頻器構(gòu)成,輸入信號in_clk為1024Hz脈沖信號。把輸入的1024Hz信號分頻為四個脈沖信號,即1Hz的秒脈沖,4Hz的校時、校分脈沖,64Hz的消抖脈沖,以及512Hz的蜂鳴器低音輸入。:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY freq_divider IS PORT(clk : IN STD_LOGIC; hz1 : OUT STD_LOGIC; hz4 : OUT STD_LOGIC; hz64 : OUT STD_LOGIC; hz512 : OUT STD_LOGIC);END freq_divider;ARCHITECTURE rtl OF freq_divider IS SIGNAL count : STD_LOGIC_VECTOR(9 DOWNTO 0);BEGIN PROCESS(clk) BEGIN IF (clkevent and clk=1) THEN IF(count=1111111111) THEN Count 0); ELSE Count = count +1; END IF ; END IF ; END PROCESS; hz512 = count(0); hz64 = count(3); hz4 = count(7); hz1 = count(9);END rtl;5. 二路選擇器:模塊圖如圖。用以進行正常計時和校時/分的選擇。alarm為經(jīng)過消抖的校時/分信號。當按鍵未曾按下時,即校時/分信號沒有到來時,二選一選擇器會選擇輸出a(正常計時輸入)信號,否則當alarm按鍵按下時輸出y為校時/分輸入信號4Hz。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity sel2 isport(sel:in std_logic; ip: in std_logic; a,b:out std_logic);end sel2;architecture beh of sel2 isbegin process(sel) begin if(sel=0)then a=ip; else b=ip; end if; end process;end beh;6.整點報時:整點報時及鬧時:模塊圖如圖在59分52秒、54秒、56秒、58秒給揚聲器賦以低音512Hz信號,在00分00秒給揚聲器賦以高音1024Hz信號,當系統(tǒng)時間與鬧鈴時間相同時給揚聲器賦以高音1024Hz信號。鬧時時間為一分鐘。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zdbs isport(mh,ml,sh,sl:in std_logic_vector(3 downto 0); sig500,sig1k: out std_logic);end zdbs;architecture behavior of zdbs isbegin sig500=1 when mh=0101and ml=1001and sh=0101and( sl=0000or sl=0010 or sl=0100or sl=0110or sl=1000) else 0;sig1k=1 when mh=0000and ml=0000and sh=0000and sl=0000 else 0;end behavior;7.鬧鐘設(shè)置:鬧鐘時間的設(shè)定:模塊圖如圖。由開關(guān)K1選擇鬧鐘和時間。由S1、S2脈沖鍵調(diào)節(jié)時、分。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity alarmset isport(sel:in std_logic; hclo,mclo,sclo,halr,malr,salr: in std_logic_vector(7 downto 0); h,s,m:out std_logic_vector(7 downto 0);end alarmset;architecture beh of alarmset isbegin process(sel) begin if(sel=0)then h=hclo; m=mclo; s=sclo; else h=halr; m=malr; s=00000000; end if; end process;end beh;8.alarmcmp:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity alarmcmp isport( h,m,halr,malr: in std_logic_vector(7 downto 0); stop:in std_logic; sig:out std_logic); end alarmcmp;architecture beh of alarmcmp is begin process(h,m,halr,malr,stop)begin if stop=

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論