版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì) 報(bào) 告 書(shū)</p><p> 所屬課程名稱(chēng) 《EDA技術(shù)及應(yīng)用》課程設(shè)計(jì) </p><p> 題 目 數(shù)字鬧鐘系統(tǒng)設(shè)計(jì) </p><p> 分 院 </p><p
2、> 專(zhuān)業(yè)班級(jí) 15級(jí)電信1班 </p><p> 學(xué) 號(hào) </p><p> 學(xué)生姓名 </p><p> 指導(dǎo)教師 &l
3、t;/p><p> 20 18 年 1 月 8 日 </p><p> 課 程 設(shè) 計(jì)( 論 文 )任 務(wù) 書(shū)</p><p> 一、課程設(shè)計(jì)(論文)題目 數(shù)字鬧鐘系統(tǒng)設(shè)計(jì) </p><p> 二、課程設(shè)計(jì)(論文)工作:自 2018 年1 月 8 日
4、起至 2018 年 1 月 10 日止。</p><p> 三、課程設(shè)計(jì)(論文)的內(nèi)容要求:</p><p> 設(shè)計(jì)一個(gè)24小時(shí)制的數(shù)字鬧鐘,該數(shù)字鬧鐘包括幾個(gè)組成部分:</p><p> ?。?)顯示屏:由7段數(shù)碼管組成;</p><p> ?。?)YES(確認(rèn))鍵:用于輸入新的時(shí)間或新的鬧鐘時(shí)間;</p>&
5、lt;p> ?。?)TIME(時(shí)間)鍵;用于確定新的時(shí)間設(shè)置;</p><p> ?。?)ALARM(鬧鐘)鍵:用于確定新的鬧鐘時(shí)間設(shè)置或顯示已設(shè)置的鬧鐘時(shí)間;</p><p> (5)揚(yáng)聲器:在當(dāng)前時(shí)鐘時(shí)間與鬧鐘時(shí)間相同時(shí),發(fā)出蜂鳴聲; </p><p><b> 目 錄</b></p><p> 課程設(shè)計(jì)
6、內(nèi)容及要求...................................</p><p> 程序設(shè)計(jì)目的..........................................</p><p> 程序?qū)崿F(xiàn)思路..........................................</p><p> 程序清單(或正文)......
7、............................</p><p> 課程設(shè)計(jì)心得..........................................</p><p> 參考文獻(xiàn)(資料).....................................</p><p><b> 程序設(shè)計(jì)目的</b></
8、p><p> 隨著EDA技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴(kuò)大與深入,EDA技術(shù)在電子信息、通信、自動(dòng)控制及計(jì)算機(jī)應(yīng)用領(lǐng)域的重要性日益突出。EDA技術(shù)就是依賴(lài)功能強(qiáng)大的計(jì)算機(jī),在EDA工具軟件平臺(tái)上,對(duì)以硬件描述語(yǔ)言VHDL為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文件,自動(dòng)地完成邏輯優(yōu)化和仿真測(cè)試,直至實(shí)現(xiàn)既定的電子線路系統(tǒng)功能。本課設(shè)基于VHDL硬件描述語(yǔ)言并選用合適的可編程邏輯器件設(shè)計(jì)一個(gè)24小時(shí)制的數(shù)字鬧鐘的思路和技巧。在max+p
9、lus2開(kāi)發(fā)環(huán)境中編譯和仿真了所設(shè)計(jì)的程序,并逐一調(diào)試驗(yàn)證程序的運(yùn)行狀況。仿真和驗(yàn)證的結(jié)果表明,該設(shè)計(jì)方法切實(shí)可行,該數(shù)字鬧鐘可以實(shí)現(xiàn)調(diào)時(shí)定時(shí)鬧鐘功能具有一定的實(shí)際應(yīng)用性。</p><p> 第3章程序?qū)崿F(xiàn)思路</p><p> 根據(jù)該數(shù)字鬧鐘的設(shè)計(jì)要求,可得到其外部端口如圖。</p><p> 各個(gè)輸入/輸出端口的作用如下:</p><
10、p> 1)CLK為外部時(shí)鐘信號(hào),RESET為復(fù)位信號(hào)。</p><p> 2)當(dāng)YES為高電平,表示用戶(hù)選擇了某個(gè)與置數(shù)字。</p><p> 3)當(dāng)TIME_BUTTON為高電平時(shí),表示用戶(hù)按下TIME鍵。</p><p> (5)SEG7是數(shù)據(jù)動(dòng)態(tài)掃描顯示的公共七段數(shù)碼顯示管驅(qū)動(dòng)端;LEDW是數(shù)碼管的位選擇端,它經(jīng)過(guò)外接的3-8譯碼器譯碼后接數(shù)碼
11、管的公共端COM(6) SOUND ALARM用于控制揚(yáng)聲器發(fā)聲,當(dāng) SOUND ALARM=1時(shí),揚(yáng)聲器發(fā)出蜂鳴,表示到了設(shè)定的鬧鐘時(shí)間。根據(jù)系統(tǒng)的設(shè)計(jì)要求,整個(gè)系統(tǒng)可分為鬧鐘控制器、預(yù)置寄存器、分頻電路、時(shí)間計(jì)數(shù)器、鬧鐘寄存器、顯示驅(qū)動(dòng)控制器等6個(gè)模塊,各個(gè)模塊的作用介紹如下(1)鬧鐘控制器( CONTROL):它是整個(gè)系統(tǒng)正常有序工作的核心,按設(shè)計(jì)要求產(chǎn)生相應(yīng)的控制邏輯
12、,控制其他各部分的協(xié)調(diào)工作。(2)預(yù)置寄存器( KEYBUFFER):這時(shí)一個(gè)預(yù)置數(shù)字產(chǎn)生器和移位寄存器的結(jié)合體。通過(guò)對(duì)YES進(jìn)行操作,選擇欲輸入的數(shù)字;暫存用戶(hù)輸入的數(shù)字,并且用戶(hù)每輸入一個(gè)數(shù)字,暫存數(shù)字移位一次,實(shí)現(xiàn)用戶(hù)輸入的數(shù)字在顯示器上從右到左的依次顯示(3)分頻電路( DIVIDER):將較高速的外部時(shí)鐘頻率分頻成每秒一次的時(shí)鐘頻率,以便進(jìn)行時(shí)鐘計(jì)數(shù)(4)時(shí)間計(jì)數(shù)器( OUNTER):
13、這實(shí)際上是一個(gè)異步復(fù)位、異步置數(shù)的累加器,通常情況下進(jìn)行時(shí)鐘累加計(jì)數(shù),必</p><p> 第4章程序清單或正文</p><p> 1)程序包P_ALARM:</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> PAC
14、KAGE P_ALARM IS</p><p> SUBTYPE T_DIGITAL IS INTEGER RANGE 0 TO 9;</p><p> SUBTYPE T_SHORT IS INTEGER RANGE 0 TO 65535;</p><p> TYPE T_CLOCK_TIME IS ARRAY (5 DOWNTO 0) OF T_DIGIT
15、AL;</p><p> TYPE T_DISPLAY IS ARRAY (5 DOWNTO 0) OF T_DIGITAL;</p><p> END PACKAGE P_ALARM;</p><p> 2)鬧鐘控制器外部端口(程序及圖):</p><p> LIBRARY IEEE;</p><p> U
16、SE IEEE.STD_LOGIC_1164.ALL;</p><p> USE WORK.P_ALARM.ALL;</p><p> ENTITY CONTROL IS</p><p> PORT ( KEY: IN STD_LOGIC;</p><p> ALARM_BUTTON:IN STD_LOGIC;</p>
17、<p> TIME_BUTTON:IN STD_LOGIC;</p><p> CLK:IN STD_LOGIC;</p><p> RESET:IN STD_LOGIC;</p><p> LOAD_NEW_A:OUT STD_LOGIC;</p><p> LOAD_NEW_C:OUT STD_LOGIC;</p
18、><p> SHOW_NEW_TIME:OUT STD_LOGIC;</p><p> SHOW_A:OUT STD_LOGIC);</p><p> END ENTITY CONTROL;</p><p> ARCHITECTURE BEHAVE OF CONTROL IS</p><p> TYPE T_ST
19、ATE IS(S0,S1,S2,S3,S4) ;</p><p> CONSTANT KEY_TIMEOUT:T_SHORT:=500;</p><p> CONSTANT SHOW_ALARM_TIMEOUT:T_SHORT:=500;</p><p> SIGNAL CURR_STATE:T_STATE;</p><p> SIG
20、NAL NEXT_STATE:T_STATE;</p><p> SIGNAL COUNTER_K:T_SHORT;</p><p> SIGNAL ENABLE_COUNT_K:STD_LOGIC;</p><p> SIGNAL COUNT_K_END:STD_LOGIC ;</p><p> SIGNAL COUNTER_A:T
21、_SHORT;</p><p> SIGNAL ENABLE_COUNT_A:STD_LOGIC ;</p><p> SIGNAL COUNT_A_END:STD_LOGIC;</p><p><b> BEGIN</b></p><p> PROCESS(CLK,RESET) IS</p>&l
22、t;p><b> BEGIN</b></p><p> IF RESET ='1' THEN</p><p> CURR_STATE<= S0;</p><p> ELSIF RISING_EDGE(CLK) THEN</p><p> CURR_STATE<= NEXT_ST
23、ATE;</p><p><b> END IF;</b></p><p> END PROCESS;</p><p> PROCESS (KEY,ALARM_BUTTON,TIME_BUTTON,CURR_STATE,</p><p> COUNT_A_END,COUNT_K_END )</p>
24、<p><b> BEGIN</b></p><p> NEXT_STATE<=CURR_STATE;</p><p> LOAD_NEW_A<='0';</p><p> LOAD_NEW_C<='0';</p><p> SHOW_A <=&
25、#39;0';</p><p> SHOW_NEW_TIME<='0';</p><p> ENABLE_COUNT_K<='0';</p><p> ENABLE_COUNT_A <='0';</p><p> CASE CURR_STATE IS</p
26、><p> WHEN S0=>IF (KEY='0') THEN</p><p> NEXT_STATE<= S1;</p><p> SHOW_NEW_TIME<='1';</p><p> ELSIF (ALARM_BUTTON='1') THEN</p>
27、<p> NEXT_STATE<= S4;</p><p> SHOW_A<='1';</p><p><b> ELSE</b></p><p> NEXT_STATE<= S0;</p><p><b> END IF;</b></p
28、><p> WHEN S1=>IF(KEY='1') THEN</p><p> NEXT_STATE<= S1;</p><p> ELSIF (ALARM_BUTTON ='1') THEN</p><p> NEXT_STATE<= S2;</p><p>
29、 LOAD_NEW_A<='1';</p><p> ELSIF (TIME_BUTTON ='1') THEN</p><p> NEXT_STATE<= S3;</p><p> LOAD_NEW_C <='1';</p><p><b> ELSE<
30、;/b></p><p> IF (COUNT_K_END='1') THEN</p><p> NEXT_STATE<= S0;</p><p><b> ELSE</b></p><p> NEXT_STATE<= S1;</p><p><b&
31、gt; END IF ;</b></p><p> ENABLE_COUNT_K<='1';</p><p><b> END IF ;</b></p><p> SHOW_NEW_TIME<='1';</p><p> WHEN S2=>IF (A
32、LARM_BUTTON ='1') THEN</p><p> NEXT_STATE<=S2;</p><p> LOAD_NEW_A <='1';</p><p><b> ELSE</b></p><p> NEXT_STATE<= S0;</p>
33、<p><b> END IF ;</b></p><p> WHEN S3 =>IF (TIME_BUTTON ='1') THEN</p><p> NEXT_STATE<=S3;</p><p> LOAD_NEW_C<='1';</p><p&g
34、t;<b> ELSE</b></p><p> NEXT_STATE<= S0;</p><p><b> END IF;</b></p><p> WHEN S4=>IF(KEY='1') THEN</p><p> NEXT_STATE<= S1;&
35、lt;/p><p><b> ELSE</b></p><p> NEXT_STATE<=S4;</p><p> IF (COUNT_A_END ='1') THEN</p><p> NEXT_STATE<= S0;</p><p><b> ELS
36、E</b></p><p> NEXT_STATE<= S4;</p><p> SHOW_A<='1';</p><p><b> END IF ;</b></p><p> ENABLE_COUNT_A <='1';</p><
37、p><b> END IF;</b></p><p> WHEN OTHERS=>NULL;</p><p><b> END CASE;</b></p><p> END PROCESS;</p><p> COUNT_KEY:PROCESS(ENABLE_COUNT_K,C
38、LK) IS</p><p><b> BEGIN</b></p><p> IF (ENABLE_COUNT_K ='0') THEN</p><p> COUNTER_K<=0;</p><p> COUNT_K_END<='0';</p><p
39、> ELSIF (RISING_EDGE(CLK)) THEN</p><p> IF (COUNTER_K >=KEY_TIMEOUT) THEN</p><p> COUNT_K_END<='1';</p><p><b> ELSE</b></p><p> COUNTE
40、R_K<=COUNTER_K + 1;</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> COUNT_ALARM:PROCESS(ENABLE_COUNT_A,CLK) IS
41、</p><p><b> BEGIN</b></p><p> IF (ENABLE_COUNT_A ='0') THEN</p><p> COUNTER_A<=0;</p><p> COUNT_A_END<='0';</p><p>
42、ELSIF RISING_EDGE(CLK) THEN</p><p> IF( COUNTER_A>=SHOW_ALARM_TIMEOUT) THEN</p><p> COUNT_A_END<='1';</p><p><b> ELSE</b></p><p> COUNTER_
43、A<= COUNTER_A + 1;</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> END ARCHITECTURE BEHAVE;</p><p&g
44、t; 3)預(yù)設(shè)寄存器(程序及圖):</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL ;</p><p> USE WORK.P_ALARM.ALL ;</p>&l
45、t;p> ENTITY KEYBUFFER IS</p><p> PORT (KEY:IN STD_LOGIC;</p><p> CLK:IN STD_LOGIC;</p><p> RESET:IN STD_LOGIC;</p><p> KEYNUM:OUT STD_LOGIC_VECTOR(3 DOWNTO 0 );
46、</p><p> NEW_TIME:OUT T_CLOCK_TIME);</p><p> END ENTITY KEYBUFFER;</p><p> ARCHITECTURE BEHAVE OF KEYBUFFER IS</p><p> SIGNAL N_T:T_CLOCK_TIME;</p><p>
47、 SIGNAL CNT:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNAL TEMP:T_DIGITAL;</p><p><b> BEGIN</b></p><p> PROCESS (CLK) IS</p><p><b> BEGIN</b>
48、</p><p> IF (CLK'EVENT AND CLK = '1') THEN</p><p> IF CNT =9 THEN</p><p> CNT <= "0000" ;</p><p><b> ELSE</b></p><p&
49、gt; CNT<= CNT+'1';</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> TEMP<= CONV_INTEGER(CNT);</p><p> KEYNUM <= CNT;&
50、lt;/p><p> END PROCESS;</p><p> SHIFT:PROCESS(RESET,KEY) IS</p><p><b> BEGIN</b></p><p> IF (RESET ='1') THEN</p><p> N_T(5)<= 0;&
51、lt;/p><p> N_T(4)<= 0;</p><p> N_T(3)<= 0;</p><p> N_T(2)<= 0;</p><p> N_T(1)<= 0;</p><p> N_T(0)<= 0;</p><p> ELSIF (KEY
52、9;EVENT AND KEY='1') THEN</p><p> FOR I IN 5 DOWNTO 1 LOOP</p><p> N_T(I)<= N_T(I-1);</p><p><b> END LOOP;</b></p><p> N_T(0)<= TEMP;</
53、p><p><b> END IF;</b></p><p> END PROCESS;</p><p> NEW_TIME<= N_T;</p><p> END ARCHITECTURE BEHAVE;</p><p> 4)鬧鐘寄存器(程序及圖):</p><
54、p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE WORK.P_ALARM.ALL;</p><p> ENTITY REG IS</p><p> PORT (NEW_ALARM_TIME:IN T_CLOCK_TIME;</p>
55、;<p> LOAD_NEW_A:IN STD_LOGIC;</p><p> CLK:IN STD_LOGIC;</p><p> RESET:IN STD_LOGIC;</p><p> ALARM_TIME:OUT T_CLOCK_TIME);</p><p> END ENTITY REG;</p>
56、<p> ARCHITECTURE BEHAVE OF REG IS</p><p><b> BEGIN</b></p><p> PROCESS (CLK,RESET) IS</p><p><b> BEGIN</b></p><p> IF RESET='1&
57、#39; THEN</p><p> ALARM_TIME(0)<=0;</p><p> ALARM_TIME(1)<= 0;</p><p> ALARM_TIME(2)<= 0;</p><p> ALARM_TIME(3)<= 0;</p><p> ALARM_TIME(4)
58、<= 0;</p><p> ALARM_TIME(5)<= 0;</p><p><b> ELSE</b></p><p> IF RISING_EDGE(CLK) THEN</p><p> IF LOAD_NEW_A ='1' THEN</p><p>
59、 ALARM_TIME<= NEW_ALARM_TIME;</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</
60、p><p> END ARCHITECTURE BEHAVE;</p><p> 5)分頻器(程序及圖):</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE WORK.P_ALARM.ALL;</p>
61、<p> ENTITY DIVIDER IS</p><p> PORT(CLK_IN: IN STD_LOGIC;</p><p> RESET: IN STD_LOGIC;</p><p> CLK_OUT: OUT STD_LOGIC);</p><p> END ENTITY DIVIDER;</p>
62、<p> ARCHITECTURE BEHAVE OF DIVIDER IS</p><p> CONSTANT DIVIDE_PERIOD: T_SHORT:=6000;</p><p><b> BEGIN</b></p><p> PROCESS(CLK_IN,RESET) IS</p><p>
63、; VARIABLE CNT: T_SHORT;</p><p><b> BEGIN</b></p><p> IF (RESET='1') THEN</p><p><b> CNT:=0;</b></p><p> CLK_OUT<='0';&l
64、t;/p><p> ELSIF RISING_EDGE(CLK_IN) THEN</p><p> IF (CNT<=(DIVIDE_PERIOD/2)) THEN</p><p> CLK_OUT<='1';</p><p> CNT:=CNT+1;</p><p> ELSIF (
65、CNT<(DIVIDE_PERIOD-1)) THEN</p><p> CLK_OUT<='0';</p><p> CNT:=CNT+1;</p><p><b> ELSE</b></p><p><b> CNT:=0;</b></p>&l
66、t;p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> END ARCHITECTURE BEHAVE;</p><p> 6)時(shí)間計(jì)數(shù)器(程序及圖):</p><p
67、> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE WORK.P_ALARM.ALL;</p><p> ENTITY COUNTER IS</p><p> PORT (NEW_CURRENT_TIME:IN T_CLOCK_TIME;<
68、/p><p> LOAD_NEW_C,CLK,RESET:IN STD_LOGIC;</p><p> CURRENT_TIME:OUT T_CLOCK_TIME );</p><p> END ENTITY COUNTER;</p><p> ARCHITECTURE BEHAVE OF COUNTER IS</p>&l
69、t;p> SIGNAL I_CURRENT_TIME:T_CLOCK_TIME;</p><p><b> BEGIN</b></p><p> PROCESS(CLK,RESET,LOAD_NEW_C) IS</p><p> VARIABLE C_T:T_CLOCK_TIME;</p><p><
70、b> BEGIN</b></p><p> IF RISING_EDGE(CLK) THEN</p><p> IF RESET ='1' THEN</p><p> I_CURRENT_TIME(5)<= 0;</p><p> I_CURRENT_TIME(4)<= 0;</p
71、><p> I_CURRENT_TIME(3)<= 0;</p><p> I_CURRENT_TIME(2)<= 0;</p><p> I_CURRENT_TIME(1)<= 0;</p><p> I_CURRENT_TIME(0)<= 0;</p><p> ELSIF LOAD_
72、NEW_C ='1' THEN</p><p> I_CURRENT_TIME<= NEW_CURRENT_TIME;</p><p><b> ELSE</b></p><p> C_T:= I_CURRENT_TIME;</p><p> IF C_T(0)<9 THEN</
73、p><p> C_T(0):= C_T(0)+1;</p><p><b> ELSE</b></p><p> C_T(0):= 0;</p><p> IF C_T(1)<5 THEN</p><p> C_T(1):= C_T(1)+1 ;</p><p>
74、;<b> ELSE</b></p><p> C_T (1):= 0;</p><p> IF C_T(2)<9 THEN</p><p> C_T(2):=C_T(2)+1;</p><p><b> ELSE</b></p><p> C_T(2):=
75、 0 ;</p><p> IF C_T(3)<5 THEN</p><p> C_T(3):= C_T(3)-1;</p><p><b> ELSE</b></p><p> C_T(3):=0;</p><p> IF C_T(5)<2 THEN</p>
76、<p> IF C_T(4)<9 THEN</p><p> C_T(4):= C_T(4)+1 ;</p><p><b> ELSE</b></p><p> C_T(4):= 0 ;</p><p> C_T(5):=C_T(5)+1;</p><p><b&
77、gt; END IF;</b></p><p><b> ELSE</b></p><p> IF C_T(4)<3 THEN</p><p> C_T(4):=C_T(4)+1;</p><p><b> ELSE</b></p><p> C
78、_T(4):= 0;</p><p> C_T(5):=0;</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b>
79、 END IF;</b></p><p><b> END IF;</b></p><p> I_CURRENT_TIME<=C_T;</p><p><b> END IF;</b></p><p> I_CURRENT_TIME<=C_T;</p>
80、<p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> CURRENT_TIME<=I_CURRENT_TIME;</p><p> END ARCHITECTURE BEH
81、AVE;</p><p> 7)顯示驅(qū)動(dòng)(程序及圖):</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_ARITH.ALL;</p><p> USE IEEE.STD_LOGIC
82、_UNSIGNED.ALL;</p><p> USE WORK.P_ALARM.ALL;</p><p> ENTITY DRIVER IS</p><p> PORT (KEYNUM:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> CLK:IN STD_LOGIC;</p><
83、;p> ALARM_TIME:IN T_CLOCK_TIME ;</p><p> CURRENT_TIME:IN T_CLOCK_TIME;</p><p> NEW_TIME:IN T_CLOCK_TIME;</p><p> SHOW_NEW_TIME:IN STD_LOGIC;</p><p> SHOW_A:IN S
84、TD_LOGIC;</p><p> SOUND_ALARM:OUT STD_LOGIC;</p><p> LEDW:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p> SEG7:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));</p><p> END ENTITY DRIVE
85、R;</p><p> ARCHITECTURE BEHAVE OF DRIVER IS</p><p> SIGNAL DISPLAY_TIME:T_CLOCK_TIME;</p><p> SIGNAL TEMP:INTEGER RANGE 0 TO 9;</p><p> SIGNAL CNT:STD_LOGIC_VECTOR(
86、2 DOWNTO 0);</p><p><b> BEGIN</b></p><p> PROCESS (ALARM_TIME,CURRENT_TIME,SHOW_A,SHOW_NEW_TIME) IS</p><p><b> BEGIN</b></p><p> SOUND_LP:FO
87、R I IN ALARM_TIME'RANGE LOOP</p><p> IF NOT(ALARM_TIME(I)= CURRENT_TIME(I)) THEN</p><p> SOUND_ALARM <='0';</p><p><b> ELSE</b></p><p> S
88、OUND_ALARM <='1';</p><p><b> END IF;</b></p><p> END LOOP SOUND_LP;</p><p> IF SHOW_NEW_TIME ='1' THEN</p><p> DISPLAY_TIME<=NEW_T
89、IME;</p><p> ELSIF SHOW_A='1' THEN</p><p> DISPLAY_TIME<=ALARM_TIME;</p><p> ELSIF SHOW_A='0' THEN</p><p> DISPLAY_TIME<=CURRENT_TIME;</p&g
90、t;<p><b> END IF;</b></p><p> END PROCESS;</p><p> PROCESS (CLK) IS</p><p><b> BEGIN</b></p><p> IF CLK'EVENT AND CLK ='1
91、9; THEN</p><p> IF CNT="111" THEN</p><p> CNT<="000";</p><p><b> ELSE</b></p><p> CNT<= CNT+'1';</p><p>&
92、lt;b> END IF ;</b></p><p><b> END IF; </b></p><p> END PROCESS;</p><p> LEDW<= CNT;</p><p> PROCESS(CNT)</p><p><b> BEG
93、IN</b></p><p> CASE CNT IS</p><p> WHEN "000"=>TEMP<=DISPLAY_TIME(0);</p><p> WHEN "001"=>TEMP<=DISPLAY_TIME(1);</p><p> WHEN
94、"010"=>TEMP<=DISPLAY_TIME(2);</p><p> WHEN "011"=>TEMP<=DISPLAY_TIME(3);</p><p> WHEN "100"=>TEMP<=DISPLAY_TIME(4);</p><p> WHEN &
95、quot;101"=>TEMP<=DISPLAY_TIME(5);</p><p> WHEN "111"=>TEMP<=CONV_INTEGER (KEYNUM);</p><p> WHEN OTHERS =>TEMP<= 0;</p><p><b> END CASE;<
96、/b></p><p> CASE TEMP IS</p><p> WHEN 0=>SEG7<="00111111";</p><p> WHEN 1=>SEG7<="00000110";</p><p> WHEN 2=>SEG7<="01
97、011011";</p><p> WHEN 3=>SEG7<="01001111";</p><p> WHEN 4=>SEG7<="01100110";</p><p> WHEN 5=>SEG7<="01101101";</p><
98、;p> WHEN 6=>SEG7<="01111101";</p><p> WHEN 7=>SEG7<="00000111";</p><p> WHEN 8=>SEG7<="01111111";</p><p> WHEN 9=>SEG7<=
99、"01101111";</p><p> WHEN OTHERS=>SEG7<="00111111";</p><p><b> END CASE;</b></p><p> END PROCESS;</p><p> 9)鬧鐘系統(tǒng)頂層原理圖</p>
100、<p> 第5章 課程設(shè)計(jì)心得</p><p> 通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計(jì)---數(shù)字時(shí)鐘(鬧鐘)
- eda鬧鐘課程設(shè)計(jì)
- eda技術(shù)課程設(shè)計(jì)--鬧鐘系統(tǒng)
- eda技術(shù)課程設(shè)計(jì)---鬧鐘系統(tǒng)設(shè)計(jì)
- eda技術(shù)課程設(shè)計(jì)鬧鐘系統(tǒng)設(shè)計(jì)
- eda課程設(shè)計(jì)-- eda與數(shù)字系統(tǒng)課程設(shè)計(jì)
- 《eda》課程設(shè)計(jì)之手表鬧鐘設(shè)計(jì)
- eda課程設(shè)計(jì)--eda數(shù)字系統(tǒng)綜合設(shè)計(jì)與實(shí)踐
- eda課程設(shè)計(jì)--eda數(shù)字系統(tǒng)綜合設(shè)計(jì)與實(shí)踐
- 數(shù)字鬧鐘課程設(shè)計(jì)報(bào)告
- eda課程設(shè)計(jì)---數(shù)字跑表
- eda數(shù)字時(shí)鐘課程設(shè)計(jì)
- eda數(shù)字時(shí)鐘課程設(shè)計(jì)
- eda數(shù)字秒表課程設(shè)計(jì)
- eda數(shù)字秒課程設(shè)計(jì)
- eda課程設(shè)計(jì)---數(shù)字秒表
- eda課程設(shè)計(jì)--數(shù)字秒表設(shè)計(jì)
- eda課程設(shè)計(jì)——數(shù)字時(shí)鐘設(shè)計(jì)
- eda課程設(shè)計(jì)--數(shù)字秒表設(shè)計(jì)
- eda數(shù)字鐘課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論