數(shù)字鐘設(shè)計(jì)報(bào)告_第1頁(yè)
數(shù)字鐘設(shè)計(jì)報(bào)告_第2頁(yè)
數(shù)字鐘設(shè)計(jì)報(bào)告_第3頁(yè)
數(shù)字鐘設(shè)計(jì)報(bào)告_第4頁(yè)
數(shù)字鐘設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

設(shè)計(jì)報(bào)告課程名稱在系統(tǒng)編程技術(shù)任課教師査長(zhǎng)軍設(shè)計(jì)題目數(shù)字時(shí)鐘班級(jí)09通信(1)班姓名施凱學(xué)號(hào)0905074024日期2011-5-30數(shù)字時(shí)鐘設(shè)計(jì)一、題目分析1、功能介紹1)具有時(shí)、分、秒計(jì)數(shù)顯示功能,以24小時(shí)循環(huán)計(jì)時(shí)。2)時(shí)鐘計(jì)數(shù)顯示時(shí)有LED燈的花樣顯示。3)具有調(diào)節(jié)小時(shí)、分鐘、秒及清零的功能。4)具有整點(diǎn)報(bào)時(shí)功能。2、性能指標(biāo)及功能設(shè)計(jì)1)時(shí)鐘計(jì)數(shù):完成時(shí)、分、秒的正確計(jì)時(shí)并且顯示所計(jì)的數(shù)字;對(duì)秒、分——60進(jìn)制計(jì)數(shù),即從0到59循環(huán)計(jì)數(shù),時(shí)鐘——24進(jìn)制計(jì)數(shù),即從0到23循環(huán)計(jì)數(shù),并且在數(shù)碼管上顯示數(shù)值。2)時(shí)間設(shè)置:手動(dòng)調(diào)節(jié)分鐘、小時(shí),可以對(duì)所設(shè)計(jì)的時(shí)鐘任意調(diào)時(shí)間,這樣使數(shù)字鐘真正具有使用功能。我們可以通過(guò)實(shí)驗(yàn)板上的鍵7和鍵4進(jìn)行任意的調(diào)整,因?yàn)槲覀冇玫臅r(shí)鐘信號(hào)均是1HZ的,所以每LED燈變化一次就來(lái)一個(gè)脈沖,即計(jì)數(shù)一次。3)清零功能:reset為復(fù)位鍵,低電平時(shí)實(shí)現(xiàn)清零功能,高電平時(shí)正常計(jì)數(shù)??梢愿鶕?jù)我們自己任意時(shí)間的復(fù)位。4)蜂鳴器在整點(diǎn)時(shí)有報(bào)時(shí)信號(hào)產(chǎn)生,蜂鳴器報(bào)警。產(chǎn)生“滴答.滴答”的報(bào)警聲音。5)LED燈在時(shí)鐘顯示時(shí)有花樣顯示信號(hào)產(chǎn)生。即根據(jù)進(jìn)位情況,LED不停的閃爍,從而產(chǎn)生“花樣”信號(hào)。二選擇方案本設(shè)計(jì)主要分為四個(gè)模塊:時(shí)模塊,分模塊,秒模塊,花樣顯示模塊。小時(shí)模塊:小時(shí)的顯示和手動(dòng)調(diào)時(shí)。分鐘模塊:分鐘的顯示和手動(dòng)調(diào)分。秒模塊:秒顯示。主模塊:主程序。還有花樣顯示,即根據(jù)進(jìn)位情況,LED不停的閃爍,從而產(chǎn)生“花樣”信號(hào)。三數(shù)字鐘設(shè)計(jì)的電路原理圖圖3.324進(jìn)制數(shù)字鐘的電路圖四細(xì)化框圖4數(shù)字時(shí)鐘數(shù)字時(shí)鐘控制單元時(shí)調(diào)整分調(diào)整使能端信號(hào)CLK信號(hào)時(shí)顯示分顯示秒顯示24進(jìn)制60進(jìn)制60進(jìn)制LED顯示整點(diǎn)報(bào)時(shí)花樣顯示根據(jù)總體方框圖及各部分分配的功能可知,本系統(tǒng)可以由秒計(jì)數(shù)器、分鐘計(jì)數(shù)器、小時(shí)計(jì)數(shù)器、整點(diǎn)報(bào)時(shí)、分的調(diào)整以及小時(shí)的調(diào)整和一個(gè)頂層文件構(gòu)成。采用自頂向下的設(shè)計(jì)方法,子模塊利用VHDL語(yǔ)言設(shè)計(jì),頂層文件用原理圖的設(shè)計(jì)方法。顯示:小時(shí)采用24進(jìn)制,而分鐘均是采用6進(jìn)制和10進(jìn)制的組合。五編寫應(yīng)用程序并仿真1.建立波形文件:選擇File->New,選擇VectorWaveformFile,單擊OK。2.選擇Edit->EndTime選項(xiàng),設(shè)定仿真時(shí)間寬度。3.雙擊Name下的空白處,彈出InsertNodorBus對(duì)話框,單擊NodeFinder。4.選定各個(gè)選擇項(xiàng)。5.單擊OK,完成引腳輸入。6.加上輸入信號(hào)后波形文件存盤。圖5.1波形7.運(yùn)行仿真器。在Processing菜單下選擇StartSimulation項(xiàng),直到Simulatorwassuccessful出現(xiàn),仿真結(jié)束。完成波形如圖所示。步驟5:引腳鎖定選擇AssignPin\Location\Chip,在跳出的窗口中的NodeName欄中用鍵盤輸入半加器的端口名,如a、b等。如果輸入的端口名正確,在右側(cè)的PinType欄將顯示該信號(hào)圖5.2仿真結(jié)果六、總結(jié)經(jīng)過(guò)幾周EDA實(shí)驗(yàn)的學(xué)習(xí),我們已經(jīng)掌握了EDA實(shí)驗(yàn)的基本操作。在編寫時(shí)可以相互借鑒,這樣可以節(jié)省一定的時(shí)間,尤其是24進(jìn)制的處理上,我們采用了簡(jiǎn)單的方法即可完成多個(gè)功能的順利實(shí)現(xiàn)。此次設(shè)計(jì)雖然完成了基本要求但是可以做很多的拓展,這是在以后可以改進(jìn)的地方。可以說(shuō)這次設(shè)計(jì)的代碼我是寫不出來(lái)的,是從網(wǎng)上查的,然后再自己看懂。這也是一個(gè)學(xué)習(xí)的過(guò)程。實(shí)驗(yàn)也讓我們對(duì)EDA課程的內(nèi)容有了更加深入的了解。最后感謝査老師對(duì)我們的指導(dǎo),以及同學(xué)們對(duì)我的幫助,使得實(shí)驗(yàn)?zāi)軌蝽樌瓿傻幕A(chǔ)上學(xué)習(xí)了更多。七參考文獻(xiàn)(1)沈明山編著.EDA技術(shù)及可編程器件應(yīng)用實(shí)訓(xùn).北京:科學(xué)出版社(2)李衍編著.EDA技術(shù)入門與提高王行.西安:西安電子科技大學(xué)出版社(3)侯繼紅,李向東主編.EDA實(shí)用技術(shù)教程.北京:中國(guó)電力出版社(4)閻石.《數(shù)字電子技術(shù)基礎(chǔ)》(第五版)高等教育出版社。(5)童詩(shī)白、華成英《模擬電子技術(shù)基礎(chǔ)》(第四版)高等教育出版社。八附錄:VHDL設(shè)計(jì)程序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秒時(shí)的進(jìn)位信號(hào)BEGIN--enmin_2由clk調(diào)制后的手動(dòng)調(diào)分脈沖信號(hào)串daout<=count;enmin_2<=(setminandclk);--setmin為手動(dòng)調(diào)分控制信號(hào),高電平有效enmin<=(enmin_1orenmin_2);--enmin為向分進(jìn)位信號(hào)PROCESS(clk,reset,setmin)BEGINIF(reset='0')THENcount<="0000000";--若reset為0,則異步清零ELSIF(clk'eventandclk='1')then--否則,若clk上升沿到IF(count(3downto0)="1001")then--若個(gè)位計(jì)時(shí)恰好到"1001"即9IF(count<16#60#)then--又若count小于16#60#,即60HIF(count="1011001")then--又若已到59Denmin_1<='1';count<="0000000";--則置進(jìn)位為1及count復(fù)0ELSE--未到59Dcount<=count+7;--則加7,而+7=+1+6,即作"加6校正"ENDIF;ELSE--若count不小于16#60#(即count等于或大于16#60#)count<="0000000";--count復(fù)0ENDIF;--ENDIF(count<16#60#)ELSIF(count<16#60#)then--若個(gè)位計(jì)數(shù)未到"1001"則轉(zhuǎn)此句再判count<=count+1;--若count<16#60#則count加1enmin_1<='0'after100ns;--沒(méi)有發(fā)生進(jìn)位ELSE--否則,若count不小于16#60#count<="0000000";--則count復(fù)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分時(shí)的進(jìn)位信號(hào)BEGIN--enmin_2由clk調(diào)制后的手動(dòng)調(diào)時(shí)脈沖信號(hào)串daout<=count;enhour_2<=(sethourandclk1);--sethour為手動(dòng)調(diào)時(shí)控制信號(hào),高電平有效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--若個(gè)位計(jì)時(shí)恰好到"1001"即9IF(count<16#60#)THEN--又若count小于16#60#,即60IF(count="1011001")THEN--又若已到59Denhour_1<='1';--則置進(jìn)位為1count<="0000000";--count復(fù)0ELSEcount<=count+7;--若count未到59D,則加7,即作"加6校正"ENDIF;--使前面的16#60#的個(gè)位轉(zhuǎn)變?yōu)?421BCD的容量ELSEcount<="0000000";--count復(fù)0(有此句,則對(duì)無(wú)效狀態(tài)電路可自啟動(dòng))ENDIF;--ENDIF(count<16#60#)ELSIF(count<16#60#)THENcount<=count+1;--若count<16#60#則count加1enhour_1<='0'after100ns;--沒(méi)有發(fā)生進(jìn)位ELSEcount<="0000000";--否則,若count不小于16#60#count復(fù)0ENDIF;--ENDIF(count(3DOWNTO0)="1001")ENDIF;--ENDIF(reset='0')ENDprocess;ENDfun;3、時(shí)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--若個(gè)位計(jì)時(shí)恰好到"1001"即9IF(count<16#23#)THEN--23進(jìn)制count<=count+7;--若到23D則elsecount<="000000";--復(fù)0ENDIF;ELSIF(count<16#23#)THEN--若未到23D,則count進(jìn)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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論