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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

資料內容僅供您學習參考,如有不當之處,請聯(lián)系改正或者刪除。JIANGSUNIVERSITY課程設計報告學院:計算機科學與通信工程班級:網(wǎng)絡工程姓名:學號:指導老師:報告日期

:1月15日目錄TOC\o"1-3"\h\u29791Ⅰ.設計目的 1956Ⅱ.設計內容 126102Ⅲ.設計原理 126057Ⅳ.具體實現(xiàn) 211384(1)頂層圖 26372(2)代碼 265041.24進制: 2289152.60進制: 381233.動態(tài)顯示: 4289594.分頻器: 5107345.二路選擇器: 6261076.整點報時: 7302307.鬧鐘設置: 8209768.alarmcmp: 9202399.消抖: 917947Ⅴ.心得體會 10Ⅰ.設計目的設計一個擁有:正常的時分秒計數(shù)功能,實現(xiàn)校時校分清零的功能,利用揚聲器實現(xiàn)整點報時和鬧鐘功能的多功能數(shù)字鐘。Ⅱ.設計內容整個系統(tǒng)分成七個模塊進行:計時模塊、校時模塊、整點報時模塊、分頻模塊、動態(tài)掃描模塊,動態(tài)顯示模塊、鬧鐘模塊。l、能進行正常的時、分、秒計時功能,分別由6個數(shù)碼顯示24小時、60分鐘的計數(shù)器顯示。2、能利用實驗系統(tǒng)上的按鈕實現(xiàn)”校時”、”校分”功能;3、能利用揚聲器做整點報時:4、定時鬧鐘功能5、用層次化設計方法設計該電路,用硬件描述語言編寫各個功能模塊。6、報時功能。報時功能用功能仿真的仿真驗證,可經(jīng)過觀察有關波形確認電路設計是否正確。Ⅲ.設計原理1計時模塊:使用一個二十四進制和兩個六十進制計數(shù)器級聯(lián),構成數(shù)字鐘的基本框架。二十四進制用于計時,六十進制用于計分和計秒。給秒計數(shù)器一個1hz的時鐘脈沖,分計數(shù)器以秒計數(shù)器的進位作為計數(shù)脈沖,時計數(shù)器以分計數(shù)器的進位作為計數(shù)脈沖。2校時模塊:分別按下校時鍵和校分鍵,計數(shù)器增至所需時分數(shù),按下清零鍵,秒計數(shù)器歸零。此處注意事項:①按鍵”抖動”消除。利用觸發(fā)器,如D觸發(fā)器,利用D觸發(fā)器邊沿觸發(fā)的特性,在除去時鐘邊沿來之前一瞬間之外的絕大部分時間都不能接受輸入,從而實現(xiàn)”消抖”。②校分時,分計數(shù)器計數(shù)不應對小時位產生影響,因而需要屏蔽此時分計數(shù)器的進位信號。③需要設計二路選擇器對于正常計數(shù)以及校時進行選擇。3整點報時模塊:計時到59分50秒,每兩秒一次低音報時,整點進行高音報時,將報時信號接到實驗板上的揚聲器輸出。、4分頻模塊:經(jīng)過不同進制的計數(shù)將1khz的時鐘脈沖分頻出不同頻率的時鐘脈沖,以實現(xiàn)系統(tǒng)對多頻率時鐘信號的需求。5 動態(tài)顯示模塊:利用6個數(shù)碼管,將時分秒按照高低位輸出到數(shù)碼管上。其中掃描頻率超過人眼視覺暫留頻率就能夠實現(xiàn)六個管同時顯示的視覺效果。6鬧鐘模塊:需要新的計數(shù)器進行定時鬧鐘信號的存儲,與正常計時狀態(tài)實現(xiàn)切換,設計一個比較模塊使鬧鐘和計時相等時,開始鳴叫,同時需要一個按鍵能夠控制鬧鐘的開關。Ⅳ.具體實現(xiàn)(1)頂層圖圖一:頂層圖(2)代碼1.24進制:時計數(shù)器:模塊圖如圖。24進制無進位計數(shù)器,當計數(shù)信號計到23后再檢測到計數(shù)信號時會自動歸零。帶清零,clk輸入為分秒進位相與的結果。qh為十位,ql為個位。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt24isport(clk:instd_logic;qh,ql:outstd_logic_vector(3downto0);tc:outstd_logic);endcnt24;architectureoneofcnt24isbeginprocess(clk)variableiql,iqh:std_logic_vector(3downto0):="0000";beginifclk'eventandclk='1'theniql:=iql+1;ifiql="1010"theniqh:=iqh+1;iql:="0000";endif;if(iqh="0010")and(iql="0100")theniqh:="0000";iql:="0000";endif;endif;ql<=iql;qh<=iqh;endprocess;endone;2.60進制:秒計數(shù)器模塊設計:六十進制帶進位計數(shù)器,可清零,clk輸入信號為1Hz脈沖,當ql計滿9后qh增加1,當ql滿9且qh記滿5,ql、qh同時歸零,co輸出為高電平。qh為十位ql為個位。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt60isport(clk,clr:instd_logic;ql,qh:bufferstd_logic_vector(3downto0);tc:outstd_logic);endcnt60;architecturebehavorofcnt60isbegintc<='0'when(clk='1'andql="0000"andqh="0110")else'1';process(clk,clr,ql,qh)variableiql,iqh:std_logic_vector(3downto0);beginif(clr='0'or(iql="0000"andiqh="0110"))theniql:="0000";iqh:="0000";elseif(clk'eventandclk='1')theniql:=iql+1;if(iql="1010")theniql:="0000";iqh:=qh+1;endif;endif;endif;ql<=iql;qh<=iqh;endprocess;ENDbehavor;分計數(shù)器同上。注:不同之處為分的clk輸入信號為秒的進位信號。3.動態(tài)顯示:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdtsmisport(clk:instd_logic;h:instd_logic_vector(7downto0);m:instd_logic_vector(7downto0);s:instd_logic_vector(7downto0);seg7out:outstd_logic_vector(6downto0);sel:bufferstd_logic_vector(2downto0));ENDdtsm;ARCHITECTUREbehaofdtsmissignalkey:std_logic_vector(3downto0);BEGINPROCESS(clk)variabledount:std_logic_vector(2downto0):="000";BEGINIF(rising_edge(clk))thenIFdount="111"thendount:="000";ELSEdount:=dount+1;ENDIF;ENDIF;sel<=dount;endprocess;PROCESS(sel)BEGINCASEselISwhen"000"=>key<=h(7downto4);when"001"=>key<=h(3downto0);when"010"=>key<="1010";when"011"=>key<=m(7downto4);when"100"=>key<=m(3downto0);when"101"=>key<="1010";when"110"=>key<=s(7downto4);when"111"=>key<=s(3downto0);whenothers=>null;ENDCASE;ENDPROCESS;PROCESS(key)BEGINcasekeyiswhen"0000"=>seg7out<="0111111";when"0001"=>seg7out<="0000110";when"0010"=>seg7out<="1011011";when"0011"=>seg7out<="1001111";when"0100"=>seg7out<="1100110";when"0101"=>seg7out<="1101101";when"0110"=>seg7out<="1111101";when"0111"=>seg7out<="0000111";when"1000"=>seg7out<="1111111";when"1001"=>seg7out<="1101111";when"1010"=>seg7out<="1000000";whenothers=>null;ENDCASE;ENDPROCESS;ENDbeha;分頻器:模塊圖如圖。由四個分頻器構成,輸入信號in_clk為1024Hz脈沖信號。把輸入的1024Hz信號分頻為四個脈沖信號,即1Hz的秒脈沖,4Hz的校時、校分脈沖,64Hz的消抖脈沖,以及512Hz的蜂鳴器低音輸入。:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYfreq_dividerISPORT(clk:INSTD_LOGIC;hz1:OUTSTD_LOGIC;hz4:OUTSTD_LOGIC;hz64:OUTSTD_LOGIC;hz512:OUTSTD_LOGIC);ENDfreq_divider;ARCHITECTURErtlOFfreq_dividerISSIGNALcount:STD_LOGIC_VECTOR(9DOWNTO0);BEGINPROCESS(clk)BEGINIF(clk'eventandclk='1')THENIF(count="")THENCount<=(OTHERS=>'0');ELSECount<=count+1;ENDIF;ENDIF;ENDPROCESS;hz512<=count(0);hz64<=count(3);hz4<=count(7);hz1<=count(9);ENDrtl;二路選擇器:模塊圖如圖。用以進行正常計時和校時/分的選擇。alarm為經(jīng)過消抖的校時/分信號。當按鍵未曾按下時,即校時/分信號沒有到來時,二選一選擇器會選擇輸出a(正常計時輸入)信號,否則當alarm按鍵按下時輸出y為校時/分輸入信號——4Hz。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitysel2isport(sel:instd_logic;ip:instd_logic; a,b:outstd_logic);endsel2;architecturebehofsel2isbeginprocess(sel)beginif(sel='0')thena<=ip;elseb<=ip;endif;endprocess;endbeh;6.整點報時:整點報時及鬧時:模塊圖如圖在59分52秒、54秒、56秒、58秒給揚聲器賦以低音512Hz信號,在00分00秒給揚聲器賦以高音1024Hz信號,當系統(tǒng)時間與鬧鈴時間相同時給揚聲器賦以高音1024Hz信號。鬧時時間為一分鐘。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityzdbsisport(mh,ml,sh,sl:instd_logic_vector(3downto0);sig500,sig1k:outstd_logic);endzdbs;architecturebehaviorofzdbsisbeginsig500<='1'whenmh="0101"andml="1001"andsh="0101"and(sl="0000"orsl="0010"orsl="0100"orsl="0110"orsl="1000")else'0';sig1k<='1'whenmh="0000"andml="0000"andsh="0000"andsl="0000"else'0';endbehavior;7.鬧鐘設置:鬧鐘時間的設定:模塊圖如圖。由開關K1選擇鬧鐘和時間。由S1、S2脈沖鍵調節(jié)時、分。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityalarmsetisport(sel:instd_logic;hclo,mclo,sclo,halr,malr,salr:instd_logic_vector(7downto0); h,s,m:outstd_logic_vector(7downto0));endalarmset;architecturebehofalarmsetisbeginprocess(sel)beginif(sel='0')thenh<=hclo;m<=mclo; s<=sclo;elseh<=halr;m<=malr; s<="00000000";endif;endprocess;endbeh;8.alarmcmp:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityalarmcmpisport(h,m,halr,malr:i

溫馨提示

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

最新文檔

評論

0/150

提交評論