




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、設(shè) 計 報 告課程名稱 在系統(tǒng)編程技術(shù) 任課教師 查長軍 設(shè)計題目 EDA數(shù)字時鐘 班級 11通信1班 姓名 楊康健 學(xué)號 1105021001 日期 2014-6-28 目錄一、設(shè)計要求1、穩(wěn)定的顯示時、分、秒。2、當(dāng)電路發(fā)生走時誤差時,要求電路有校時功能。3、電路有整點報時功能。報時聲響為四低一高,最后一響高音正好為整點。二、選擇方案1、設(shè)計思路根據(jù)系統(tǒng)設(shè)計要求,系統(tǒng)設(shè)計采用自頂向下設(shè)計方法,由時鐘分頻部分、計時部分、按鍵部分調(diào)時部分和顯示部分五個部分組成。這些模塊都放在一個頂層文件中。1)時鐘計數(shù):首先下載程序進(jìn)行復(fù)位清零操作,電子鐘從00:00:00計時開始。sethour可以調(diào)整時鐘
2、的小時部分, setmin可以調(diào)整分鐘,步進(jìn)為1。由于電子鐘的最小計時單位是1s,因此提供給系統(tǒng)的內(nèi)部的時鐘頻率應(yīng)該大于1Hz,這里取100Hz。CLK端連接外部10Hz的時鐘輸入信號clk。對clk進(jìn)行計數(shù),當(dāng)clk=10時,秒加1,當(dāng)秒加到60時,分加1;當(dāng)分加到60時,時加1;當(dāng)時加到24時,全部清0,從新計時。用6位數(shù)碼管分別顯示“時”、“分”、“秒”,通過OUTPUT( 6 DOWNTO 0 )上的信號來點亮指定的LED七段顯示數(shù)碼管。2) 時間設(shè)置:手動調(diào)節(jié)分鐘、小時,可以對所設(shè)計的時鐘任意調(diào)時間,這樣使數(shù)字鐘真正具有使用功能。我們可以通過實驗板上的鍵7和鍵4進(jìn)行任意的調(diào)整,因為我
3、們用的時鐘信號均是1HZ的,所以每LED燈變化一次就來一個脈沖,即計數(shù)一次。3)清零功能:reset為復(fù)位鍵,低電平時實現(xiàn)清零功能,高電平時正常計數(shù)??梢愿鶕?jù)我們自己任意時間的復(fù)位。2、設(shè)計原理系統(tǒng)框圖由六個模塊組成,分別為:秒、分、時計數(shù)模塊,整點報時模塊,LED動態(tài)顯示掃描模塊,調(diào)時控制模塊組成。其工作原理是:基準(zhǔn)脈沖輸入信號同時加到秒、分、時、分隔符的脈沖輸入端,采用并行計數(shù)的方式,秒的進(jìn)位接到分的使能端上,秒的使能借到分隔符的使能上,分得接到時的使能端上,完成秒、分、時和分隔符的循環(huán)計數(shù)。整點報時是根據(jù)分的A、B輸出同時為0時,整點報時模塊輸出高電平控制報時。LED顯示掃描模塊根據(jù)輸入
4、的掃描信號CKDSP輪流選通秒、分、時、分隔符的8位八段數(shù)碼管,LED顯示譯碼器完成計數(shù)器輸出的BCD的譯碼。三細(xì)化框圖根據(jù)自頂向下的方法以及各功能模塊的的功能實現(xiàn)上述設(shè)計方案應(yīng)系統(tǒng)細(xì)化框圖:數(shù)字時鐘控制單元時調(diào)整分調(diào)整使能端信號CLK信號時顯示分顯示秒顯示24進(jìn)制60進(jìn)制60進(jìn)制LED顯示整點報時花樣顯示模塊化設(shè)計(1)秒計時模塊秒計時模塊由一個60位計數(shù)器為主體構(gòu)成,其輸入輸出端口組成為:Clk:計時時鐘信號Reset:異步清零信號Setmin:分鐘設(shè)置信號Enmin:使能輸出信號Daout6:0:BCD碼輸出(2)分計時模塊分計時模塊由一個60位計數(shù)器為主體構(gòu)成,其輸入輸出端口組成為:C
5、lk、clk1:計時時鐘信號Reset:異步清零信號Sethour:小時設(shè)置信號Enmin:使能輸出信號Daout6:0:BCD碼輸出(3)時計時模塊時計時模塊由24位計數(shù)器為主體構(gòu)成,其輸入輸出端口組成為:Clk:計時時鐘信號Reset:異步清零信號Daout6:0:BCD碼輸出(4)顯示模塊系統(tǒng)時間輸出由六個七段數(shù)碼管顯示。顯示的數(shù)據(jù)是各計時模塊給出的BCD碼。(5)調(diào)時控制模塊該模塊主要用于調(diào)節(jié)時、分顯示,用于“對表”。(6)整點報時模塊在時鐘整點的時候產(chǎn)生揚(yáng)聲器驅(qū)動信號。由時鐘計時模塊中分鐘的進(jìn)行信號進(jìn)行控制。當(dāng)contr_en 為高電平時,將輸入信號clk 送到輸出端speak 用于
6、驅(qū)動揚(yáng)聲器,同時在clk 的控制下,輸出端lamp2.0進(jìn)行循環(huán)移位。輸出控制模塊有揚(yáng)聲器控制器子模塊組成。2、頂層文件生成前面已經(jīng)完成了電子時鐘電路的各個組成部分的設(shè)計,下面把這些組成部分組裝起來,形成完整的總體設(shè)計。該電子時鐘的命名為clock,其外部端口如右圖所示。 各個輸入/ 輸出端口的作用如下: (1) clk 為外部時鐘信號,其頻率為1Hz,reset 為異步清零信號. (2) sethour 和setmin分別為調(diào)時調(diào)分脈沖輸入信號 ,當(dāng)en_set為高電平時,每來一個sethour 脈沖或setmin脈沖,時、分輸出將分別加1; (3) second6.0為秒的個位和十位BCD
7、 碼輸出,min60為分鐘的個位和十位BCD 碼輸出,hour6.0為小時的個位和十位BCD 碼輸出,它們最終中用來驅(qū)動七段數(shù)碼管,lamp2.0為花樣顯示輸出信號,speak 為整點報時揚(yáng)聲器驅(qū)動信號 四、編寫程序、仿真和分析1、秒計數(shù)器1)VHDL語言描述程序見附錄2)秒計數(shù)器的仿真波形圖3)波形分析利用60進(jìn)制計數(shù)器完成00到59的循環(huán)計數(shù)功能,當(dāng)秒計數(shù)至59時,再來一個時鐘脈沖則產(chǎn)生進(jìn)位輸出,即enmin=1;reset作為復(fù)位信號低電平有效,即高電平時正常循環(huán)計數(shù),低電平清零。因為這種60進(jìn)制的VHDL語言是很好寫的,它并不復(fù)雜,再說我們必須要學(xué)會這些基本的硬件語言的描寫。2、分鐘計
8、數(shù)器1)VHDL語言描述程序見附錄2)分鐘計數(shù)器的仿真波形圖3)波形分析小時計數(shù)模塊利用24進(jìn)制計數(shù)器,通過分鐘的進(jìn)位信號的輸入可實現(xiàn)從00到23的循環(huán)計數(shù)。 3、小時計數(shù)器1)VHDL語言描述程序見附錄2)小時計數(shù)器的仿真波形圖3)波形分析小時計數(shù)模塊利用24進(jìn)制計數(shù)器,通過分鐘的進(jìn)位信號的輸入可實現(xiàn)從00到23的循環(huán)計數(shù)。4、整點報時報警模塊 1)VHDL語言描述程序見附錄2)整點報時模塊仿真波形圖1) 波形分析由圖知對于整點報時模塊,當(dāng)分鐘計數(shù)至59時來一個時鐘脈沖則產(chǎn)生一個進(jìn)位信號,分鐘計數(shù)到00,此時產(chǎn)生報警信號持續(xù)一分鐘。當(dāng)有時鐘脈沖時lamp顯示燈就閃爍輪續(xù)點亮。五、全系統(tǒng)聯(lián)調(diào)1
9、、數(shù)字時鐘系統(tǒng)原理圖2、數(shù)字時鐘系統(tǒng)波形圖仿真六、硬件調(diào)試說明1)時、分、秒計時器 時計時器為一個24進(jìn)制計數(shù)器,分、秒計時器均為60進(jìn)制計數(shù)器。當(dāng)秒計時器接受到一個秒脈沖時,秒計數(shù)器開始從1計數(shù)到60,此時秒顯示器將顯示00、01、02、.、59、00;每當(dāng)秒計數(shù)器數(shù)到00時,就會產(chǎn)生一個脈沖輸出送至分計時器,此時分計數(shù)器數(shù)值在原有基礎(chǔ)上加1,其顯示器將顯示00、01、02、.、59、00;每當(dāng)分計數(shù)器數(shù)到00時,就會產(chǎn)生一個脈沖輸出送至?xí)r計時器,此時時計數(shù)器數(shù)值在原有基礎(chǔ)上加1,其顯示器將顯示00、01、02、.、23、00。即當(dāng)數(shù)字鐘運(yùn)行到23點59分59秒時,當(dāng)秒計時器在接受一個秒脈沖
10、,數(shù)字鐘將自動顯示00點00分00秒。2)校時電路 當(dāng)開關(guān)撥至校時檔時,電子鐘秒計時工作,通過時、分校時開關(guān)分別對時、分進(jìn)行校對,開關(guān)每按1次,與開關(guān)對應(yīng)的時或分計數(shù)器加1,當(dāng)調(diào)至需要的時與分時,撥動reset開關(guān),電子鐘從設(shè)置的時間開始往后計時。結(jié)論經(jīng)硬件調(diào)試,系統(tǒng)可完成計時,整點報時以及清零等預(yù)定功能,此實驗基本成功。八、課程總結(jié)本次課程設(shè)計整個過程中,我的最大體會就是:對知識復(fù)習(xí)的重要性。在本次的實驗設(shè)計中,一開始做起來也很不順手,甚至不知如何下手,印象里非常簡單的電路,到了設(shè)計出來時才覺得不是易事,主要原因是對相關(guān)應(yīng)用軟件的不熟悉,這提醒我對學(xué)過的知識要時常復(fù)習(xí),加深記憶,熟練運(yùn)用。還
11、有值得注意的是要把從書本上學(xué)到的知識和實際聯(lián)系起來,這不論對我們以后的學(xué)習(xí)還是就業(yè),都會起到很大的促進(jìn)和幫助。通過本次課程設(shè)計,鞏固了我們以前學(xué)過的專業(yè)知識,使我們對數(shù)字系統(tǒng)結(jié)構(gòu)也有了更進(jìn)一步的了解與認(rèn)識,同時對數(shù)據(jù)庫軟件技術(shù),語言等系列知識都有了一定的了解與認(rèn)識。使用技術(shù)開發(fā)頁面的能力也有了提高,也使我們把理論與實踐從正真意義上結(jié)合了起來,考驗了我們的動手能力和查閱相關(guān)資料的能力,還有整合材料的能力。這些都是我們在日后的工作學(xué)習(xí)中十分重要的能力。最后,感謝查老師這段時間的悉心教導(dǎo)。九、參考文獻(xiàn):1潭會生,張昌凡.EDA技術(shù)及應(yīng)用.西安電子科技大學(xué)出版社,2001.92李洋. EDA技術(shù)使用教
12、程.機(jī)械工業(yè)出版社,2002.33趙剛.EDA技術(shù)簡明教程.成都:四川大學(xué)出版社,2004.6附 錄121、秒計數(shù)單元代碼LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY second ISPORT(clk,reset,setmin:IN STD_LOGIC;enmin:OUT STD_LOGIC;daout:out std_logic_vector(6 downto 0);END entity second;ARCHITECTURE fun OF second ISSIGNAL co
13、unt:STD_LOGIC_VECTOR(6 downto 0);SIGNAL enmin_1,enmin_2:STD_LOGIC;BEGINdaout=count;enmin_2=(setmin and clk);enmin=(enmin_1 or enmin_2);process(clk,reset,setmin)beginif(reset=0) then count=0000000;elsif(clkevent and clk=1)thenif(count(3 downto 0)=1001)thenif(count16#60#)thenif(count=1011001)thenenmin
14、_1=1;count=0000000;elsecount=count+7;end if;elsecount=0000000;end if;elsif(count16#60#)thencount=count+1;enmin_1=0 after 100 ns;elseend if;end if;end process;end fun ;2、分計數(shù)單元代碼LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY minute ISPORT(clk,clk1,reset,sethour:IN STD_
15、LOGIC;enhour:OUT STD_LOGIC;daout:out std_logic_vector(6 downto 0);END entity minute;ARCHITECTURE fun OF minute ISSIGNAL count:STD_LOGIC_VECTOR(6 downto 0);SIGNAL enhour_1,enhour_2:STD_LOGIC;BEGINdaout=count;enhour_2=(sethour and clk1);enhour=(enhour_1 or enhour_2);process(clk,reset,sethour)beginif(r
16、eset=0)thencount=0000000;elsif(clkevent and clk=1)thenif(count(3 downto 0)=1001)thenif(count16#60#)thenif(count=1011001)thenenhour_1=1;count=0000000;ELSEcount=count+7;end if;elsecount=0000000;end if;elsif(count16#60#)thencount=count+1;enhour_1=0after 100 ns;elsecount=0000000;end if;end if;end proces
17、s;END fun;3、時計數(shù)單元代碼LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY hour ISPORT(clk,reset:IN STD_LOGIC;daout:out std_logic_vector(5 downto 0);END entity hour;ARCHITECTURE fun OF hour ISSIGNAL count:STD_LOGIC_VECTOR(5 downto 0);BEGINdaout=count;process(clk,reset)beginif
18、(reset=0)thencount=000000;elsif(clkevent and clk=1)thenif (count(3 downto 0)=1001)thenif(count=16#23#)thencount=count+7;elsecount=000000;end if;elsif(count16#23#)thencount=count+1;elsecount=000000;end if;end if;end process;END fun;4、顯示單元代碼LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_u
19、nsigned.all;ENTITY deled ISPORT(num:IN std_logic_vector(3 downto 0);led:OUT std_logic_vector(6 downto 0);end deled;ARCHITECTURE fun OF deled ISBEGINled=1111110when num=0000else0110000when num=0001else1101101when num=0010else1111001when num=0011else0110011when num=0100else1011011when num=0101else1011
20、111when num=0110else1110000when num=0111else1111111when num=1000else1111011when num=1001else1110111when num=1010else0011111when num=1011else1001110when num=1100else0111101when num=1101else1001111when num=1110else1000111when num=1111;END fun;5、調(diào)時控制單元代碼LIBRARY ieee;use ieee.std_logic_1164.all;use ieee
21、.std_logic_unsigned.all;use ieee.std_logic_arith.all;ENTITY seltime ISPORT(clk1,reset:IN STD_LOGIC;sec,min:IN STD_LOGIC_VECTOR(6 downto 0);hour:in std_logic_vector(5 downto 0);daout:OUT STD_LOGIC_vector(3 downto 0);dp:OUT std_LOGIC;sel:out std_logic_vector(2 downto 0);END seltime;ARCHITECTURE fun OF
22、 seltime ISSIGNAL count:STD_LOGIC_vector(2 downto 0);BEGINsel=count;process(clk1,reset)beginif(reset=0)thencount=101)thencount=000;elsecountdaout=sec(3 downto 0);dpdaout(3)=0;daout(2 downto 0)=sec(6 downto 4);dpdaout=min(3 downto 0);dpdaout(3)=0;daout(2 downto 0)=min(6 downto 4);dpdaout=hour(3 downt
23、o 0);dpdaout(3 downto 2)=00;daout(1 downto 0)=hour(5 downto 4);dp=0;end case;end process;end fun;6、整點報時單元代碼LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY alert ISPORT(clk:IN STD_LOGIC;dain:IN STD_LOGIC_VECTOR (6 DOWNTO 0);speak:OUT STD_LOGIC;lamp:OUT STD_LOGIC_VECTOR
24、 (2 DOWNTO 0);END alert;ARCHITECTURE fun OF alert ISsignal coun:std_logic_vector (1 downto 0);signal count1:std_logic_vector (1 downto 0);BEGINspeaker:process(clk)beginspeak=10)thencount1=00;elsecount1=count1+1;end if;end if;end if;end process speaker;lamper:process(clk)beginif(rising_edge(clk)theni
25、f(coun=10)thenif(coun=00)thenlamp=001;elsif(coun=01)thenlamp=010;elsif(coun=10)thenlamp=100;end if;coun=coun+1;elsecoun=00;end if;end if;end process lamper;END fun;7、頂層代碼library ieee;use ieee.std_logic_1164.all;entity clock_top isport(clk,reset,setmin,sethour,clkdsp:in std_logic;speaker:out std_logi
26、c;lamp:out std_logic_vector(2 downto 0);sel:out std_logic_vector(2 downto 0);a,b,c,d,e,f,g,dpout:out std_logic);end clock_top;architecture a of clock_top isCOMPONENT secondPORT(clk,reset,setmin:IN STD_LOGIC;daout:out std_logic_vector(6 downto 0);enmin:OUT STD_LOGIC);END COMPONENT;COMPONENT minutePOR
27、T(clk,clk1,reset,sethour:IN STD_LOGIC;enhour:OUT STD_LOGIC;daout:out std_logic_vector(6 downto 0);END COMPONENT;COMPONENT hourPORT(clk,reset:IN STD_LOGIC;daout:out std_logic_vector(5 downto 0);END COMPONENT;COMPONENT alertPORT(clk:IN STD_LOGIC;dain:in std_logic_vector(6 downto 0);lamp:out std_logic_vector(2 downto 0);speak:OUT STD_LOGIC);END COMPONENT;COMPONENT seltimePORT(clk1,reset:IN STD_LOGIC;sec,min:in std_logic_vector(6 downto 0);hour:in std_logic_vector(5 downto 0);dp:out std_logic;daout:out std_logic_vector(3 downto 0);sel:OUT STD_LOGIC_vector(2 down
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 木材定金合同范本
- 會計臨時勞務(wù)合同范本
- 勞務(wù)派遣合同范本購買
- 協(xié)議證明合同范本
- 業(yè)委會與物業(yè)委托合同范本
- 別墅規(guī)劃合同范本
- 區(qū)域保護(hù)合同范本
- 農(nóng)村房子修繕承包合同范本
- 公園門衛(wèi)服務(wù)合同范本
- 包裝費(fèi)合同范本
- 數(shù)字化轉(zhuǎn)型中數(shù)據(jù)底座湖倉一體化
- 典范英語8-1-刺猬女孩艾蜜
- 統(tǒng)編版五年級下冊道德與法治全冊優(yōu)秀課件
- 《教育管理學(xué)》課件
- 水平井套內(nèi)不動管柱滑套多段壓裂工藝技術(shù)全解課件
- 凈水設(shè)備技術(shù)參數(shù)要求
- 腦血管造影護(hù)理課件
- 稱呼禮儀精品課件
- 課題申報講座課件
- 系統(tǒng)科學(xué)與系統(tǒng)工程的理論基礎(chǔ)
- 思想道德與法治課件:第四章 第二節(jié) 社會主義核心價值觀的顯著特征
評論
0/150
提交評論