版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì)</p><p> 2012年 3 月2日</p><p><b> 課程設(shè)計(jì)任務(wù)書</b></p><p> 課程 EDA技術(shù)課程設(shè)計(jì)</p><p> 題目 鬧鐘系統(tǒng)的設(shè)計(jì)</p><p> 專業(yè) 電子信息工程 姓名
2、 學(xué)號(hào) </p><p> 主要內(nèi)容、基本要求、主要參考資料等</p><p><b> 主要內(nèi)容:</b></p><p> 設(shè)計(jì)并制作一個(gè)帶鬧鐘功能的24小時(shí)計(jì)時(shí)器。它包括以下幾個(gè)組成部分:</p><p> 1、顯示屏,由4 個(gè)七段數(shù)碼管組成,用于顯示當(dāng)前時(shí)間(時(shí):分)或設(shè)置的鬧鐘時(shí)間;<
3、;/p><p> 2、數(shù)字鍵,實(shí)現(xiàn)‘0’—‘9’的輸入,用于輸入新的時(shí)間或新的鬧鐘時(shí)間;</p><p> 3、TIME(時(shí)間)鍵,用于確定新的時(shí)間設(shè)置;</p><p> 4、ALARM(鬧鐘)鍵,用于確定新的鬧鐘時(shí)間設(shè)置,或顯示已設(shè)置的鬧鐘時(shí)間;</p><p> 5、揚(yáng)聲器,在當(dāng)前時(shí)鐘時(shí)間與鬧鐘時(shí)間相同時(shí),發(fā)出蜂鳴聲</p&g
4、t;<p><b> 基本要求:</b></p><p> 1、計(jì)時(shí)功能:這是本計(jì)時(shí)器設(shè)計(jì)的基本功能,每隔一分鐘計(jì)時(shí)一次,并在顯示屏上顯示當(dāng)前時(shí)間。</p><p> 2、鬧鐘功能:如果當(dāng)前時(shí)間與設(shè)置的鬧鐘時(shí)間相同,則揚(yáng)聲器發(fā)出蜂鳴聲。</p><p> 3、設(shè)置新的計(jì)時(shí)器時(shí)間:用戶用數(shù)字鍵輸入新的時(shí)間,然后按"
5、TIME"鍵確認(rèn)。在輸入過程中,輸入數(shù)字在顯示屏上從右到左依次顯示。例如,用戶要設(shè)置新的時(shí)間12:34,則按順序輸入“1”,“2”,“3”,“4”,與之對(duì)應(yīng),顯示屏上依次顯示的信息為:“1”,“12”,“123”,“1234"。如果用戶在輸入任意幾個(gè)數(shù)字后較長(zhǎng)時(shí)間內(nèi),例如5 s,沒有按任何鍵,則計(jì)時(shí)器恢復(fù)到正常的計(jì)時(shí)顯示狀態(tài)。</p><p><b> 主要參考資料:</b&
6、gt;</p><p> [1] 潘松著.EDA技術(shù)實(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è)負(fù)責(zé)人 </p><p> 2012年 3月7日</p><p><b> 一、總體設(shè)計(jì)思想</b></p><p><b> 1.基本
8、原理</b></p><p> 數(shù)字鬧鐘電路的基本結(jié)構(gòu)由兩個(gè)60進(jìn)制計(jì)數(shù)器和一個(gè)24進(jìn)制計(jì)數(shù)器組成,分別對(duì)秒、分、小時(shí)進(jìn)行計(jì)時(shí),當(dāng)計(jì)時(shí)到23時(shí)59分59秒時(shí),再來一個(gè)計(jì)數(shù)脈沖,則計(jì)數(shù)器清零,重新開始計(jì)時(shí)。秒計(jì)數(shù)器的計(jì)數(shù)時(shí)鐘CLK為1Hz的標(biāo)準(zhǔn)信號(hào)。當(dāng)數(shù)字鬧鐘處于計(jì)時(shí)狀態(tài)時(shí),秒計(jì)數(shù)器的進(jìn)位輸出信號(hào)作為分鐘計(jì)數(shù)器的計(jì)數(shù)信號(hào),分鐘計(jì)數(shù)器的進(jìn)位輸出信號(hào)又作為小時(shí)計(jì)數(shù)器的計(jì)數(shù)信號(hào)時(shí)、分、秒的計(jì)時(shí)結(jié)果通過6個(gè)數(shù)
9、碼管來動(dòng)態(tài)顯示。因此,通過模式選擇信號(hào)KEY1、KEY2控制數(shù)字鐘的工作狀態(tài),即控制數(shù)字鐘,使其分別工作于正常計(jì)時(shí),調(diào)整分、時(shí)和設(shè)定鬧鐘分、時(shí)5個(gè)狀態(tài)。當(dāng)數(shù)字鬧鐘處于計(jì)時(shí)狀態(tài)時(shí),3個(gè)計(jì)數(shù)器允許計(jì)數(shù),且秒、分、時(shí)計(jì)數(shù)器的計(jì)數(shù)時(shí)鐘信號(hào)分別為CLK,秒的進(jìn)位, 分的進(jìn)位;當(dāng)數(shù)字鬧鐘處于調(diào)整時(shí)間狀態(tài)時(shí),被調(diào)的分或時(shí)會(huì)一秒一秒地增加;當(dāng)數(shù)字鐘處于鬧鐘定時(shí)狀態(tài)時(shí),可以設(shè)定小時(shí)和分;當(dāng)計(jì)時(shí)到所設(shè)定的時(shí)刻時(shí),驅(qū)動(dòng)揚(yáng)聲器,持續(xù)1分鐘。</p>
10、<p><b> 2.設(shè)計(jì)框圖</b></p><p> 二、設(shè)計(jì)步驟和調(diào)試過程</p><p><b> 1、總體設(shè)計(jì)電路</b></p><p> (1) CLK為外部時(shí)鐘信號(hào),RESET為復(fù)位信號(hào). (2) 當(dāng)KEY為高電平(KEY= '1')時(shí),表示用戶按下數(shù)字鍵(&q
11、uot;0"~"9"). (3) 當(dāng)ALARM_BUTTON為高電平時(shí),表示用戶按下"ALARM"鍵. (4) 當(dāng)TIME_BUTTON為高電平時(shí),表示用戶按下"TIME"鍵. (5) 當(dāng)LOAD_NEW_A為高電平時(shí),控制(鬧鐘時(shí)間寄存器)加載新的鬧鐘時(shí)間值. (6) 當(dāng)LOAD_NEW_C為高電平時(shí),控制(時(shí)鐘計(jì)數(shù)器)設(shè)置新的時(shí)間值
12、. (7) 當(dāng)SHOW_NEW_TIME為高電平時(shí),控制(七段數(shù)碼顯示電路)顯示新的時(shí)間值,即用戶通過數(shù)字鍵輸入的時(shí)間;否則,當(dāng)SHOW_NEW_TIME為低電平時(shí),根據(jù)SHOW_A信號(hào)的值控制顯示當(dāng)前時(shí)間或鬧鐘時(shí)間. 根據(jù)設(shè)計(jì)要求及端口設(shè)置,需要五個(gè)狀態(tài)來實(shí)現(xiàn): S0:表示電路初態(tài)即正常時(shí)鐘計(jì)數(shù)狀態(tài),完成前面設(shè)計(jì)功能 (1) 的工作. S1:接收鍵盤輸入狀態(tài).在狀態(tài)S0時(shí)用戶按下數(shù)字鍵后進(jìn)入此狀態(tài).在此
13、狀態(tài)下,顯示屏上顯示的是用戶鍵入的數(shù)字. S2:設(shè)置新的鬧</p><p> 模塊設(shè)計(jì)和相應(yīng)模塊程序</p><p><b> ?。?)頂層文件:</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> ?。?)時(shí)鐘控制模塊:
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> -----------------------------------------------小時(shí)十位</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--當(dāng)時(shí)間為23點(diǎn)且處于校時(shí)狀態(tài)時(shí)</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> -----------------------------------------------小時(shí)個(gè)位</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、------------------------------------分鐘個(gè)位 </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> --------------------------------------------秒個(gè)位 </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í)間設(shè)置小時(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í)間設(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---------------計(jì)時(shí)時(shí)間顯示和設(shè)置模式</p><p> h1<=hou1;h2<=hou2;</p><p> m1<=min1;m2<
70、=min2;</p><p> s1<=sec1;s2<=sec2;</p><p> else -----------鬧鈴時(shí)間現(xiàn)實(shí)和設(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> ?。?)樂曲演奏模塊:</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進(jìn)行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ù)置計(jì)數(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分頻,展寬脈沖,使揚(yáng)聲器有足夠功率發(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";--使能信號(hào) </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> 本實(shí)驗(yàn)是以KEY2、KEY1為控制整個(gè)鬧鐘的校時(shí),校分,校鬧鐘時(shí)、分,分別將KEY2[1],KEY2[0],KEY1,送到實(shí)驗(yàn)上的三個(gè)鍵,由這三個(gè)鍵來控制整個(gè)校時(shí),分,鬧鐘時(shí),校鬧鐘分的過程,加上分別連接的鍵叫A,B,C鍵,則當(dāng)A=0,B=1,C=0時(shí)是對(duì)時(shí)鐘進(jìn)行校時(shí),時(shí)個(gè)位和時(shí)十位會(huì)以二十四進(jìn)制循環(huán)自動(dòng)增加。仿真波形:</p><p><b>
110、; 仿真圖1</b></p><p> 當(dāng)A=0,B=0,C=0時(shí)是對(duì)時(shí)鐘進(jìn)行校分,分個(gè)位和分十位會(huì)以六十進(jìn)制循環(huán)增加,并且不對(duì)時(shí)進(jìn)位。仿真波形:</p><p><b> 仿真圖2</b></p><p> 當(dāng)A=0,B=1,C=1時(shí)是對(duì)鬧鐘進(jìn)行校分,鬧鐘時(shí)個(gè)位和時(shí)十位會(huì)以二十四進(jìn)制循環(huán)自動(dòng)增加。仿真波形:</p&g
111、t;<p><b> 仿真圖3</b></p><p> 當(dāng)A=0,B=0,C=1時(shí)是對(duì)鬧鐘進(jìn)行校時(shí),鬧鐘分個(gè)位和分十位會(huì)以六十進(jìn)制循環(huán)增加,并且不對(duì)時(shí)進(jìn)位。仿真波形:</p><p><b> 仿真圖4</b></p><p> 而當(dāng)A=1,B=0,C=0或者A=1,B=1,C=0是正常的計(jì)時(shí)時(shí)間,
112、秒從零開始計(jì)時(shí),每秒加一,當(dāng)?shù)竭_(dá)五十九在來一個(gè)脈沖后,秒十位和秒個(gè)位清零,從零開始直到六十一直循環(huán),并且向分個(gè)位清零;分位的原理同秒的一樣;而時(shí)與秒,分的不同之處是,當(dāng)時(shí)計(jì)數(shù)到二十三時(shí)清零并且不向任何位進(jìn)位。仿真波形:</p><p><b> 仿真圖5</b></p><p> 另外當(dāng)計(jì)數(shù)的時(shí),分和鬧鐘所事先設(shè)置時(shí)、分相等時(shí),歌曲會(huì)響起,作為鬧鐘并且維持一分鐘,
113、一分鐘歌曲自動(dòng)停止。</p><p><b> 4、實(shí)驗(yàn)調(diào)試結(jié)果</b></p><p> 為驗(yàn)證所設(shè)計(jì)程序是否正確,將程序下載進(jìn)行硬件測(cè)試。在QuartusⅡ開發(fā)環(huán)境中進(jìn)行管腳鎖定,連接好數(shù)碼管驅(qū)動(dòng)電路,然后將目標(biāo)文件下載到器件中。最終可以看到時(shí)、分、秒正常顯示。引腳分配如下(選擇模式5)</p><p><b> 圖6<
114、;/b></p><p><b> 三、結(jié)論及心得體會(huì)</b></p><p> 這次課程設(shè)計(jì)業(yè)使我明白了自己還有很多很多的不足,在以后的學(xué)習(xí)中應(yīng)該多多的注意實(shí)踐知識(shí)的訓(xùn)練和積累,不斷的開拓自己的動(dòng)手能力,不斷的訓(xùn)練自己的動(dòng)手能力。這次課程設(shè)計(jì)讓我深深的明白了自己以后該做什么,該怎么去做。</p><p> 經(jīng)過一周的努力終于完成鬧
115、鐘系統(tǒng)的設(shè)計(jì),鬧鐘系統(tǒng)是由七個(gè)部分組成,其中包括譯碼器、鍵盤緩沖器、分頻器、記數(shù)器、寄存器、顯示器、控制器</p><p> 由七個(gè)數(shù)碼管組成的顯示屏可以正常顯示時(shí)間,并且可以通過數(shù)字鍵重新設(shè)置鬧鐘時(shí)間,經(jīng)過仿真測(cè)試各個(gè)功能鍵工作正常,鬧鐘發(fā)出蜂鳴聲,達(dá)到了設(shè)計(jì)要求。</p><p> 在以后的學(xué)習(xí)中我會(huì)更加的努力,希望自己能有更好的表現(xiàn)和發(fā)展,在學(xué)習(xí)方法中也要有所改進(jìn),努力做好每一件
116、事。</p><p><b> 參考資料</b></p><p> [1] 潘松著.EDA技術(shù)實(shí)用教程(第二版). 北京:科學(xué)出版社,2005.</p><p> [2] 康華光主編.電子技術(shù)基礎(chǔ) 模擬部分. 北京:高教出版社,2006.</p><p> [3] 閻石主編.數(shù)字電子技術(shù)基礎(chǔ). 北京:高教出版社,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- eda技術(shù)課程設(shè)計(jì)---鬧鐘系統(tǒng)設(shè)計(jì)
- eda技術(shù)課程設(shè)計(jì)鬧鐘系統(tǒng)設(shè)計(jì)
- 數(shù)字鬧鐘系統(tǒng)eda課程設(shè)計(jì)
- eda鬧鐘課程設(shè)計(jì)
- eda技術(shù)課程設(shè)計(jì)報(bào)告
- eda課程設(shè)計(jì)---數(shù)字時(shí)鐘(鬧鐘)
- 矩陣鍵盤eda技術(shù)課程設(shè)計(jì)
- protel與eda技術(shù)課程設(shè)計(jì)
- 《eda》課程設(shè)計(jì)之手表鬧鐘設(shè)計(jì)
- 矩陣鍵盤eda技術(shù)課程設(shè)計(jì)
- 電子密碼鎖eda技術(shù)課程設(shè)計(jì)
- eda技術(shù)課程設(shè)計(jì) ---eda數(shù)字頻率計(jì)
- eda課程設(shè)計(jì)-- eda與數(shù)字系統(tǒng)課程設(shè)計(jì)
- eda技術(shù)課程設(shè)計(jì)---8位加法器設(shè)計(jì)
- sopc技術(shù)課程設(shè)計(jì)---基于sopc技術(shù)實(shí)現(xiàn)數(shù)字鬧鐘
- eda技術(shù)課程設(shè)計(jì)--電梯控制器電路設(shè)計(jì)
- eda技術(shù)課程設(shè)計(jì)---脈沖寬度測(cè)量?jī)x
- eda技術(shù)課程設(shè)計(jì)--出租車計(jì)費(fèi)器
- eda技術(shù)課程設(shè)計(jì)----數(shù)字頻率計(jì)
- 適用多功能數(shù)字鐘(eda技術(shù)課程設(shè)計(jì))
評(píng)論
0/150
提交評(píng)論