版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計</p><p> 2012年 3 月2日</p><p><b> 課程設(shè)計任務(wù)書</b></p><p> 課程 EDA技術(shù)課程設(shè)計</p><p> 題目 鬧鐘系統(tǒng)的設(shè)計</p><p> 專業(yè) 電子信息工程 姓名
2、 學(xué)號 </p><p> 主要內(nèi)容、基本要求、主要參考資料等</p><p><b> 主要內(nèi)容:</b></p><p> 設(shè)計并制作一個帶鬧鐘功能的24小時計時器。它包括以下幾個組成部分:</p><p> 1、顯示屏,由4 個七段數(shù)碼管組成,用于顯示當前時間(時:分)或設(shè)置的鬧鐘時間;<
3、;/p><p> 2、數(shù)字鍵,實現(xiàn)‘0’—‘9’的輸入,用于輸入新的時間或新的鬧鐘時間;</p><p> 3、TIME(時間)鍵,用于確定新的時間設(shè)置;</p><p> 4、ALARM(鬧鐘)鍵,用于確定新的鬧鐘時間設(shè)置,或顯示已設(shè)置的鬧鐘時間;</p><p> 5、揚聲器,在當前時鐘時間與鬧鐘時間相同時,發(fā)出蜂鳴聲</p&g
4、t;<p><b> 基本要求:</b></p><p> 1、計時功能:這是本計時器設(shè)計的基本功能,每隔一分鐘計時一次,并在顯示屏上顯示當前時間。</p><p> 2、鬧鐘功能:如果當前時間與設(shè)置的鬧鐘時間相同,則揚聲器發(fā)出蜂鳴聲。</p><p> 3、設(shè)置新的計時器時間:用戶用數(shù)字鍵輸入新的時間,然后按"
5、TIME"鍵確認。在輸入過程中,輸入數(shù)字在顯示屏上從右到左依次顯示。例如,用戶要設(shè)置新的時間12:34,則按順序輸入“1”,“2”,“3”,“4”,與之對應(yīng),顯示屏上依次顯示的信息為:“1”,“12”,“123”,“1234"。如果用戶在輸入任意幾個數(shù)字后較長時間內(nèi),例如5 s,沒有按任何鍵,則計時器恢復(fù)到正常的計時顯示狀態(tài)。</p><p><b> 主要參考資料:</b&
6、gt;</p><p> [1] 潘松著.EDA技術(shù)實用教程(第二版). 北京:科學(xué)出版社,2005.</p><p> [2] 康華光主編.電子技術(shù)基礎(chǔ) 模擬部分. 北京:高教出版社,2006.</p><p> [3] 閻石主編.數(shù)字電子技術(shù)基礎(chǔ). 北京:高教出版社,2003.</p><p> 完成期限 2012.3.11
7、 </p><p> 指導(dǎo)教師 </p><p> 專業(yè)負責人 </p><p> 2012年 3月7日</p><p><b> 一、總體設(shè)計思想</b></p><p><b> 1.基本
8、原理</b></p><p> 數(shù)字鬧鐘電路的基本結(jié)構(gòu)由兩個60進制計數(shù)器和一個24進制計數(shù)器組成,分別對秒、分、小時進行計時,當計時到23時59分59秒時,再來一個計數(shù)脈沖,則計數(shù)器清零,重新開始計時。秒計數(shù)器的計數(shù)時鐘CLK為1Hz的標準信號。當數(shù)字鬧鐘處于計時狀態(tài)時,秒計數(shù)器的進位輸出信號作為分鐘計數(shù)器的計數(shù)信號,分鐘計數(shù)器的進位輸出信號又作為小時計數(shù)器的計數(shù)信號時、分、秒的計時結(jié)果通過6個數(shù)
9、碼管來動態(tài)顯示。因此,通過模式選擇信號KEY1、KEY2控制數(shù)字鐘的工作狀態(tài),即控制數(shù)字鐘,使其分別工作于正常計時,調(diào)整分、時和設(shè)定鬧鐘分、時5個狀態(tài)。當數(shù)字鬧鐘處于計時狀態(tài)時,3個計數(shù)器允許計數(shù),且秒、分、時計數(shù)器的計數(shù)時鐘信號分別為CLK,秒的進位, 分的進位;當數(shù)字鬧鐘處于調(diào)整時間狀態(tài)時,被調(diào)的分或時會一秒一秒地增加;當數(shù)字鐘處于鬧鐘定時狀態(tài)時,可以設(shè)定小時和分;當計時到所設(shè)定的時刻時,驅(qū)動揚聲器,持續(xù)1分鐘。</p>
10、<p><b> 2.設(shè)計框圖</b></p><p> 二、設(shè)計步驟和調(diào)試過程</p><p><b> 1、總體設(shè)計電路</b></p><p> (1) CLK為外部時鐘信號,RESET為復(fù)位信號. (2) 當KEY為高電平(KEY= '1')時,表示用戶按下數(shù)字鍵(&q
11、uot;0"~"9"). (3) 當ALARM_BUTTON為高電平時,表示用戶按下"ALARM"鍵. (4) 當TIME_BUTTON為高電平時,表示用戶按下"TIME"鍵. (5) 當LOAD_NEW_A為高電平時,控制(鬧鐘時間寄存器)加載新的鬧鐘時間值. (6) 當LOAD_NEW_C為高電平時,控制(時鐘計數(shù)器)設(shè)置新的時間值
12、. (7) 當SHOW_NEW_TIME為高電平時,控制(七段數(shù)碼顯示電路)顯示新的時間值,即用戶通過數(shù)字鍵輸入的時間;否則,當SHOW_NEW_TIME為低電平時,根據(jù)SHOW_A信號的值控制顯示當前時間或鬧鐘時間. 根據(jù)設(shè)計要求及端口設(shè)置,需要五個狀態(tài)來實現(xiàn): S0:表示電路初態(tài)即正常時鐘計數(shù)狀態(tài),完成前面設(shè)計功能 (1) 的工作. S1:接收鍵盤輸入狀態(tài).在狀態(tài)S0時用戶按下數(shù)字鍵后進入此狀態(tài).在此
13、狀態(tài)下,顯示屏上顯示的是用戶鍵入的數(shù)字. S2:設(shè)置新的鬧</p><p> 模塊設(shè)計和相應(yīng)模塊程序</p><p><b> (1)頂層文件:</b></p><p> LIBRARY IEEE; </p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><
14、;p> ENTITY clock IS </p><p> PORT ( CLK12MHZ : IN STD_LOGIC; </p><p> CLK8HZ : IN STD_LOGIC; </p><p> SPKOUT : OUT STD_LOGIC; </p><p> CLK
15、: IN STD_LOGIC;</p><p> KEY1 : IN STD_LOGIC;</p><p> KEY2 : IN STD_LOGIC_VECTOR(1 DOWNTO 0);</p><p> H1,H2,M1,M2,S1,S2: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><
16、p><b> END;</b></p><p> ARCHITECTURE one OF clock IS</p><p> COMPONENT shizhong</p><p> PORT (clk : in std_logic;</p><p> md1 : in std_logic;&l
17、t;/p><p> md2 : in std_logic_vector(1 downto 0);</p><p> clken : out std_logic;</p><p> h1,h2,m1,m2,s1,s2: out std_logic_vector(3 downto 0));</p><p> END COMPONENT
18、;</p><p> COMPONENT NoteTabs</p><p> PORT ( clk : IN STD_LOGIC;</p><p> ToneIndex : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );</p><p> END COMPONENT;</p><p
19、> COMPONENT ToneTaba</p><p> PORT ( Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0) ;</p><p> Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO 0); </p><p> en : in std_logic);</p>
20、<p> END COMPONENT;</p><p> COMPONENT Speakera</p><p> PORT ( clk : IN STD_LOGIC;</p><p> Tone : IN STD_LOGIC_VECTOR (10 DOWNTO 0);</p><p> SpkS : OUT STD_
21、LOGIC );</p><p> END COMPONENT;</p><p> SIGNAL Tone :STD_LOGIC_VECTOR (10 DOWNTO 0);</p><p> SIGNAL ToneIndex :STD_LOGIC_VECTOR (3 DOWNTO 0);</p><p> SIGNAL
22、 clken :STD_LOGIC;</p><p> SIGNAL en :STD_LOGIC;</p><p><b> BEGIN</b></p><p> u1 : Shizhong PORT MAP (clk=>CLK,md1=>KEY1,md2=>KEY2,clken=>en,
23、</p><p> h1=>h1,h2=>h2,m1=>m1,m2=>m2,s1=>s1,s2=>s2);</p><p> u2 : NoteTabs PORT MAP (clk=>CLK8HZ, ToneIndex=>ToneIndex);</p><p> u3 : ToneTaba PORT MAP (I
24、ndex=>ToneIndex,Tone=>Tone,en=>en);</p><p> u4 : Speakera PORT MAP (clk=>CLK12MHZ,Tone=>Tone, SpkS=>SPKOUT );</p><p><b> END;</b></p><p> ?。?)時鐘控制模塊:
25、</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity shizhong is</p><p> port( clk: i
26、n std_logic;</p><p> md1:in std_logic;</p><p> md2:in std_logic_vector(1 downto 0);</p><p> clken:out std_logic;</p><p> h1,h2,m1,m2,s1,s2:out std_logic_vector(3 do
27、wnto 0));</p><p> end shizhong;</p><p> architecture one of shizhong is</p><p> signal hou1:std_logic_vector(3 downto 0);</p><p> signal hou2:std_logic_vector(3 dow
28、nto 0);</p><p> signal min1:std_logic_vector(3 downto 0);</p><p> signal min2:std_logic_vector(3 downto 0);</p><p> signal seth1:std_logic_vector(3 downto 0);</p><p>
29、; signal seth2:std_logic_vector(3 downto 0);</p><p> signal setm1:std_logic_vector(3 downto 0);</p><p> signal setm2:std_logic_vector(3 downto 0);</p><p> signal sec1:std_logic_
30、vector(3 downto 0);</p><p> signal sec2:std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> -----------------------------------------------小時十位</p><
31、p> h110:process(clk,hou2,min1,min2,sec1,sec2,md1,md2)</p><p><b> begin</b></p><p> if clk'event and clk='1' then</p><p> if (hou1="0010" and
32、 hou2="0011")and(min1="0101" and min2="1001") </p><p> and (sec1="0101" and sec2="1001") then</p><p> hou1<="0000";</p>
33、;<p> elsif hou1="0010"and hou2="0011"and md1='0' </p><p> and md2="01" then--當時間為23點且處于校時狀態(tài)時</p><p> hou1<="0000";</p><p&
34、gt; elsif (hou2="1001"and(min1="0101" and min2="1001") </p><p> and (sec1="0101" and sec2="1001"))or (hou2="1001"and md1='0' and md2=&quo
35、t;01") </p><p><b> then</b></p><p> hou1<=hou1+1;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> en
36、d process h110;</p><p> -----------------------------------------------小時個位</p><p> h220:process(clk,min1,min2,sec1,sec2,md1,md2,hou1)</p><p><b> begin</b></p>
37、<p> if clk'event and clk='1' then</p><p> if (hou1="0010" and hou2="0011")and(min1="0101" and min2="1001") </p><p> and (sec1="
38、0101" and sec2="1001") then</p><p> hou2<="0000";</p><p> elsif hou2="1001"and(min1="0101" and min2="1001") </p><p> and
39、 (sec1="0101" and sec2="1001") then</p><p> hou2<="0000";</p><p> elsif (hou2="1001"and md1='0' and md2="01")</p><p&
40、gt; or (hou1="0010"and hou2="0011") then</p><p> hou2<="0000";--md<='1';--</p><p> elsif ((min1="0101" and min2="1001") and (se
41、c1="0101" and sec2="1001"))</p><p> or (md1='0' and md2="01") then</p><p> hou2<=hou2+1;--speak<=clk;--</p><p><b> end if;</b
42、></p><p><b> end if;</b></p><p> end process h220;</p><p> -----------------------------------------------分鐘十位 </p><p> m110:process(clk,min2,sec1,s
43、ec2,md1,md2)</p><p><b> begin</b></p><p> if clk'event and clk='1' then</p><p> if (min1="0101" and min2="1001") and (sec1="0101&
44、quot; and sec2="1001") then </p><p> min1<="0000";</p><p> elsif min1="0101"and min2="1001"and (md1='0' and md2="00")then</p>
45、<p> min1<="0000";</p><p> elsif (min2="1001"and (sec1="0101" and sec2="1001")) </p><p> or (min2="1001"and md1='0' and md2
46、="00")then</p><p> min1<=min1+1;</p><p><b> end if;</b></p><p> end if;--end if;</p><p> end process m110;</p><p> ----------
47、------------------------------------分鐘個位 </p><p> m220:process(clk,sec1,sec2,md1,md2)</p><p><b> begin</b></p><p> if clk'event and clk='1' then</p>
48、;<p> if min2="1001"and (sec1="0101" and sec2="1001")then</p><p> min2<="0000";</p><p> elsif min2="1001"and (md1='0' and m
49、d2="00")then</p><p> min2<="0000";</p><p> else if (sec1="0101" and sec2="1001") or(md1='0' and md2="00")then</p><p&
50、gt; min2<=min2+1;</p><p><b> end if;</b></p><p> end if;end if;</p><p> end process m220;</p><p> ---------------------------------------------秒十位
51、</p><p> s110:process(clk)</p><p><b> begin</b></p><p> if clk'event and clk='1' then</p><p> if (sec1="0101" and sec2="1001&
52、quot;)then</p><p> sec1<="0000";</p><p> else if sec2="1001"then</p><p> sec1<=sec1+1;</p><p><b> end if;</b></p><p
53、> end if;end if;</p><p> end process s110;</p><p> --------------------------------------------秒個位 </p><p> s220:process(clk)</p><p><b> begin</b>&
54、lt;/p><p> if clk'event and clk='1' then</p><p> if sec2="1001" then</p><p> sec2<="0000";</p><p> else sec2<=sec2+1;</p>
55、<p><b> end if;</b></p><p><b> end if;</b></p><p> end process s220;</p><p> -------------------------------------------時間設(shè)置小時部分 </p><p&
56、gt; sethour1:process(clk,seth2)</p><p><b> begin</b></p><p> if clk'event and clk='1' then</p><p> if seth1="0010"and seth2="0011" th
57、en</p><p> seth1<="0000";</p><p> elsif seth2="1001" then</p><p> seth1<=seth1+1;</p><p><b> end if;</b></p><p&
58、gt;<b> end if;</b></p><p> end process sethour1;</p><p> sethour2:process(clk,md1,md2,seth1)</p><p><b> begin</b></p><p> if clk'event
59、and clk='1' then</p><p> if (seth1="0010"and seth2="0011")or seth2="1001"then</p><p> seth2<="0000";</p><p> elsif md1='1
60、39; and md2="00" then</p><p> seth2<=seth2+1;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process sethour2;</p
61、><p> -------------------------------------------時間設(shè)置分鐘部分 </p><p> setmin1:process(clk,setm2)</p><p><b> begin</b></p><p> if clk'event and clk='1
62、' then</p><p> if setm1="0101"and setm2="1001"then</p><p> setm1<="0000";</p><p> elsif setm2="1001"then</p><p> setm
63、1<=setm1+1;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process setmin1;</p><p> setmin2:process(clk,md1,md2)</p>&l
64、t;p><b> begin</b></p><p> if clk'event and clk='1'then</p><p> if setm2="1001"then</p><p> setm2<="0000";</p><p>
65、 elsif md1='1' and md2="01"then</p><p> setm2<=setm2+1;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end proce
66、ss setmin2;</p><p> --------------------------------------------鬧鈴</p><p> speaker:process(clk,hou1,hou2,min1,min2)</p><p><b> begin</b></p><p> if clk&
67、#39;event and clk='1'then</p><p> if seth1=hou1 and seth2=hou2 and setm1=min1 and setm2=min2 then</p><p> clken<='1';</p><p> else clken<='0';</p
68、><p><b> end if;</b></p><p><b> end if;</b></p><p> end process speaker;</p><p> disp:process(md1,hou1,hou2,min1,min2,sec1,sec2,seth1,seth2,set
69、m1,setm2)</p><p><b> begin</b></p><p> if md1='0' then---------------計時時間顯示和設(shè)置模式</p><p> h1<=hou1;h2<=hou2;</p><p> m1<=min1;m2<
70、=min2;</p><p> s1<=sec1;s2<=sec2;</p><p> else -----------鬧鈴時間現(xiàn)實和設(shè)置模式</p><p> h1<=seth1;h2<=seth2;</p><p> m1<=setm1;m2<=setm2;<
71、;/p><p> s1<="1111";s2<="1111";</p><p><b> end if;</b></p><p> end process disp;</p><p><b> end one;</b></p>
72、<p> (3)樂曲演奏模塊:</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY Speakera IS</p><
73、p> PORT ( clk : IN STD_LOGIC;</p><p> Tone : IN STD_LOGIC_VECTOR (10 DOWNTO 0);</p><p> SpkS : OUT STD_LOGIC );</p><p><b> END;</b></p><p> ARCH
74、ITECTURE one OF Speakera IS</p><p> SIGNAL PreCLK, FullSpkS : STD_LOGIC;</p><p><b> BEGIN</b></p><p> DivideCLK : PROCESS(clk)</p><p> VARIABLE Count4 :
75、 STD_LOGIC_VECTOR (3 DOWNTO 0) ;</p><p><b> BEGIN</b></p><p> PreCLK <= '0'; -- 將CLK進行16分頻,PreCLK為CLK的16分頻</p><p> IF Count4>11 THEN PreCLK <= '
76、;1'; Count4 := "0000";</p><p> ELSIF clk'EVENT AND clk = '1' THEN Count4 := Count4 + 1; </p><p><b> END IF;</b></p><p> END PROCESS;&l
77、t;/p><p> GenSpkS : PROCESS(PreCLK, Tone)-- 11位可預(yù)置計數(shù)器 </p><p> VARIABLE Count11 : STD_LOGIC_VECTOR (10 DOWNTO 0);</p><p><b> BEGIN</b></p><p> IF PreCLK
78、39;EVENT AND PreCLK = '1' THEN</p><p> IF Count11 = 16#7FF# THEN Count11 := Tone ; FullSpkS <= '1'; </p><p> ELSE Count11 := Count11 + 1; FullSpkS <= '0'; END IF
79、;</p><p><b> END IF;</b></p><p> END PROCESS;</p><p> DelaySpkS : PROCESS(FullSpkS)--將輸出再2分頻,展寬脈沖,使揚聲器有足夠功率發(fā)音</p><p> VARIABLE Count2 : STD_LOGIC;</p
80、><p><b> BEGIN</b></p><p> IF FullSpkS'EVENT AND FullSpkS = '1' THEN Count2 := NOT Count2;</p><p> IF Count2 = '1' THEN SpkS <= '1';<
81、/p><p> ELSE SpkS <= '0'; </p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p><b> END;&l
82、t;/b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY NoteTabs IS</p><p> PORT (
83、clk : IN STD_LOGIC;</p><p> ToneIndex : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );</p><p><b> END;</b></p><p> ARCHITECTURE one OF NoteTabs IS</p><p> CO
84、MPONENT MUSIC --音符數(shù)據(jù)ROM</p><p> PORT(address : IN STD_LOGIC_VECTOR (7 DOWNTO 0);</p><p> inclock : IN STD_LOGIC ;</p><p> q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0));&l
85、t;/p><p> END COMPONENT;</p><p> SIGNAL Counter : STD_LOGIC_VECTOR (7 DOWNTO 0);</p><p><b> BEGIN</b></p><p> CNT8 : PROCESS(clk,Counter)</p><p
86、><b> BEGIN</b></p><p> IF Counter=138 THEN Counter <= "00000000";</p><p> ELSIF (clk'EVENT AND clk = '1') THEN Counter <= Counter+1; END IF;</p&
87、gt;<p> END PROCESS;</p><p> u1 : MUSIC PORT MAP(address=>Counter , q=>ToneIndex, inclock=>clk);</p><p><b> END;</b></p><p> LIBRARY IEEE;</p>
88、<p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> ENTITY ToneTaba IS</p><p> PORT ( Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0) ;</p><p> Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO
89、0);</p><p> en : IN STD_LOGIC);</p><p><b> END;</b></p><p> ARCHITECTURE one OF ToneTaba IS</p><p><b> BEGIN</b></p><p>
90、PROCESS(Index,en)</p><p><b> BEGIN</b></p><p> IF en='0' THEN Tone<="11111111111";--使能信號 </p><p><b> ELSE</b></p><p>
91、CASE Index IS -- 譯碼電路,查表方式,控制音調(diào)的預(yù)置數(shù) </p><p> WHEN "0000" => Tone<="11111111111" ; </p><p> WHEN "0001" => Tone<="01100000101" ; <
92、/p><p> WHEN "0010" => Tone<="01110010000" ; </p><p> WHEN "0011" => Tone<="10000001100" ; </p><p> WHEN "0101" => T
93、one<="10010101101" ; </p><p> WHEN "0110" => Tone<="10100001010" ; </p><p> WHEN "0111" => Tone<="10101011100" ; </p>&l
94、t;p> WHEN "1000" => Tone<="10110000010" ; </p><p> WHEN "1001" => Tone<="10111001000" ; </p><p> WHEN "1010" => Tone<=&q
95、uot;11000000110" ; </p><p> WHEN "1100" => Tone<="11001010110" ; </p><p> WHEN "1101" => Tone<="11010000100" ; </p><p> W
96、HEN "1111" => Tone<="11011000000" ; </p><p> WHEN OTHERS => NULL;</p><p><b> END CASE;</b></p><p><b> END IF; </b></p>
97、<p> END PROCESS;</p><p><b> END;</b></p><p> LIBRARY ieee;</p><p> USE ieee.std_logic_1164.all;</p><p> LIBRARY altera_mf;</p><p>
98、 USE altera_mf.altera_mf_components.all;</p><p> ENTITY music IS</p><p><b> PORT</b></p><p> ( address: IN STD_LOGIC_VECTOR (7 DOWNTO 0);</p><p> i
99、nclock: IN STD_LOGIC ;</p><p> q: OUT STD_LOGIC_VECTOR (3 DOWNTO 0));</p><p> END music;</p><p> ARCHITECTURE SYN OF music IS</p><p> SIGNAL sub_wire0: STD_LOG
100、IC_VECTOR (3 DOWNTO 0);</p><p> COMPONENT altsyncram</p><p> GENERIC (intended_device_family: STRING;</p><p> width_a: NATURAL;</p><p> widthad_a: NATURAL;<
101、;/p><p> numwords_a: NATURAL;</p><p> operation_mode: STRING;</p><p> outdata_reg_a: STRING;</p><p> address_aclr_a: STRING;</p><p> outdata_aclr
102、_a: STRING;</p><p> width_byteena_a: NATURAL;</p><p> init_file: STRING;</p><p> lpm_hint: STRING;</p><p> lpm_type: STRING);</p><p> PORT (
103、 clock0: IN STD_LOGIC ;</p><p> address_a: IN STD_LOGIC_VECTOR (7 DOWNTO 0);</p><p> q_a: OUT STD_LOGIC_VECTOR (3 DOWNTO 0));</p><p> END COMPONENT;</p><p><b
104、> BEGIN</b></p><p> q <= sub_wire0(3 DOWNTO 0);</p><p> altsyncram_component : altsyncram</p><p> GENERIC MAP (</p><p> intended_device_family =>
105、 "Cyclone",</p><p> width_a => 4,</p><p> widthad_a => 8,</p><p> numwords_a => 256,</p><p> operation_mode => "ROM",</p><
106、;p> outdata_reg_a => "UNREGISTERED",</p><p> address_aclr_a => "NONE",</p><p> outdata_aclr_a => "NONE",</p><p> width_byteena_a =>
107、1,</p><p> init_file => "data1.mif",</p><p> lpm_hint => "ENABLE_RUNTIME_MOD=YES, INSTANCE_NAME=rom2",</p><p> lpm_type => "altsyncram")<
108、;/p><p> PORT MAP ( clock0 => inclock,</p><p> address_a => address,</p><p> q_a => sub_wire0);</p><p><b> END SYN;</b></p><p> 3、仿真
109、及仿真結(jié)果分析</p><p> 本實驗是以KEY2、KEY1為控制整個鬧鐘的校時,校分,校鬧鐘時、分,分別將KEY2[1],KEY2[0],KEY1,送到實驗上的三個鍵,由這三個鍵來控制整個校時,分,鬧鐘時,校鬧鐘分的過程,加上分別連接的鍵叫A,B,C鍵,則當A=0,B=1,C=0時是對時鐘進行校時,時個位和時十位會以二十四進制循環(huán)自動增加。仿真波形:</p><p><b>
110、; 仿真圖1</b></p><p> 當A=0,B=0,C=0時是對時鐘進行校分,分個位和分十位會以六十進制循環(huán)增加,并且不對時進位。仿真波形:</p><p><b> 仿真圖2</b></p><p> 當A=0,B=1,C=1時是對鬧鐘進行校分,鬧鐘時個位和時十位會以二十四進制循環(huán)自動增加。仿真波形:</p&g
111、t;<p><b> 仿真圖3</b></p><p> 當A=0,B=0,C=1時是對鬧鐘進行校時,鬧鐘分個位和分十位會以六十進制循環(huán)增加,并且不對時進位。仿真波形:</p><p><b> 仿真圖4</b></p><p> 而當A=1,B=0,C=0或者A=1,B=1,C=0是正常的計時時間,
112、秒從零開始計時,每秒加一,當?shù)竭_五十九在來一個脈沖后,秒十位和秒個位清零,從零開始直到六十一直循環(huán),并且向分個位清零;分位的原理同秒的一樣;而時與秒,分的不同之處是,當時計數(shù)到二十三時清零并且不向任何位進位。仿真波形:</p><p><b> 仿真圖5</b></p><p> 另外當計數(shù)的時,分和鬧鐘所事先設(shè)置時、分相等時,歌曲會響起,作為鬧鐘并且維持一分鐘,
113、一分鐘歌曲自動停止。</p><p><b> 4、實驗調(diào)試結(jié)果</b></p><p> 為驗證所設(shè)計程序是否正確,將程序下載進行硬件測試。在QuartusⅡ開發(fā)環(huán)境中進行管腳鎖定,連接好數(shù)碼管驅(qū)動電路,然后將目標文件下載到器件中。最終可以看到時、分、秒正常顯示。引腳分配如下(選擇模式5)</p><p><b> 圖6<
114、;/b></p><p><b> 三、結(jié)論及心得體會</b></p><p> 這次課程設(shè)計業(yè)使我明白了自己還有很多很多的不足,在以后的學(xué)習(xí)中應(yīng)該多多的注意實踐知識的訓(xùn)練和積累,不斷的開拓自己的動手能力,不斷的訓(xùn)練自己的動手能力。這次課程設(shè)計讓我深深的明白了自己以后該做什么,該怎么去做。</p><p> 經(jīng)過一周的努力終于完成鬧
115、鐘系統(tǒng)的設(shè)計,鬧鐘系統(tǒng)是由七個部分組成,其中包括譯碼器、鍵盤緩沖器、分頻器、記數(shù)器、寄存器、顯示器、控制器</p><p> 由七個數(shù)碼管組成的顯示屏可以正常顯示時間,并且可以通過數(shù)字鍵重新設(shè)置鬧鐘時間,經(jīng)過仿真測試各個功能鍵工作正常,鬧鐘發(fā)出蜂鳴聲,達到了設(shè)計要求。</p><p> 在以后的學(xué)習(xí)中我會更加的努力,希望自己能有更好的表現(xiàn)和發(fā)展,在學(xué)習(xí)方法中也要有所改進,努力做好每一件
116、事。</p><p><b> 參考資料</b></p><p> [1] 潘松著.EDA技術(shù)實用教程(第二版). 北京:科學(xué)出版社,2005.</p><p> [2] 康華光主編.電子技術(shù)基礎(chǔ) 模擬部分. 北京:高教出版社,2006.</p><p> [3] 閻石主編.數(shù)字電子技術(shù)基礎(chǔ). 北京:高教出版社,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda技術(shù)課程設(shè)計---鬧鐘系統(tǒng)設(shè)計
- eda技術(shù)課程設(shè)計鬧鐘系統(tǒng)設(shè)計
- 數(shù)字鬧鐘系統(tǒng)eda課程設(shè)計
- eda鬧鐘課程設(shè)計
- eda技術(shù)課程設(shè)計報告
- eda課程設(shè)計---數(shù)字時鐘(鬧鐘)
- 矩陣鍵盤eda技術(shù)課程設(shè)計
- protel與eda技術(shù)課程設(shè)計
- 矩陣鍵盤eda技術(shù)課程設(shè)計
- 《eda》課程設(shè)計之手表鬧鐘設(shè)計
- 電子密碼鎖eda技術(shù)課程設(shè)計
- eda技術(shù)課程設(shè)計 ---eda數(shù)字頻率計
- sopc技術(shù)課程設(shè)計---基于sopc技術(shù)實現(xiàn)數(shù)字鬧鐘
- eda課程設(shè)計-- eda與數(shù)字系統(tǒng)課程設(shè)計
- eda技術(shù)課程設(shè)計---8位加法器設(shè)計
- eda技術(shù)課程設(shè)計---脈沖寬度測量儀
- eda技術(shù)課程設(shè)計--出租車計費器
- eda技術(shù)課程設(shè)計----數(shù)字頻率計
- eda技術(shù)課程設(shè)計--電梯控制器電路設(shè)計
- 適用多功能數(shù)字鐘(eda技術(shù)課程設(shè)計)
評論
0/150
提交評論