《多功能數(shù)字鐘》EDA實驗報告
《《多功能數(shù)字鐘》EDA實驗報告》由會員分享,可在線閱讀,更多相關《《多功能數(shù)字鐘》EDA實驗報告(21頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、精品范文模板 可修改刪除 撰寫人:___________日 期:___________ 《EDA課程設計》 實驗報告 多功能數(shù)字鐘 姓 名: 學 號: 聯(lián)系方式: 成 績: 1.摘要 在當代,隨著人類社會進入到高度發(fā)達的信息化社會。信息技術的發(fā)展起著越來越大的作用,它幾乎涉及到我們?nèi)粘I畹拿總€領域,可以說要衡量一個當今社會的發(fā)展文明程度信息化技術的發(fā)展程度是一個非常重要的指標。
2、眾所周知,信息化社會的發(fā)展離不開電子信息技術產(chǎn)品的開發(fā)、產(chǎn)品品質(zhì)的提高和改善。電子信息產(chǎn)品隨著科學技術的進步,其電子器件和設計方法更新、換代的速度快的驚人,幾乎是日新月異。然而實現(xiàn)這種進步的主要原因就是電子設計技術和電子制造技術的發(fā)展,其核心就是電子設計自動化(EDA,Electronics?Design?Automation)技術,EDA技術的發(fā)展和推廣應用又極大地推動了電子信息產(chǎn)業(yè)的發(fā)展。為保證電子系統(tǒng)設計的速度和質(zhì)量,適應“第一時間推出產(chǎn)品”的設計要求,EDA技術正逐漸成為不可缺少的一項先進技術和重要工具。目前,在國內(nèi)電子技術教學和產(chǎn)業(yè)界的技術推廣中已形成“EDA熱”,完全可以說,掌握E
3、DA技術是電子信息類專業(yè)學生、工程技術人員所必備的基本能力和技能。 由于基于PLD的EDA技術的發(fā)展和應用領域的擴大和深入,EDA技術在電子信息、通信、自動控制及計算機應用領域的重要性日益提高。 EDA技術在電子系統(tǒng)設計領域越來越普及,本設計主要利用VHDL語言在EDA平臺上設計一個電子數(shù)字鐘,它的計時為24小時小時制,顯示滿刻度為23時59分59秒,另外還具有校時功能和鬧鐘功能??偟某绦蛴蓭讉€各具不同功能的單元模塊程序拼接而成,其中包括分頻程序模塊,時、分、秒計數(shù)和校時程序模塊、數(shù)據(jù)選擇器程序模塊、顯示程序模塊和例化程序模塊。并且使用QUARTUS II軟件進行電路波形仿真,下載到EDA
4、實驗箱進行驗證。 作為現(xiàn)在的大學生應熟練掌握這門技術,為以后的發(fā)展打下良好的基礎,本實驗設計是應用QuartusII環(huán)境及VHDL語言設計一個時間可調(diào)的數(shù)字時鐘。使自己熟練使用QuartusII環(huán)境來進行設計,掌握VHDL語言的設計方法。注重理論與實踐之間的不同,從而培養(yǎng)自己的實踐能力! 關鍵字:EDA,數(shù)字鐘,QUARTUS II,VHDL,PLD,模塊化,分頻,校時,仿真, 2.概括 多功能數(shù)字鐘應該具有的功能有:顯示時-分-秒、整點報時、小時和分鐘可調(diào)等基本功能。首先要知道鐘表的工作機理,整個鐘表的工作應該是在1Hz信號的作用下進行,這樣每來一個時鐘信號,秒增加1秒,當秒從59秒
5、跳轉(zhuǎn)到00秒時,分鐘增加1分,同時當分鐘從59分跳轉(zhuǎn)到00分時,小時增加1小時,但是需要注意的是,小時的范圍是從0~23時。 在實驗中為了顯示的方便,由于分鐘和秒鐘顯示的范圍都是從0~59,所以可以用一個3位的二進制碼顯示十位,用一個四位的二進制碼(BCD碼)顯示個位,對于小時因為它的范圍是從0~23,所以可以用一個2位的二進制碼顯示十位,用4位二進制碼(BCD碼)顯示個位。 實驗中由于七段碼管是掃描的方式顯示,所以雖然時鐘需要的是1Hz時鐘信號,但是掃描確需要一個比較高頻率的信號,因此為了得到準確的1Hz信號,必須對輸入的系統(tǒng)時鐘進行分頻。 對于整點報時功能,用戶可以根據(jù)系統(tǒng)的硬件結構
6、和自身的具體要求來設計。 本驗設計的是當進行整點的倒計時5秒時,讓LED來閃爍進行整點報時的提示。 要求顯示格式為 小時-分鐘-秒鐘,整點報時,報時時間為5秒,即從整點前5秒鐘開始進行報時提示,LED開始閃爍,過整點后,停止閃爍。系統(tǒng)時鐘選擇時鐘模塊的10KHz,要得到1Hz時鐘信號,必須對系統(tǒng)時鐘進行10,000次分頻。調(diào)整時間的的按鍵用按鍵模塊的S1和S2,S1調(diào)節(jié)小時,每按下一次,小時增加一個小時,S2調(diào)整分鐘,每按下一次,分鐘增加一分鐘。另外用S12按鍵作為系統(tǒng)時鐘復位,復位后全部顯示00-00-00。 3.總體原理 3.1功能概括 本實驗是通過編程實現(xiàn)多功能的數(shù)字時鐘,其功
7、能包含了基本的時間顯示部分(由00—00—00至23—59—59)的基本顯示部分;同時期附帶有清零(RES)按鍵功能(這里用F12表示),當 按下F12是所有的數(shù)字清零(00—00—00);此外還有整點報時功能模塊,當時間還有5秒到達正點的時候通過指示燈的閃爍以及蜂鳴器的發(fā)生實現(xiàn)報時的功能;此外,還具有小時,分鐘的調(diào)節(jié)功能(這里用S1,S2分別表示小時和分鐘的調(diào)節(jié)),當按下S1一次的時候小時顯示的數(shù)字增加‘1’(直至23后清零00),當按下S2一次的時候分鐘上面的數(shù)字增加‘1’(直至59后歸零00); 3.2功能結構圖 a.本實驗是采用功能分塊的模式,通過不同的功能模塊的組合,最終實驗本實
8、驗的功能要求。 時顯示器 秒顯示器 分顯示器 時譯碼器 秒譯碼器 分譯碼器 報時/鬧鐘 時計數(shù)器 分計數(shù)器 秒計數(shù)器 校時電路 1Hz 5HZ 分頻器 振蕩器 圖1 數(shù)字鐘的系統(tǒng)框圖 b.圖為基本功能結構圖 c.七段數(shù)碼管是電子開發(fā)過程中常用的輸出顯示設備。在實驗系統(tǒng)中使用的是兩個四位一體、共陰極型七段數(shù)碼管。其單個靜態(tài)數(shù)碼管如下圖所示。 靜態(tài)七段數(shù)碼管
9、 由于七段數(shù)碼管公共端連接到GND(共陰極型),當數(shù)碼管的中的那一個段被輸入高電平,則相應的這一段被點亮。反之則不亮。四位一體的七段數(shù)碼管在單個靜態(tài)數(shù)碼管的基礎上加入了用于選擇哪一位數(shù)碼管的位選信號端口。八個數(shù)碼管的a、b、c、d、e、f、g、h、dp都連在了一起,8個數(shù)碼管分別由各自的位選信號來控制,被選通的數(shù)碼管顯示數(shù)據(jù),其余關閉。 3.3設計的基本要求及基本參數(shù) 系統(tǒng)時鐘選擇時鐘模塊的10KHz,要得到1Hz時鐘信號,必須對系統(tǒng)時鐘進行10,000次分頻。從而的到需要的1s的信號。本實驗中,所用到的秒,分,時的計時都是采用4位二進制的計數(shù)器進行設計計時的。通過設置不同的范圍實現(xiàn)對7
10、段數(shù)碼管的顯示設定。 4具體功能分塊實現(xiàn)及介紹 4.1分頻功能模塊(這里將所有用到的端口名在此同時給出) 實現(xiàn)該功能是通過對系統(tǒng)的自身的1kHZ的信號的采用10000次的分頻從而獲得1s的所需要的信號。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY LG IS PORT( Clk : IN STD_LOGIC; --時鐘輸入 S12 : IN
11、 STD_LOGIC; --復位輸入 S1,S2 : IN STD_LOGIC; --時間調(diào)節(jié)輸入 spk : OUT STD_LOGIC; led : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --整點輸報時輸出 Display : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --七段碼管顯示輸出 SEG_SEL : BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0
12、) --七段碼管掃描動 ); END LG; ARCHITECTURE ART OF LG IS SIGNAL Disp_Temp : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL Disp_Decode : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL SEC1,MIN1, : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL SEC10,MIN10 : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL HOUR10
13、HOUR1 : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL Music_Count : STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL Clk_Count1 : STD_LOGIC_VECTOR(13 DOWNTO 0); --產(chǎn)生1Hz時鐘的分頻計數(shù)器 SIGNAL Clk1Hz : STD_LOGIC; SIGNAL led_count : STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL led_display : STD_LOGI
14、C_VECTOR(3 DOWNTO 0); SIGNAL T : INTEGER RANGE 0 TO 15; BEGIN PROCESS(Clk) BEGIN IF(Clk'EVENT AND Clk='1') THEN IF(Clk_Count1<10000) THEN Clk_Count1<=Clk_Count1+1; ELSE Clk_Count1<="00000000000001"; END IF; END IF; END PROCESS;
15、4.2整點報時功能 Clk1Hz<=Clk_Count1(13); PROCESS(Clk1Hz,S12) BEGIN IF(S12='0') THEN --系統(tǒng)復位 SEC1<="0000"; SEC10<="0000"; MIN1<="0000"; MIN10<="0000"; HOUR1<="0000"; HOUR10<="0000"; ELSIF(Clk1Hz'EVENT AND Clk1Hz='1') THEN --正常運行 IF(S1='0')
16、THEN --調(diào)節(jié)小時 IF(HOUR1="1001") THEN HOUR1<="0000"; HOUR10<=HOUR10+1; ELSIF(HOUR10="0010" AND HOUR1="0011") THEN HOUR1<="0000"; HOUR10<="0000"; ELSE HOUR1<=HOUR1+1; END IF; ELSIF(S2='0')
17、THEN --調(diào)節(jié)分鐘 IF(MIN1="1001") THEN MIN1<="0000"; IF(MIN10="0101") THEN MIN10<="0000"; ELSE MIN10<=MIN10+1; END IF; ELSE MIN1<=MIN1+1; END IF;
18、 ELSIF(SEC1="1001") THEN SEC1<="0000"; IF(SEC10="0101") THEN SEC10<="0000"; IF(MIN1="1001") THEN MIN1<="0000"; IF(MIN10="0101") THEN MIN10<="0000";
19、 IF(HOUR1="1001") THEN HOUR1<="0000"; HOUR10<=HOUR10+1; ELSIF(HOUR10="0010" AND HOUR1="0011") THEN HOUR1<="0000"; HOUR10<="0000"; ELSE
20、 HOUR1<=HOUR1+1; END IF; ELSE MIN10<=MIN10+1; END IF; ELSE MIN1<=MIN1+1; END IF; ELSE SEC10<=SE
21、C10+1; END IF; ELSE SEC1<=SEC1+1; END IF; END IF; END PROCESS; ---------------------------------------------------------------------- PROCESS(SEC1,T) BEGIN CASE SEC1 IS WHEN "0000"=>T<=0; WHEN "0001"=>T<=1; WHEN "0010"=>T<=2; WHEN
22、"0011"=>T<=3; WHEN "0100"=>T<=4; WHEN "0101"=>T<=5; WHEN "0110"=>T<=6; WHEN "0111"=>T<=7; WHEN "1000"=>T<=8; WHEN "1001"=>T<=9; WHEN OTHERS=>T<=0; END CASE; END PROCESS; --------------------------------------------------------------------- PROCESS(Clk,T) BEGIN IF(Clk'EVE
23、NT AND Clk='1') THEN Music_Count<=Music_Count+1; IF(MIN10="0101" AND MIN1="1001" AND SEC10="0101") THEN --在59分50秒開始提示 IF((T MOD 2)=0) THEN --在偶數(shù)秒開始發(fā)聲 SPK<=Music_Count(2); --嘀 ELSE SPK<='0'; END IF;
24、 ELSIF(MIN10="0000" AND MIN1="0000" AND SEC10="0000" AND SEC1="0000") THEN SPK<=Music_Count(1); --嗒 ELSE SPK<='0'; END IF; END IF; END PROCESS; PROCESS(Clk) BEGIN IF(Clk1hz'EVENT AND Clk1hz='1') THEN IF(MIN10="0101" AND M
25、IN1="1001" AND SEC10="0101" AND sec1="0101") THEN --在59分55秒開始提示 led_Count<=led_Count+1; ELSE led_count<="000"; END IF; END IF; END PROCESS; 4.3復位和時間調(diào)節(jié)功能 Clk1Hz<=Clk_Count1(13); PROCESS(Clk1Hz,S12) BEGIN IF(S12='0') THEN --系統(tǒng)復位 SEC1<="0000"
26、; SEC10<="0000"; MIN1<="0000"; MIN10<="0000"; HOUR1<="0000"; HOUR10<="0000"; ELSIF(Clk1Hz'EVENT AND Clk1Hz='1') THEN --正常運行 IF(S1='0') THEN --調(diào)節(jié)小時 IF(HOUR1="1001") THEN HOUR1<="0000"; HOUR10<=HOUR10+1;
27、 ELSIF(HOUR10="0010" AND HOUR1="0011") THEN HOUR1<="0000"; HOUR10<="0000"; ELSE HOUR1<=HOUR1+1; END IF; ELSIF(S2='0') THEN --調(diào)節(jié)分鐘 IF(MIN1="1001") THEN MIN1<="0000"; IF(MIN10="0101") THEN
28、 MIN10<="0000"; 4.4時間顯示功能 PROCESS(led_count) BEGIN CASE (led_count) IS WHEN "000"=>led_display<="0000"; WHEN "001"=>led_display<="1111"; WHEN "010"=>led_display<="0111"; WHEN "011"=>led_display<="0011"; WHEN "100"=>led_display<="0001"; WHEN "101"=>led
29、_display<="1111"; WHEN OTHERS=>led_display<="0000"; END CASE; led<=led_display; END PROCESS; -------------------------------------------------------------------------- PROCESS(SEG_SEL) BEGIN CASE (SEG_SEL+1) IS WHEN "000"=>Disp_Temp<=HOUR10; WHEN "001"=>Disp_Temp<=HO
30、UR1; WHEN "010"=>Disp_Temp<="1010"; WHEN "011"=>Disp_Temp<=MIN10; WHEN "100"=>Disp_Temp<=MIN1; WHEN "101"=>Disp_Temp<="1010"; WHEN "110"=>Disp_Temp<=SEC10; WHEN OTHERS=>Disp_Temp<=SEC1; END CASE; END PROCESS; ------------------------------------------------
31、----------------------- --掃描累加 PROCESS(Clk) BEGIN IF(Clk'EVENT AND Clk='1') THEN SEG_SEL<=SEG_SEL+1; Display<=Disp_Decode; END IF; END PROCESS; --------------------------------------------------------------------------顯示轉(zhuǎn)換 PROCESS(Disp_Temp) BEGIN CASE Disp_Temp IS
32、 WHEN "0000"=>Disp_Decode<="00111111"; --0 WHEN "0001"=>Disp_Decode<="00000110"; --1 WHEN "0010"=>Disp_Decode<="01011011"; --2 WHEN "0011"=>Disp_Decode<="01001111"; --3 WHEN "0100"=>Disp_Decode<="01100110"; --4 WHEN "0101"=>Disp_Decode<="01101101"; --5 WHEN "011
33、0"=>Disp_Decode<="01111101"; --6 WHEN "0111"=>Disp_Decode<="00000111"; --7 WHEN "1000"=>Disp_Decode<="01111111"; --8 WHEN "1001"=>Disp_Decode<="01101111"; --9 WHEN "1010"=>Disp_Decode<="01000000"; --- WHEN OTHERS=>Disp_Decode<="00000000"; --全滅 END CASE; END PROCESS
34、; END ART; 5.實驗總結及心得 通過這次實驗是我學習到了許多知識,首先是對EDA課程設計的基本要求以及對實驗過程的具體實現(xiàn)方法,其次是對VHDL編程語言的語法掌握和認識有了更加深刻的理解和認識,再次是對QUARTUSII軟件的基本操作和工作有了一定的了解和認識,還有就是對實驗的過程收獲了許多,受益了許多。 經(jīng)過兩周EDA課程設計,使我受益匪淺。這不僅增強了我對EDA設計的興趣,更鞏固了基本的電路設計流程、方法以及技巧。具備了這些基本知識,為今后的自主學習奠定了良好的基礎。在編寫時可以相互借鑒,這樣可以節(jié)省一定的時間,但在一個問題上糾結了很久,現(xiàn)還未明白,為什么一個變量在
35、進程中只能被一個邊沿信號觸發(fā)進行修改,無奈之下選擇了另一種方法,通過一個控制端來進行選頻,以實現(xiàn)快速調(diào)時,在鬧鐘的處理上使用了數(shù)據(jù)選擇,設置鬧鈴時數(shù)碼管顯示鬧鐘時間。 在設計中還是需要注意一些常見的問題,比如實體名、項目名等,還有在編寫VHDL文件時,一些文件名也是需要注意的;在編寫程序的過程中,信號與變量的使用是一個特需要注意的,進程中一個信號不應有多個復制源,信號的復值是在進程結束之時,而變量的復值是立即的,在書寫時容易出錯的地方是,信號的賦值與變量的賦值符號,信號作為全局的聯(lián)絡線,信號往往不允許在多個進程中被賦值,因為進程之間是并行的。 通過實驗也徹底的認識到了自己的不足,以及許多自
36、己有待加強和努力的地方,比如說相關語法的具體實驗過程,不同設計的優(yōu)點分析等。還有就是對自己以后應該學習掌握的知識還有許多,自己懂得的還知識皮毛而已,如果真的要用于實際工程及設計中要走的路還是很長的。 最后在這里要感謝我的指導老師,感謝您的耐心指導和教誨,是您的耐心指導才使得我收獲了這么多,學會了很多不懂得知識,掌握了這么多的專業(yè)知識,以及這么多有用的專業(yè)技巧和處理問題的方法和能力,正式由于您的努力才能幫助我的課程設計順利的進行并能夠最終完成自己的課程設計。在這里要表達我的感激之情以及感恩之意,是您讓我又一次的成長了許多,此致敬禮! 6.源程序 LIBRARY IE
37、EE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; -------------------------------------------------------------------- ENTITY LG IS PORT( Clk : IN STD_LOGIC; --時鐘輸入 S12 : IN STD_LOGIC; --復位輸入 S1,S2 : IN
38、 STD_LOGIC; --時間調(diào)節(jié)輸入 spk : OUT STD_LOGIC; led : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --整點輸報時輸出 Display : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --七段碼管顯示輸出 SEG_SEL : BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0) --七段碼管掃描驅(qū)動 ); END LG; -----
39、--------------------------------------------------------------- ARCHITECTURE ART OF LG IS SIGNAL Disp_Temp : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL Disp_Decode : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL SEC1,MIN1, : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL SEC10,MIN10 : STD_LOGIC_VECT
40、OR(3 DOWNTO 0); SIGNAL HOUR10 HOUR1 : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL Music_Count : STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL Clk_Count1 : STD_LOGIC_VECTOR(13 DOWNTO 0); --產(chǎn)生1Hz時鐘的分頻計數(shù)器 SIGNAL Clk1Hz : STD_LOGIC; SIGNAL led_count : STD_LOGIC_VECTOR(2 DOWNTO 0);
41、 SIGNAL led_display : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL T : INTEGER RANGE 0 TO 15; BEGIN PROCESS(Clk) BEGIN IF(Clk'EVENT AND Clk='1') THEN IF(Clk_Count1<10000) THEN Clk_Count1<=Clk_Count1+1; ELSE Clk_Count1<="00000000000001"; END IF
42、; END IF; END PROCESS; ---------------------------------------------------------------------------------- Clk1Hz<=Clk_Count1(13); PROCESS(Clk1Hz,S12) BEGIN IF(S12='0') THEN --系統(tǒng)復位 SEC1<="0000"; SEC10<="0000"; MIN1<="0000"; MIN10<="0000"; HOU
43、R1<="0000"; HOUR10<="0000"; ELSIF(Clk1Hz'EVENT AND Clk1Hz='1') THEN --正常運行 IF(S1='0') THEN --調(diào)節(jié)小時 IF(HOUR1="1001") THEN HOUR1<="0000"; HOUR10<=HOUR10+1; ELSIF(HOUR10="0010" AND HOUR1="0011") THEN HOUR1<="0000";
44、 HOUR10<="0000"; ELSE HOUR1<=HOUR1+1; END IF; ELSIF(S2='0') THEN --調(diào)節(jié)分鐘 IF(MIN1="1001") THEN MIN1<="0000"; IF(MIN10="0101") THEN MIN10<="0000"; ELSE MIN1
45、0<=MIN10+1; END IF; ELSE MIN1<=MIN1+1; END IF; ELSIF(SEC1="1001") THEN SEC1<="0000"; IF(SEC10="0101") THEN SEC10<="0000"; IF(MIN1="1001") THEN
46、 MIN1<="0000"; IF(MIN10="0101") THEN MIN10<="0000"; IF(HOUR1="1001") THEN HOUR1<="0000"; HOUR10<=HOUR10+1; ELSIF(HOUR10="0010" AND HOUR1="0011") THEN
47、 HOUR1<="0000"; HOUR10<="0000"; ELSE HOUR1<=HOUR1+1; END IF; ELSE MIN10<=MIN10+1; END IF; ELSE
48、 MIN1<=MIN1+1; END IF; ELSE SEC10<=SEC10+1; END IF; ELSE SEC1<=SEC1+1; END IF; END IF; END PROCESS; ---------------------------------------------------------------------- PROCE
49、SS(SEC1,T) BEGIN CASE SEC1 IS WHEN "0000"=>T<=0; WHEN "0001"=>T<=1; WHEN "0010"=>T<=2; WHEN "0011"=>T<=3; WHEN "0100"=>T<=4; WHEN "0101"=>T<=5; WHEN "0110"=>T<=6; WHEN "0111"=>T<=7; WHEN "1000"=>T<=8; WHEN "1001"=>T<=9; WHEN OTHERS=>T<=0; END CASE; END PROCESS;
50、--------------------------------------------------------------------- PROCESS(Clk,T) BEGIN IF(Clk'EVENT AND Clk='1') THEN Music_Count<=Music_Count+1; IF(MIN10="0101" AND MIN1="1001" AND SEC10="0101") THEN --在59分50秒開始提示 IF((T MOD 2)=0) THEN --在偶數(shù)秒開始發(fā)聲
51、 SPK<=Music_Count(2); --嘀 ELSE SPK<='0'; END IF; ELSIF(MIN10="0000" AND MIN1="0000" AND SEC10="0000" AND SEC1="0000") THEN SPK<=Music_Count(1); --嗒 ELSE SPK<='0'; END IF; END IF; END
52、PROCESS; -------------------------------------------------------- PROCESS(Clk) BEGIN IF(Clk1hz'EVENT AND Clk1hz='1') THEN IF(MIN10="0101" AND MIN1="1001" AND SEC10="0101" AND sec1="0101") THEN --在59分55秒開始提示 led_Count<=led_Count+1; ELSE led_count<="
53、000"; END IF; END IF; END PROCESS; ------------------------------------------------------------------------- PROCESS(led_count) BEGIN CASE (led_count) IS WHEN "000"=>led_display<="0000"; WHEN "001"=>led_display<="1111"; WHEN "010"=>led_display<="0111"; WHEN "011"=>led_
54、display<="0011"; WHEN "100"=>led_display<="0001"; WHEN "101"=>led_display<="1111"; WHEN OTHERS=>led_display<="0000"; END CASE; led<=led_display; END PROCESS; -------------------------------------------------------------------------- PROCESS(SEG_SEL) BEGIN CASE (SEG_SEL
55、+1) IS WHEN "000"=>Disp_Temp<=HOUR10; WHEN "001"=>Disp_Temp<=HOUR1; WHEN "010"=>Disp_Temp<="1010"; WHEN "011"=>Disp_Temp<=MIN10; WHEN "100"=>Disp_Temp<=MIN1; WHEN "101"=>Disp_Temp<="1010"; WHEN "110"=>Disp_Temp<=SEC10; WHEN OTHERS=>Disp_Temp<=SEC1; END CASE
56、; END PROCESS; ----------------------------------------------------------------------- --掃描累加 PROCESS(Clk) BEGIN IF(Clk'EVENT AND Clk='1') THEN SEG_SEL<=SEG_SEL+1; Display<=Disp_Decode; END IF; END PROCESS; -------------------------------------------------------
57、-------------------顯示轉(zhuǎn)換 PROCESS(Disp_Temp) BEGIN CASE Disp_Temp IS WHEN "0000"=>Disp_Decode<="00111111"; --0 WHEN "0001"=>Disp_Decode<="00000110"; --1 WHEN "0010"=>Disp_Decode<="01011011"; --2 WHEN "0011"=>Disp_Decode<="01001111"; --3 WHEN "0100"=>Disp_Decode<="01100
58、110"; --4 WHEN "0101"=>Disp_Decode<="01101101"; --5 WHEN "0110"=>Disp_Decode<="01111101"; --6 WHEN "0111"=>Disp_Decode<="00000111"; --7 WHEN "1000"=>Disp_Decode<="01111111"; --8 WHEN "1001"=>Disp_Decode<="01101111"; --9 WHEN "1010"=>Disp_Decode<="01000000"; --- WHEN OTHERS=>Disp_Decode<="00000000"; --全滅 END CASE; END PROCESS; END ART; 第 21 頁 共 21 頁 免責聲明:圖文來源于網(wǎng)絡搜集,版權歸原作者所以 若侵犯了您的合法權益,請作者與本上傳人聯(lián)系,我們將及時更正刪除。
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。