數(shù)字鐘設計報告_第1頁
數(shù)字鐘設計報告_第2頁
數(shù)字鐘設計報告_第3頁
數(shù)字鐘設計報告_第4頁
數(shù)字鐘設計報告_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

設計報告課程名稱在系統(tǒng)編程技術任課教師査長軍設計題目數(shù)字時鐘班級09通信(1)班姓名施凱學號0905074024日期2011-5-30數(shù)字時鐘設計一、題目分析1、功能介紹1)具有時、分、秒計數(shù)顯示功能,以24小時循環(huán)計時。2)時鐘計數(shù)顯示時有LED燈的花樣顯示。3)具有調節(jié)小時、分鐘、秒及清零的功能。4)具有整點報時功能。2、性能指標及功能設計1)時鐘計數(shù):完成時、分、秒的正確計時并且顯示所計的數(shù)字;對秒、分——60進制計數(shù),即從0到59循環(huán)計數(shù),時鐘——24進制計數(shù),即從0到23循環(huán)計數(shù),并且在數(shù)碼管上顯示數(shù)值。2)時間設置:手動調節(jié)分鐘、小時,可以對所設計的時鐘任意調時間,這樣使數(shù)字鐘真正具有使用功能。我們可以通過實驗板上的鍵7和鍵4進行任意的調整,因為我們用的時鐘信號均是1HZ的,所以每LED燈變化一次就來一個脈沖,即計數(shù)一次。3)清零功能:reset為復位鍵,低電平時實現(xiàn)清零功能,高電平時正常計數(shù)??梢愿鶕?jù)我們自己任意時間的復位。4)蜂鳴器在整點時有報時信號產(chǎn)生,蜂鳴器報警。產(chǎn)生“滴答.滴答”的報警聲音。5)LED燈在時鐘顯示時有花樣顯示信號產(chǎn)生。即根據(jù)進位情況,LED不停的閃爍,從而產(chǎn)生“花樣”信號。二選擇方案本設計主要分為四個模塊:時模塊,分模塊,秒模塊,花樣顯示模塊。小時模塊:小時的顯示和手動調時。分鐘模塊:分鐘的顯示和手動調分。秒模塊:秒顯示。主模塊:主程序。還有花樣顯示,即根據(jù)進位情況,LED不停的閃爍,從而產(chǎn)生“花樣”信號。三數(shù)字鐘設計的電路原理圖圖3.324進制數(shù)字鐘的電路圖四細化框圖4數(shù)字時鐘數(shù)字時鐘控制單元時調整分調整使能端信號CLK信號時顯示分顯示秒顯示24進制60進制60進制LED顯示整點報時花樣顯示根據(jù)總體方框圖及各部分分配的功能可知,本系統(tǒng)可以由秒計數(shù)器、分鐘計數(shù)器、小時計數(shù)器、整點報時、分的調整以及小時的調整和一個頂層文件構成。采用自頂向下的設計方法,子模塊利用VHDL語言設計,頂層文件用原理圖的設計方法。顯示:小時采用24進制,而分鐘均是采用6進制和10進制的組合。五編寫應用程序并仿真1.建立波形文件:選擇File->New,選擇VectorWaveformFile,單擊OK。2.選擇Edit->EndTime選項,設定仿真時間寬度。3.雙擊Name下的空白處,彈出InsertNodorBus對話框,單擊NodeFinder。4.選定各個選擇項。5.單擊OK,完成引腳輸入。6.加上輸入信號后波形文件存盤。圖5.1波形7.運行仿真器。在Processing菜單下選擇StartSimulation項,直到Simulatorwassuccessful出現(xiàn),仿真結束。完成波形如圖所示。步驟5:引腳鎖定選擇AssignPin\Location\Chip,在跳出的窗口中的NodeName欄中用鍵盤輸入半加器的端口名,如a、b等。如果輸入的端口名正確,在右側的PinType欄將顯示該信號圖5.2仿真結果六、總結經(jīng)過幾周EDA實驗的學習,我們已經(jīng)掌握了EDA實驗的基本操作。在編寫時可以相互借鑒,這樣可以節(jié)省一定的時間,尤其是24進制的處理上,我們采用了簡單的方法即可完成多個功能的順利實現(xiàn)。此次設計雖然完成了基本要求但是可以做很多的拓展,這是在以后可以改進的地方??梢哉f這次設計的代碼我是寫不出來的,是從網(wǎng)上查的,然后再自己看懂。這也是一個學習的過程。實驗也讓我們對EDA課程的內(nèi)容有了更加深入的了解。最后感謝査老師對我們的指導,以及同學們對我的幫助,使得實驗能夠順利完成的基礎上學習了更多。七參考文獻(1)沈明山編著.EDA技術及可編程器件應用實訓.北京:科學出版社(2)李衍編著.EDA技術入門與提高王行.西安:西安電子科技大學出版社(3)侯繼紅,李向東主編.EDA實用技術教程.北京:中國電力出版社(4)閻石.《數(shù)字電子技術基礎》(第五版)高等教育出版社。(5)童詩白、華成英《模擬電子技術基礎》(第四版)高等教育出版社。八附錄:VHDL設計程序1、秒LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYsecondISPORT(clk,reset,setmin:STD_LOGIC;enmin:OUTSTD_LOGIC;daout:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDENTITYsecond;ARCHITECTUREfunOFsecondISSIGNALcount:STD_LOGIC_VECTOR(6DOWNTO0);SIGNALenmin_1,enmin_2:STD_LOGIC;--enmin_1為59秒時的進位信號BEGIN--enmin_2由clk調制后的手動調分脈沖信號串daout<=count;enmin_2<=(setminandclk);--setmin為手動調分控制信號,高電平有效enmin<=(enmin_1orenmin_2);--enmin為向分進位信號PROCESS(clk,reset,setmin)BEGINIF(reset='0')THENcount<="0000000";--若reset為0,則異步清零ELSIF(clk'eventandclk='1')then--否則,若clk上升沿到IF(count(3downto0)="1001")then--若個位計時恰好到"1001"即9IF(count<16#60#)then--又若count小于16#60#,即60HIF(count="1011001")then--又若已到59Denmin_1<='1';count<="0000000";--則置進位為1及count復0ELSE--未到59Dcount<=count+7;--則加7,而+7=+1+6,即作"加6校正"ENDIF;ELSE--若count不小于16#60#(即count等于或大于16#60#)count<="0000000";--count復0ENDIF;--ENDIF(count<16#60#)ELSIF(count<16#60#)then--若個位計數(shù)未到"1001"則轉此句再判count<=count+1;--若count<16#60#則count加1enmin_1<='0'after100ns;--沒有發(fā)生進位ELSE--否則,若count不小于16#60#count<="0000000";--則count復0ENDIF;--ENDIF(count(3DOWNTO0)="1001")ENDIF;--ENDIF(reset='0')ENDPROCESS;ENDfun;2、分LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYminuteISPORT(clk,clk1,reset,sethour:INSTD_LOGIC;enhour:OUTSTD_LOGIC;daout:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDENTITYminute;ARCHITECTUREfunOFminuteISSIGNALcount:STD_LOGIC_VECTOR(6DOWNTO0);SIGNALenhour_1,enhour_2:STD_LOGIC;--enmin_1為59分時的進位信號BEGIN--enmin_2由clk調制后的手動調時脈沖信號串daout<=count;enhour_2<=(sethourandclk1);--sethour為手動調時控制信號,高電平有效enhour<=(enhour_1orenhour_2);PROCESS(clk,reset,sethour)BEGINIF(reset='0')THEN--若reset為0,則異步清零count<="0000000";ELSIF(clk'eventandclk='1')THEN--否則,若clk上升沿到IF(count(3DOWNTO0)="1001")THEN--若個位計時恰好到"1001"即9IF(count<16#60#)THEN--又若count小于16#60#,即60IF(count="1011001")THEN--又若已到59Denhour_1<='1';--則置進位為1count<="0000000";--count復0ELSEcount<=count+7;--若count未到59D,則加7,即作"加6校正"ENDIF;--使前面的16#60#的個位轉變?yōu)?421BCD的容量ELSEcount<="0000000";--count復0(有此句,則對無效狀態(tài)電路可自啟動)ENDIF;--ENDIF(count<16#60#)ELSIF(count<16#60#)THENcount<=count+1;--若count<16#60#則count加1enhour_1<='0'after100ns;--沒有發(fā)生進位ELSEcount<="0000000";--否則,若count不小于16#60#count復0ENDIF;--ENDIF(count(3DOWNTO0)="1001")ENDIF;--ENDIF(reset='0')ENDprocess;ENDfun;3、時LIBRARYIEEE;useIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYhourISPORT(clk,reset:INSTD_LOGIC;daout:outSTD_LOGIC_VECTOR(5DOWNTO0));ENDENTITYhour;ARCHITECTUREfunOFhourISSIGNALcount:STD_LOGIC_VECTOR(5DOWNTO0);BEGINdaout<=count;PROCESS(clk,reset)BEGINIF(reset='0')THENcount<="000000";--若reset=0,則異步清零ELSIF(clk'eventandclk='1')THEN--否則,若clk上升沿到IF(count(3DOWNTO0)="1001")THEN--若個位計時恰好到"1001"即9IF(count<16#23#)THEN--23進制count<=count+7;--若到23D則elsecount<="000000";--復0ENDIF;ELSIF(count<16#23#)THEN--若未到23D,則count進1count<=count+1;ELSE--否則清零count<="000000";ENDIF;--ENDIF(count(3DOWNTO0)="1001")ENDIF;--ENDIF(reset='0')ENDPROCESS;ENDfun;4、主程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYalertISPORT(clk:INSTD_LOGIC;dain:INSTD_LOGIC_VECTOR(6DOWNTO0);speak:OUTSTD_LOGIC;lamp:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDalert;ARCHITECTUREfunOFalertISSIGNALcount:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALcount1:STD_LOGIC_VECTOR(1DOWNTO0);BEGINspeaker:PROCESS(clk)BEGIN--speak<=count1(1);IF(clk'eventandclk='1')THENIF(dain="0000000")THENspeak<=count

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論