版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、. 多功能數(shù)字鐘的設(shè)計與實現(xiàn) 學(xué)院名稱: 計算機學(xué)院 專業(yè)班級: 通信工程 學(xué)生姓名: 學(xué)生學(xué)號: 指導(dǎo)老師: 曾 宇 2012年6月25日一、 設(shè)計任務(wù)及要求:(1) 擁有正常的時、分、秒計時功能。(2) 能利用實驗板上的按鍵實現(xiàn)校時、校分及秒清零功能。(3) 能利用實驗板上的揚聲器做整點報時。(4) 鬧鐘功能。(5) 在QUARTUS 中采用層次化設(shè)計方法進行設(shè)計。(6) 完成全部電路設(shè)計后在實驗板上下載,驗證設(shè)計課題的正確性。二、 多功能數(shù)字鐘的總體設(shè)計方案根據(jù)總體設(shè)計框圖,可以將整個系統(tǒng)分成6個模塊來實現(xiàn),分別是計時模塊、校時模塊、整點報時模塊,分頻模塊,動態(tài)顯示模塊,鬧鐘模塊。設(shè)計總
2、圖:1. 計時模塊該模塊的設(shè)計相對簡單,使用一個二十四進制和兩個六十進制計數(shù)器級聯(lián),構(gòu)成數(shù)字鐘的基本框架。二十四進制的計數(shù)器用于計時,六十進制計數(shù)器用于計分和計秒。只要給秒計數(shù)器一個1Hz的時鐘脈沖,則可以進行正常計時。分計數(shù)器以秒計數(shù)器的進位作為計數(shù)脈沖,小時計數(shù)器以分計數(shù)器的進位作為計數(shù)脈沖。 (24進制計數(shù)器構(gòu)成時計數(shù)器,60進制計數(shù)器構(gòu)成的秒、分計數(shù)器)24進制的仿真圖:60進制的仿真圖以下是計時模塊設(shè)計VHDL語言:(1)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cn
3、t24 isport(clk:in std_logic; ql,qh:out std_logic_vector(3 downto 0); tc:out std_logic);end cnt24;architecture one of cnt24 is begin process(clk) variable iql,iqh:std_logic_vector(3 downto 0); begin if clkevent and clk=1 then iql:=iql+1; if iql=1010 then iqh:=iqh+1; iql:=0000; end if; if (iqh=0010)an
4、d(iql=0100) then tc=0; iqh:=0000; iql:=0000; end if; end if; ql=iql; qh=iqh; end process; end one; (2)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt60 is port(clk,clr:in std_logic; ql,qh:buffer std_logic_vector(3 downto 0); tc:out std_logic );end cnt60;architectu
5、re behavor of cnt60 isbegin tc=0 when(clk=1 and ql=0000 and qh=0110) else 1; process(clk,clr,ql,qh)variable iql,iqh:std_logic_vector(3 downto 0); begin if(clr=0or (iql=0000 and iqh=0110)then iql:=0000; iqh:=0000; else if(clkevent and clk=1)then iql:=iql+1; if(iql=1010)then iql:=0000; iqh:=qh+1; end
6、if; end if;end if;ql=iql;qh=iqh;end process;END behavor;2. 校時模塊該模塊設(shè)計要求實現(xiàn)校時、校分及秒清零的功能。 按下校時鍵,小時計數(shù)器迅速遞增以調(diào)至所需要的小時位。 按下校分鍵,分計數(shù)器迅速遞增以調(diào)至所需要的分位。 按下清零鍵,將秒計數(shù)器清零??梢赃x擇實驗板上的3個脈沖按鍵進行鎖定。對于此模塊的設(shè)計,有3個需要注意的問題: 在校分時,分計數(shù)器的計數(shù)不應(yīng)對小時位產(chǎn)生影響。因而需要屏蔽此時分計數(shù)器的進位信號以防止小時計數(shù)器計數(shù)。具體方法是在分計數(shù)器的進位輸出時外加一個組合電路。詳見下圖。 (二路選擇器與計數(shù)器之間連了一個組合電路,以屏蔽進
7、位信號) 按鍵的“抖動”的消除。所謂的“抖動”是指一次按鍵時的彈跳現(xiàn)象,通常實驗板中按鍵所用的開關(guān)為機械性開關(guān),由于機械觸點的彈性作用,按鍵開關(guān)在閉合時并不能馬上接通,而斷開的時候也不能馬上斷開,使得閉合及斷開的瞬間伴隨一系列的電壓抖動,從而導(dǎo)致本來一次按鍵,希望計數(shù)一次,結(jié)果因為抖動計數(shù)多次,且次數(shù)隨機,這樣嚴(yán)重影響了時間的校對。消除抖動較為簡單的方法是利用觸發(fā)器,比如可以使用D觸發(fā)器進行消抖。原因在于,D觸發(fā)器邊沿觸發(fā),則在除去時鐘邊沿到來前一瞬間之外的絕大部分時間都不接受輸入,自然消除了抖動。詳見下圖 (加D觸發(fā)器防抖動) 計時采用1Hz的脈沖驅(qū)動計數(shù)器計數(shù),而校對時間時應(yīng)選用相對高頻率
8、的信號驅(qū)動計數(shù)器以達到快速校對時間的目的。顯然,這兩種計數(shù)脈沖之間需要進行相應(yīng)的選擇切換。于是將計時和校時模塊合起來的電路實現(xiàn)可以實現(xiàn)(見圖3)。兩種脈沖信號用兩路選擇器進行選擇,選擇條件為是否按鍵。按鍵輸出經(jīng)過了消抖的過程。3整點報時模塊該模塊的功能要求是:計時到59分52秒時,每兩秒一次低音報時,整點時進行高音報時,可以將報時信號接到實驗板上的揚聲器輸出。而以不同頻率的脈沖信號區(qū)分低音和高音報時。進行報時的條件是計數(shù)器計數(shù)至所要求的時間點,因而需要實現(xiàn)一個比較模塊,將分計數(shù)器和秒計數(shù)器的輸出連至比較模塊輸入端完成比較過程。 (整點報時頂層圖)以下是整點報時的比較模塊設(shè)計VHDL語言libr
9、ary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zdbs isport(mh,ml,sh,sl:in std_logic_vector(3 downto 0); sig500,sig1k: out std_logic);end zdbs;architecture behavior of zdbs isbegin sig500=1 when mh=0101and ml=1001and sh=0101and (sl=0010 or sl=0100 or sl=0110or sl=1000) -比
10、較,當(dāng)時間為59分2、4、6、8鈔時,sig500端輸出為高電平。else 0;sig1k=1 when mh=0000and ml=0000and sh=0000and sl=0000 else 0; -比較,當(dāng)時間為0分0鈔時,sig1k端輸出為高電平。end behavior;4分頻模塊在本系統(tǒng)中需要用到多種不同頻率的脈沖信號,上至高音報時,下至1Hz的計秒脈沖。所有這些脈沖信號均可以通過一個基準(zhǔn)頻率分頻器生成?;鶞?zhǔn)頻率分頻器就是一個進制很大的計數(shù)器,利用計數(shù)器的分頻功能,從不同的輸出位得到所需要的脈沖信號。(分頻模塊頂層圖)以下是分頻模塊設(shè)計VHDL語言LIBRARY IEEE;USE
11、 IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY freq_divider IS PORT(clk : IN STD_LOGIC; hz1 : OUT STD_LOGIC; hz4 : OUT STD_LOGIC; hz64 : OUT STD_LOGIC; hz512 : OUT STD_LOGIC);END freq_divider;ARCHITECTURE rtl OF freq_divider IS SIGNAL count : STD_LOGIC_V
12、ECTOR(9 DOWNTO 0);BEGIN PROCESS(clk) BEGIN IF (clkevent and clk=1) THEN IF(count=1111111111) THEN Count 0); ELSE Count = count +1; END IF ; END IF ; END PROCESS; hz512 = count(0);-每2個時鐘產(chǎn)生一個時鐘輸出 hz64 = count(3);-每16個時鐘產(chǎn)生一個時鐘輸出 hz4 = count(7);-每256個時鐘產(chǎn)生一個時鐘輸出 hz1 = count(9);-每1024個時鐘產(chǎn)生一個時鐘輸出END rtl;5動
13、態(tài)顯示模塊在動態(tài)方式下,所有的數(shù)碼管對應(yīng)同一組七段碼,每一個數(shù)碼管由一個選擇段控制點亮或熄滅,如果全部點亮,則都顯示相同的數(shù)字。若要實現(xiàn)6位不同時間的顯示。則需要利用人的視覺缺陷。具體來講,可以在6個不同的時間段分別將每組時間經(jīng)過七段譯碼后輸出到6個數(shù)碼管,當(dāng)某一組時間的七段碼到達時,只點亮對應(yīng)位置上的數(shù)碼管,顯示相應(yīng)的數(shù)字;下一個循環(huán)將相鄰一組時間的七段碼送至數(shù)碼管,同樣只點亮相應(yīng)位置的數(shù)碼管,6次一個循環(huán),形成一個掃描序列。只要掃描頻率超過人眼的視覺暫留頻率(24Hz),就可以達到點亮單個數(shù)碼管,卻能享有6個同時顯示的視覺效果,人眼辨別不出差別,而且掃描頻率越高,顯示越穩(wěn)定。(動態(tài)顯示模塊
14、頂層圖)以下是動態(tài)顯示模塊設(shè)計的VHDL語言LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY dtsm is port( clk:in std_logic; h:in std_logic_vector(7 downto 0); m:in std_logic_vector(7 downto 0); s:in std_logic_vector(7 downto 0); seg7out:out std_logic_vector(6 downto 0); sel:buffer std_log
15、ic_vector(2 downto 0) );END dtsm;ARCHITECTURE beha of dtsm is signal key:std_logic_vector(3 downto 0); BEGIN PROCESS(clk) variable dount:std_logic_vector(2 downto 0):=000; BEGIN IF(rising_edge(clk)then-開始掃描 IF dount=101 then dount:=000; ELSE dount:=dount+1; END IF; END IF; selkeykeykeykeykeykeynull;
16、 END CASE; END PROCESS; PROCESS (key) BEGIN case key is-七段顯示代碼 when0000=seg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outnull; END CASE; END PROCESS; END beha;6、鬧鐘模塊(通過24進制計數(shù)器置入時信號,通過60進制計數(shù)器置入分信號)(時鐘鬧鐘信號選擇模塊)以下是時鐘鬧鐘信號選擇模塊設(shè)計的VHDL語言:librar
17、y ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity alarmset isport(sel:in std_logic; hclo,mclo,sclo,halr,malr,salr: in std_logic_vector(7 downto 0); h,s,m:out std_logic_vector(7 downto 0);end alarmset;architecture beh of alarmset isbegin process(se
18、l) begin if(sel=0)then h=hclo; -當(dāng)sel輸入端為低電平時,把時鐘信號傳遞到輸出端 m=mclo; s=sclo; else h=halr; -當(dāng)sel輸入端為高電平時,把鬧鐘置入的信號傳遞到輸出端 m=malr; s=salr; end if; end process;end beh;(當(dāng)選擇開關(guān)輸入為低電平時,把時鐘信號傳遞到動態(tài)顯示模塊;當(dāng)選擇開關(guān)輸入為高電平時,把鬧鐘信號傳遞到動態(tài)顯示模塊。) (比較模塊)以下是比較模塊設(shè)計的VHDL語言library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity alarmcmp isport( h,m,halr,malr: in std_logic_vector(7 downto 0); stop:in std_logic; sig:out std_logic); end alarmcmp;architecture beh of alarmcmp is begin process(h,m,halr,malr,stop)begin if stop=1then sig=0; -當(dāng)stop端輸入為高電平,輸出為低電平 end if; if
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版養(yǎng)老院入住后法律援助與權(quán)益維護合同3篇
- 2025版上市公司員工薪酬協(xié)議書范本3篇
- 2025年食品行業(yè)電商平臺廣告監(jiān)測服務(wù)合同3篇
- 2025版健身房運營管理權(quán)及設(shè)備租賃合同4篇
- 2025年高科技企業(yè)實習(xí)生保密協(xié)議與研發(fā)成果歸屬合同3篇
- 2025年度煤礦井巷工程勞務(wù)派遣與人員培訓(xùn)承包合同范本4篇
- 2025年度個人借款合同電子化管理規(guī)范4篇
- 2025版淋浴房防水保溫材料供應(yīng)與施工合同4篇
- 2025版事故責(zé)任賠償協(xié)議范本:交通事故賠償15篇
- 2025年高端皮鞋定制加工合同范本3篇
- 無人化農(nóng)場項目可行性研究報告
- 《如何存款最合算》課件
- 社區(qū)團支部工作計劃
- 拖欠工程款上訪信范文
- 《wifi協(xié)議文庫》課件
- 中華人民共和國職業(yè)分類大典是(專業(yè)職業(yè)分類明細)
- 2025年新高考語文復(fù)習(xí) 文言文速讀技巧 考情分析及備考策略
- 2024年??谑羞x調(diào)生考試(行政職業(yè)能力測驗)綜合能力測試題及答案1套
- 一年級下冊數(shù)學(xué)口算題卡打印
- 2024年中科院心理咨詢師新教材各單元考試題庫大全-下(多選題部分)
- 真人cs基于信號發(fā)射的激光武器設(shè)計
評論
0/150
提交評論