大連理工大學(xué)數(shù)字電路課程設(shè)計(jì)報(bào)告_多功能數(shù)字時(shí)鐘設(shè)計(jì)說(shuō)明_第1頁(yè)
大連理工大學(xué)數(shù)字電路課程設(shè)計(jì)報(bào)告_多功能數(shù)字時(shí)鐘設(shè)計(jì)說(shuō)明_第2頁(yè)
大連理工大學(xué)數(shù)字電路課程設(shè)計(jì)報(bào)告_多功能數(shù)字時(shí)鐘設(shè)計(jì)說(shuō)明_第3頁(yè)
大連理工大學(xué)數(shù)字電路課程設(shè)計(jì)報(bào)告_多功能數(shù)字時(shí)鐘設(shè)計(jì)說(shuō)明_第4頁(yè)
已閱讀5頁(yè),還剩20頁(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)介

1、.大連理工大學(xué)本科實(shí)驗(yàn)報(bào)告題目:多功能數(shù)字時(shí)鐘設(shè)計(jì)課程名稱:數(shù)字電路與系統(tǒng)課程設(shè)計(jì)學(xué)院(系):信息與通信工程學(xué)院專業(yè):電子信息工程班級(jí):學(xué)生姓名:學(xué)號(hào):完成日期:2014 年 7月 16日.2014年7月16日題目:多功能數(shù)字時(shí)鐘設(shè)計(jì)1 設(shè)計(jì)要求1) 具有“時(shí)”、“分”、“秒”及“模式”的十進(jìn)制數(shù)字顯示功能;2) 具有手動(dòng)校時(shí)、 校分功能, 并能快速調(diào)節(jié)、 一鍵復(fù)位(復(fù)位時(shí)間 12 時(shí) 00 分 00 秒);3) 具有整點(diǎn)報(bào)時(shí)功能,從 00 分 00 秒起,亮燈十秒鐘;4) 具有秒表功能(精確至百分之一秒) ,具有開(kāi)關(guān)鍵,可暫停、可一鍵清零;5) 具有鬧鐘功能,手動(dòng)設(shè)置時(shí)間,并可快速調(diào)節(jié),具有

2、開(kāi)關(guān)鍵,可一鍵復(fù)位(復(fù)位時(shí)間 12 時(shí) 00 分 00 秒),鬧鐘時(shí)間到亮燈十秒鐘進(jìn)行提醒;6) 具有倒計(jì)時(shí)功能(精確至百分之一秒) ,可手動(dòng)設(shè)置倒計(jì)時(shí)時(shí)間,若無(wú)輸入,系統(tǒng)默認(rèn) 60 秒倒計(jì)時(shí),且具有開(kāi)關(guān)鍵,計(jì)時(shí)時(shí)間到亮燈十秒鐘進(jìn)行提醒,可一鍵復(fù)位(復(fù)位時(shí)間默認(rèn) 60 秒)。2 設(shè)計(jì)分析及系統(tǒng)方案設(shè)計(jì)2.1模式選擇模塊:按鍵一進(jìn)行模式選擇,并利用數(shù)碼管顯示出當(dāng)前模式。模式一:時(shí)鐘顯示功能;模式二:時(shí)鐘調(diào)節(jié)功能;模式三:鬧鐘功能;模式四:秒表功能;模式五:倒計(jì)時(shí)功能。2.2數(shù)字鐘的基本功能部分:包括時(shí)、分、秒的顯示,手動(dòng)調(diào)時(shí),以及整點(diǎn)報(bào)時(shí)部分?;灸K是由振蕩器、分頻器、計(jì)數(shù)器、譯碼器、顯示器等

3、幾部分組成。利用DE2硬件中提供的 50MHZ晶振,經(jīng)過(guò)分頻得到周期為1s 的時(shí)鐘脈沖。將該信號(hào)送入計(jì)數(shù)器進(jìn)行計(jì)算,并把累加結(jié)果以“時(shí)” “分”“秒”的形式通過(guò)譯碼器由數(shù)碼管顯示出來(lái)。具有復(fù)位按鍵1,在時(shí)鐘模式下按下復(fù)位鍵后對(duì)時(shí)鐘進(jìn)行復(fù)位,復(fù)位時(shí)間12 時(shí) 00 分 00秒。進(jìn)入手動(dòng)調(diào)時(shí)功能時(shí),通過(guò)按鍵調(diào)節(jié)時(shí)間,每按下依次按鍵2,時(shí)鐘時(shí)針加一,按下按鍵 2 一秒內(nèi)未松手, 時(shí)鐘時(shí)針每秒鐘加十; 按鍵 1 對(duì)分針進(jìn)行控制, 原理與時(shí)針相同并通過(guò)譯碼器由七位數(shù)碼管顯示。從 00 分 00 秒開(kāi)始, 數(shù)字鐘進(jìn)入整點(diǎn)報(bào)時(shí)功能(本設(shè)計(jì)中以一個(gè)LED燈代替蜂鳴器, 進(jìn)行報(bào)時(shí)),亮燈 10 秒鐘進(jìn)行提示。2

4、.3多功能數(shù)字鐘的秒表功能部分:計(jì)時(shí)范圍從00 分 00.00 秒至 59 分 59.99 秒。可由復(fù)位鍵0 異步清零,并由開(kāi)關(guān)1 控制計(jì)時(shí)開(kāi)始與停止。將 DE2硬件中的 50MHZ晶振經(jīng)過(guò)分頻獲得周期為 0.01 秒的時(shí)鐘脈沖,將信號(hào)送入計(jì)數(shù)器進(jìn)行計(jì)算,并把累計(jì)結(jié)果通過(guò)譯碼器由七位數(shù)碼管顯示2.4多功能數(shù)字鐘的鬧鐘功能部分:進(jìn)入鬧鐘功能模式后,通過(guò)按鍵2(設(shè)定小時(shí))和按鍵 1(設(shè)定分鐘)設(shè)定鬧鐘時(shí)間,當(dāng)按下按鍵一秒內(nèi)未松手時(shí),可進(jìn)行快速設(shè)定時(shí)間。當(dāng)時(shí)鐘進(jìn)入鬧鐘設(shè)定的時(shí)間(判斷時(shí)鐘的時(shí)信號(hào)時(shí)針,分針?lè)謩e與鬧鐘設(shè)定的時(shí)信號(hào)時(shí)針、分針是否相等) ,則以 LED 燈連續(xù)亮 10 秒鐘進(jìn)行提示,并由開(kāi)

5、關(guān)0 控制鬧鐘的開(kāi)和關(guān)。2.5多功能數(shù)字鐘的倒計(jì)時(shí)功能部分:可通過(guò)按鍵3(設(shè)定分針) 和按鍵 2(設(shè)定秒針).設(shè)定倒計(jì)時(shí)開(kāi)始,當(dāng)按下按鍵一秒內(nèi)未松手時(shí),可進(jìn)行快速設(shè)定時(shí)間。當(dāng)沒(méi)有手動(dòng)時(shí)間設(shè)定時(shí),系統(tǒng)默認(rèn)為60 秒倒計(jì)時(shí)。 倒計(jì)時(shí)的時(shí)鐘與數(shù)字鐘的時(shí)鐘相同,每迎到一個(gè)1s 時(shí)鐘上升沿,則計(jì)數(shù)器減一。計(jì)數(shù)器減至00 時(shí),分鐘位、秒鐘位保持為00。倒計(jì)時(shí)結(jié)束時(shí)(即00分 00 秒),倒計(jì)時(shí)信號(hào)燈亮10 秒鐘進(jìn)行提示,并由開(kāi)關(guān)2 控制倒計(jì)時(shí)的開(kāi)始于停止。本設(shè)計(jì)通過(guò)數(shù)據(jù)選擇器控制譯碼器,使數(shù)碼管獨(dú)立顯示,各功能之間互不影響。當(dāng) mode=“ 000”時(shí),時(shí)鐘功能,則對(duì)時(shí)鐘信號(hào)進(jìn)行譯碼,數(shù)碼管顯示時(shí)鐘數(shù)據(jù);

6、當(dāng) mode=“ 001”時(shí),時(shí)間校準(zhǔn)功能,則對(duì)時(shí)鐘信號(hào)進(jìn)行譯碼,數(shù)碼管顯示鬧鐘數(shù)據(jù);當(dāng) mode=“ 010”時(shí),鬧鐘功能,則對(duì)鬧鐘信號(hào)進(jìn)行譯碼,數(shù)碼管顯示鬧鐘信號(hào)數(shù)據(jù);當(dāng) mode=“ 011”時(shí),秒表功能,則對(duì)秒表信號(hào)進(jìn)行譯碼,數(shù)碼管顯示秒表信號(hào)數(shù)據(jù)。當(dāng) mode=“ 100”時(shí),則倒計(jì)時(shí)功能,對(duì)倒計(jì)時(shí)鐘信號(hào)進(jìn)行譯碼,數(shù)碼管顯示倒計(jì)時(shí)信號(hào)數(shù)據(jù)。系統(tǒng)總體結(jié)構(gòu)框圖如下所示 :時(shí)鐘數(shù)分頻模塊分頻(周期1s)計(jì)數(shù)器據(jù)數(shù)LED選碼擇譯報(bào)時(shí)提醒管分頻(周期0.1s)碼器顯器鬧鐘示分頻(周期0.01s)秒表計(jì)數(shù)器LED 提醒倒計(jì)時(shí)計(jì)數(shù)器3 系統(tǒng)以及模塊硬件電路設(shè)計(jì)3.1 分頻電路參數(shù)計(jì)算:T15010

7、0010001s106501s10650T1501000100.01s10650.3.2 系統(tǒng)硬件電路設(shè)計(jì)系統(tǒng)硬件模擬圖:.50MHZLEDdjsLEDnzKEY0分KEY1別與數(shù)KEY2碼管KEY3相連Sw0LEDbsSw1Sw23.3 系統(tǒng)與引腳分配接口名稱clkselectmoderstadddecstartnzstartmbstartdjslednzleddjsledbsqss6qss5qss4qss3qss2qss1qss0qsg6qsg5類型(輸入 / 輸出)引腳號(hào)說(shuō)明INPIN_N2晶振 50MHz時(shí)鐘輸入INPIN_W26模式選擇按鍵INPIN_G26

8、復(fù)位按鍵INPIN_P23高位設(shè)置鍵INPIN_N23地位設(shè)置鍵INPIN_N25鬧鐘開(kāi)關(guān)INPIN_N26秒表開(kāi)關(guān)INPIN_P25倒計(jì)時(shí)開(kāi)關(guān)OUTPIN_AE23鬧鐘提示燈OUTPIN_AE22倒計(jì)時(shí)提示燈OUTPIN_Y18整點(diǎn)報(bào)時(shí)提示燈OUTPIN_N9時(shí)針高位數(shù)碼管顯示OUTPIN_P9OUTPIN_L7OUTPIN_L6OUTPIN_L9OUTPIN_L2OUTPIN_L3OUTPIN_M4時(shí)針低位數(shù)碼管顯示OUTPIN_M5.qsg4qsg3qsg2qsg1qsg0qms6qms5qms4qms3qms2qms1qms0qmg6qmg5qmg4qmg3qmg2qmg1qmg0qg

9、s6qgs5qgs4qgs3qgs2qgs1qgs0qgg6qgg5qgg4qgg3qgg2qgg1qgg0qfs6qfs5qfs4qfs3qfs2qfs1qfs0qfg6qfg5qfg4.OUTPIN_M3OUTPIN_M2OUTPIN_P3OUTPIN_P4OUTPIN_R2OUTPIN_W24秒針高位數(shù)碼管顯示OUTPIN_U22OUTPIN_Y25OUTPIN_Y26OUTPIN_AA26OUTPIN_AA25OUTPIN_Y23OUTPIN_Y24秒針低位數(shù)碼管顯示OUTPIN_AB25OUTPIN_AB26OUTPIN_AC26OUTPIN_AC25OUTPIN_V22OUTPIN

10、_AB23OUTPIN_AB24模式顯示高位(默認(rèn)全滅)OUTPIN_AA23OUTPIN_AA24OUTPIN_Y22OUTPIN_W21OUTPIN_V21OUTPIN_V20模式顯示低位OUTPIN_V13OUTPIN_V14OUTPIN_AE11OUTPIN_AD11OUTPIN_AC12OUTPIN_AB12OUTPIN_AF10OUTPIN_R3分針高位數(shù)碼管顯示OUTPIN_R4OUTPIN_R5OUTPIN_T9OUTPIN_P7OUTPIN_P6OUTPIN_T2OUTPIN_T3分針低位數(shù)碼管顯示OUTPIN_R6OUTPIN_R7.qfg3qfg2qfg1qfg04 系統(tǒng)

11、的 VHDL設(shè)計(jì)OUTPIN_T4OUTPIN_U2OUTPIN_U1OUTPIN_U94.1 頂層設(shè)計(jì)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity liyabin is-實(shí)體聲明,及系統(tǒng)輸入與輸出port(clk,rst,add,dec,selectmode,startmb,startnz,startdjs:in std_logic;qgs,qgg,qss,qsg,qfs,qfg,qms,qmg:buffer std_logic_vector(6 downto 0);ledbs,

12、lednz,leddjs:out std_logic);end;architecture data of liyabin iscomponent mode-模式循環(huán)模塊元件例化port(selectmode:in std_logic;mode:buffer std_logic_vector(2 downto 0);end component;component gnxz- 功能選擇模塊元件例化port(zt:in std_logic_vector(2 downto 0);sz1,sz2,sz3,sz4,sz5,sz6:in std_logic_vector(3 downto 0);-時(shí)鐘顯示信

13、號(hào)mb1,mb2,mb3,mb4,mb5,mb6:in std_logic_vector(3 downto 0);-秒表顯示信號(hào)nz3,nz4,nz5,nz6:in std_logic_vector(3 downto 0);-鬧鐘顯示信號(hào)djs1,djs2,djs3,djs4,djs5,djs6:instd_logic_vector(3downto 0);-倒計(jì)時(shí)顯示信號(hào)s1,s2,s3,s4,s5,s6,s7,s8:out std_logic_vector(3 downto 0)-輸出,送入顯示模塊用數(shù)碼管進(jìn)行顯示);end component;component fp- 分頻模塊元件例化p

14、ort(clk,rst:in std_logic;clk10ms,clk100ms,clk1s:out std_logic);end component;component sz- 時(shí)鐘模塊元件例化.port(zt:in std_logic_vector(2 downto 0);clk,clk100ms,rst,add,dec:in std_logic;sz1,sz2,sz3,sz4,sz5,sz6:buffer std_logic_vector(3 downto 0);ledbs: out std_logic);end component;component nz- 鬧鐘模塊元件例化port

15、(startnz,add,dec,rst,clk,clk100ms:in std_logic;zt:in std_logic_vector(2 downto 0);sz2,sz3,sz4,sz5,sz6:in std_logic_vector(3 downto 0);-時(shí)鐘顯示信號(hào)nz3,nz4,nz5,nz6:buffer std_logic_vector(3 downto 0);-鬧鐘顯示信號(hào) lednz:out std_logic- 鬧鐘提示燈輸出);end component;component mb- 秒表模塊元件例化port(zt:in std_logic_vector(2 dow

16、nto 0);clk,rst,startmb:in std_logic;mb1,mb2,mb3,mb4,mb5,mb6:buffer std_logic_vector(3 downto 0);end component;component djs- 倒計(jì)時(shí)模塊元件例化port(rst,startdjs,add,dec,clk,clk100ms:in std_logic;zt:in std_logic_vector(2 downto 0);djs1,djs2,djs3,djs4,djs5,djs6:buffer std_logic_vector(3 downto 0);leddjs:out st

17、d_logic);end component;component xs- 顯示模塊元件例化port(xsin:in std_logic_vector(3 downto 0);-xsout:out std_logic_vector(6 downto 0);end component;signal clk10ms,clk100ms,clk1s,clk1m,clk1h :std_logic;- 分頻脈沖信號(hào)級(jí)進(jìn)位脈沖信號(hào)signalsz1,sz2,sz3,sz4,sz5,sz6,sz33,sz55:std_logic_vector(3downto 0);-時(shí)鐘顯示信號(hào)signal nz3,nz4,n

18、z5,nz6:std_logic_vector(3 downto 0);-鬧鐘顯示信號(hào)signal mb1,mb2,mb3,mb4,mb5,mb6:std_logic_vector(3 downto 0);-秒表顯示信號(hào)signaldjs1,djs2,djs3,djs4,djs5,djs6:std_logic_vector(3downto 0);-倒計(jì)時(shí)顯.示信號(hào)signal s1,s2,s3,s4,s5,s6,s7,s8:std_logic_vector(3 downto 0);-顯示信號(hào)signal zt:std_logic_vector(2 downto 0);begin- 結(jié)構(gòu)體-模式

19、循環(huán)模塊-u1:mode port map(selectmode,zt);-功能選擇模塊-u2:gnxz port map(zt,sz1,sz2,sz3,sz4,sz5,sz6,mb1,mb2,mb3,mb4,mb5,mb6,nz3,nz4,nz5,nz6,djs1,djs2,djs3,djs4,s1,s2,s3,s4,s5,s6,s7,s8);-分頻模塊 -u3:fp port map(clk,rst,clk10ms,clk100ms,clk1s);-時(shí)鐘模塊 -u4:sz portmap(zt,clk1s,clk100ms,rst,add,dec,sz1,sz2,sz3,sz4,sz5,s

20、z6,ledbs);-鬧鐘模塊 -u5:nz port map(startnz,add,dec,rst,clk1s,clk100ms,zt,sz2,sz3,sz4,sz5,sz6,nz3,nz4,nz5,nz6,lednz);-秒表模塊 -u6:mb port map(zt,clk10ms,rst,startmb,mb1,mb2,mb3,mb4,mb5,mb6);-倒計(jì)時(shí)模塊 -u7:djs port map(rst,startdjs,add,dec,clk10ms,clk100ms,zt,djs1,djs2,djs3,djs4,djs5,djs6,leddjs);-顯示模塊 -show1:

21、xs port map(s1,qmg);.show2: xs port map(s2,qms);show3: xs port map(s3,qfg);show4: xs port map(s4,qfs);show5: xs port map(s5,qsg);show6: xs port map(s6,qss);show7: xs port map(s7,qgg);show8: xs port map(s8,qgs);end;- 結(jié)束4.2分頻模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;en

22、tity fp isport(clk,rst:in std_logic;clk10ms,clk100ms,clk1s:out std_logic);end;architecture data of fp isbegin-50 兆分頻,產(chǎn)生clk1s ,作為始時(shí)鐘的秒計(jì)時(shí)脈沖process(clk,rst)variable num:integer range 0 to 49999999;beginif rst=0 thennum:=0;elsif rising_edge(clk) thenif num=49999999 thennum:=0;clk1s=1;elsenum:=num+1;clk1

23、s=0;end if;end if;end process;-5 兆分頻,產(chǎn)生 clk100ms (即 clk0.1s ),作為快速調(diào)整時(shí)間的脈沖信號(hào) process(clk,rst)variable num:integer range 0 to 4999999;begin.if rst=0 thennum:=0;elsif rising_edge(clk) thenif num=4999999 thennum:=0;clk100ms=1;elsenum:=num+1;clk100ms=0;end if;end if;end process;-5 兆分頻,產(chǎn)生 clk10ms (即 clk0.

24、01s )作為秒表計(jì)時(shí)脈沖 process(clk,rst)variable num:integer range 0 to 499999;beginif rst=0 thennum:=0;elsif rising_edge(clk) thenif num=499999 thennum:=0;clk10ms=1;elsenum:=num+1;clk10ms=0;end if;end if;end process;end;4.3 模式循環(huán)模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity

25、 mode is -實(shí)體聲明port(selectmode:in std_logic;mode:buffer std_logic_vector(2 downto 0);end;architecture data of mode cess(selectmode)beginif rising_edge(selectmode) then- 模式循環(huán)計(jì)數(shù)器if mode=100 thenmode=000;else mode=mode+1;end if;end if;end process;end;4.4 功能選擇模塊library ieee;use ieee.std_logic_

26、1164.all;use ieee.std_logic_unsigned.all;entity gnxz is- 實(shí)體聲明port(zt:in std_logic_vector(2 downto 0);sz1,sz2,sz3,sz4,sz5,sz6:in std_logic_vector(3 downto 0);-時(shí)鐘顯示信號(hào)mb1,mb2,mb3,mb4,mb5,mb6:in std_logic_vector(3 downto 0);-秒表顯示信號(hào)nz1,nz2,nz3,nz4,nz5,nz6:in std_logic_vector(3 downto 0);-鬧鐘顯示信號(hào)djs1,djs2,

27、djs3,djs4,djs5,djs6:instd_logic_vector(3downto 0);-倒計(jì)時(shí)顯示信號(hào)s1,s2,s3,s4,s5,s6,s7,s8:out std_logic_vector(3 downto 0)-輸出,送入顯示模塊用數(shù)碼管進(jìn)行顯示);end;architecture data of gnxz isbeginprocess(zt,sz1,sz2,sz3,sz4,sz5,sz6,- 選擇譯碼器數(shù)日信號(hào)nz3,nz4,nz5,nz6,mb1,mb2,mb3,mb4,mb5,mb6,djs1,djs2,djs3,djs4,djs5,djs6)beginif zt=00

28、0 then-1時(shí)鐘顯示s1=sz1;s2=sz2;s3=sz3;s4=sz4;s5=sz5;s6=sz6;s7=0001;s8=1111;elsif zt=001 then-2調(diào)整s1=sz1;s2=sz2;s3=sz3;s4=sz4;s5=sz5;s6=sz6;s7=0010;s8=1111;elsif zt=010 then-3鬧鐘.s1=0000;s2=0000;s3=nz3;s4=nz4;s5=nz5;s6=nz6;s7=0011;s8=1 111;elsif zt=011 then-4秒表s1=mb1;s2=mb2;s3=mb3;s4=mb4;s5=mb5;s6=mb6;s7=01

29、00;s8=1111;elsif zt=100 then-5倒計(jì)時(shí)s1=djs1;s2=djs2;s3=djs3;s4=djs4;s5=djs5;s6=djs6;s7=0101;s8=1111;elses1=sz1;s2=sz2;s3=sz3;s4=sz4;s5=sz5;s6=sz6;s7=0001;s8xsoutxsoutxsoutxsoutxsoutxsoutxsoutxsoutxsoutxsoutxsout=1111111;end case;end process;end;.4.6時(shí)鐘及其調(diào)整模塊library ieee;use ieee.std_logic_1164.all;use i

30、eee.std_logic_unsigned.all;entity sz is- 實(shí)體聲明port(zt:in std_logic_vector(2 downto 0);clk,clk100ms,rst,add,dec:in std_logic;sz1,sz2,sz3,sz4,sz5,sz6:buffer std_logic_vector(3 downto 0);ledbs: out std_logic);end;architecture data of sz issignal clk1m,clk1h,clk1m0,clk1h0:std_logic;- 進(jìn)位脈沖信號(hào)signal js,js1:

31、std_logic_vector(0 downto 0);- 按鍵計(jì)時(shí)信號(hào)beginprocess(zt,js,clk100ms,clk1m0,add,dec)-時(shí)間校準(zhǔn)選擇脈沖分針部分beginif zt=001 and js=1 thenclk1m=clk100ms;elsif zt=001 and js/=1 thenclk1m=clk1m0 or not dec;else clk1m=clk1m0;end if;end process;process(zt,js1,clk100ms,clk1h0)-時(shí)間校準(zhǔn)選擇脈沖時(shí)針部分beginif zt=001 and js1=1 thenclk

32、1h=clk100ms;elsif zt=001 and js1/=1 thenclk1h=clk1h0 or not dec;else clk1h=clk1h0;end if;end process;process(zt,clk,rst,add,dec)- 時(shí)鐘分針按鍵計(jì)時(shí)beginif zt=000 and rst=0 thensz2=0000;sz1=0000;elseif zt=001 and dec=0 then.if rising_edge(clk) thenjs=js+1;if js=1 thenjs=1;end if;end if;else js=0;end if;if zt=

33、001 and add=0 then- 時(shí)鐘時(shí)針按鍵計(jì)時(shí)if rising_edge(clk) thenjs1=js1+1;if js1=1 thenjs1=1;end if;end if;else js1=0;end if;if rising_edge(clk) then- 時(shí)鐘秒針計(jì)數(shù)器if sz2=0101 and sz1=1001 thensz2=0000;sz1=0000;clk1m0=1;elsifsz1=1001thensz1=0000;sz2=sz2+1;clk1m0=0;else sz1=sz1+1;clk1m0=0;end if;end if;end if;end proc

34、ess;process(zt,clk1m,rst)- 時(shí)鐘分針計(jì)數(shù)器beginif zt=000 and rst=0 thensz4=0000;sz3=0000;elsif rising_edge(clk1m) thenif sz4=0101 and sz3=1001 thensz4=0000;sz3=0000;clk1h0=1;elsifsz3=1001thensz3=0000;sz4=sz4+1;clk1h0=0;else sz3=sz3+1;clk1h0=0;end if;end if;end process;process(clk1h,rst,zt)- 時(shí)鐘時(shí)針計(jì)數(shù)器.beginif

35、zt=000 and rst=0 thensz6=0001;sz5=0010;elsif rising_edge(clk1h) thenif sz6=0010 and sz5=0011 thensz6=0000;sz5=0000;elsifsz5=1001thensz5=0000;sz6=sz6+1;else sz5=sz5+1;end if;end if;end process;process(sz1,sz2,sz3,sz4)- 整點(diǎn)報(bào)時(shí)beginif sz4=0000 and sz3=0000 and sz2=0000 thenledbs=1;else ledbs=0;end if;end

36、 process;end;4.7 鬧鐘模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity nz isport(startnz,add,dec,rst,clk,clk100ms:in std_logic;zt:in std_logic_vector(2 downto 0);sz2,sz3,sz4,sz5,sz6:in std_logic_vector(3 downto 0);-時(shí)鐘顯示信號(hào)nz3,nz4,nz5,nz6:buffer std_logic_vector(3 downto

37、0);-鬧鐘顯示信號(hào) lednz:out std_logic);end;architecture data of nz issignal js,js1:std_logic_vector(0 downto 0);-按鍵計(jì)時(shí)信號(hào)signal clkd,clkg:std_logic;- 進(jìn)位脈沖信號(hào)beginprocess(js,clk100ms,dec)beginif js=1 then- 分針按鍵計(jì)時(shí).clkd=clk100ms;else clkd=not dec;end if;end process;process(js1,clk100ms,add)- 時(shí)針按鍵計(jì)時(shí)beginif js1=1

38、thenclkg=clk100ms;else clkg=not add;end if;end process;process(zt,add,dec,rst,clk,clkg,clkd)- 鬧鐘時(shí)間手動(dòng)設(shè)置beginif zt=010 thenif rst=0 thennz6=0001;nz5=0010;nz4=0000;nz3=0000;- 鬧鐘復(fù)位 12:00:00elseif dec=0 thenif rising_edge(clk) thenjs=js+1;if js=1 thenjs=1;end if;end if;else js=0;end if;if add=0 thenif ri

39、sing_edge(clk) thenjs1=js1+1;if js1=1 thenjs1=1;end if;end if;else js1=0;end if;if falling_edge(clkd) then- 鬧鐘手動(dòng)設(shè)置分鐘if nz4=0101 and nz3=1001 thennz4=0000;nz3=0000;elsif nz3=1001 thennz3=0000;nz4=nz4+1;.else nz3=nz3+1;end if;end if;if falling_edge(clkg) then- 鬧鐘手動(dòng)設(shè)置時(shí)鐘if nz6=0010 and nz5=0011 thennz6=

40、0000;nz5=0000;elsif nz5=1001 thennz5=0000;nz6=nz6+1;else nz5=nz5+1;end if;end if;end if;end if;end process;process(startnz,nz6,nz5,nz4,nz3,sz2,sz3,sz4,sz5,sz6)-鬧鐘判斷及提示beginif startnz=1 thenifnz6=sz6 and nz5=sz5 and nz4=sz4 and nz3=sz3 and sz2=0000thenlednz=1;else lednz=0;end if;else lednz=0;end if;end process;end;4.8 秒表模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mb is- 實(shí)體聲明port(zt:in std_logic_vector(2 downto 0);clk,rst,startmb:in std_lo

溫馨提示

  • 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)論