硬件課程設(shè)計論文基于FPGA的數(shù)字時鐘設(shè)計_第1頁
硬件課程設(shè)計論文基于FPGA的數(shù)字時鐘設(shè)計_第2頁
硬件課程設(shè)計論文基于FPGA的數(shù)字時鐘設(shè)計_第3頁
硬件課程設(shè)計論文基于FPGA的數(shù)字時鐘設(shè)計_第4頁
硬件課程設(shè)計論文基于FPGA的數(shù)字時鐘設(shè)計_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、信息與控制工程學(xué)院硬件課程設(shè)計說明書基于fpga的數(shù)字時鐘設(shè)計學(xué)生學(xué)號: 學(xué)生姓名: 專業(yè)班級: 指導(dǎo)教師: 職 稱: 教授 起止日期: 2011.3.282011.4.15 吉林化工學(xué)院jilin institute of chemical technology硬件課程設(shè)計任務(wù)書一、設(shè)計題目:基于fpga的數(shù)字時鐘設(shè)計二、設(shè)計目的1掌握利用eda開發(fā)工具max+plusii進行可編程邏輯器件設(shè)計的方法; 2掌握用fpga進行計數(shù)器、譯碼器及l(fā)ed動態(tài)掃描顯示驅(qū)動電路設(shè)計的方法;3熟練掌握可編程邏輯器件的文本輸入(vhdl)層次化設(shè)計方法;4掌握利用max+plusii進行軟件仿真及對可編程邏

2、輯器件進行硬件下載的方法。三、設(shè)計任務(wù)及要求設(shè)計并實現(xiàn)數(shù)字鐘。下載芯片:epf10k10lc84(altera的flex10k系列芯片)。時鐘基本功能:1具有時、分、秒顯示,24小時循環(huán)計時功能;2具有時間校準(zhǔn)(調(diào)時/對時)功能??蓴U展其它功能。四、設(shè)計時間及進度安排設(shè)計時間共三周(11.3.2811.4.15),具體安排如下表:周安排設(shè) 計 內(nèi) 容設(shè)計時間第一周學(xué)習(xí)可編程邏輯器件開發(fā)工具max+plusii的使用及原理圖輸入設(shè)計方法,熟悉硬件電路(顯示及驅(qū)動電路),學(xué)習(xí)vhdl,設(shè)計時、分、秒模塊,并進行軟件仿真。11.3.28-11.4.01第二周學(xué)習(xí)可編程邏輯器件的文本輸入層次化設(shè)計方法

3、,設(shè)計數(shù)字鐘的譯碼、動態(tài)掃描及整點報時模塊,設(shè)計數(shù)字鐘頂層電路,下載實現(xiàn)數(shù)字時鐘的基本功能。11.4.04-11.4.08第三周實現(xiàn)基本要求之外的其它擴展功能;用protel軟件繪制整體硬件原理圖;撰寫并完成硬件課程設(shè)計說明書,測試硬件設(shè)計作品的功能,進行課程設(shè)計答辯。11.4.11-11.4.15五、指導(dǎo)教師評語及學(xué)生成績指導(dǎo)教師評語:年 月 日成績指導(dǎo)教師(簽字):目 錄硬件課程設(shè)計任務(wù)書i第1章 設(shè)計的硬件平臺及開發(fā)工具11.1 硬件平臺11.2 開發(fā)工具1第2章 數(shù)字時鐘的設(shè)計方案及fpga的頂層設(shè)計22.1 數(shù)字鐘整體設(shè)計方案22.1.1 數(shù)字鐘的功能22.1.2 硬件要求22.1.

4、3 引腳說明以及設(shè)計方案22.2 可編程邏輯器件fpga的頂層設(shè)計2第3章 數(shù)字時鐘的底層模塊設(shè)計43.1 秒模塊設(shè)計43.1.1 秒模塊vhdl程序43.1.2 秒模塊的仿真實現(xiàn)53.2 分模塊設(shè)計63.2.1 分模塊vhdl程序63.2.2 分模塊的仿真實現(xiàn)73.3 時模塊設(shè)計73.3.1 時模塊vhdl程序83.3.2 時模塊的仿真實現(xiàn)93.4 動態(tài)顯示掃描模塊設(shè)計93.4.1 動態(tài)顯示掃描模塊vhdl程序93.4.2 動態(tài)顯示掃描模塊的仿真實現(xiàn)103.5 段碼譯碼模塊設(shè)計113.5.1 段碼譯碼模塊vhdl程序113.5.2 段碼譯碼模塊的仿真實現(xiàn)123.6 整點報時模塊設(shè)計(發(fā)揮部分

5、)123.6.1 整點報時模塊vhdl程序123.6.2 整點報時模塊的仿真實現(xiàn)13第4章 數(shù)字時鐘的設(shè)計實現(xiàn)144.1數(shù)字時鐘的硬件設(shè)計過程144.2硬件下載過程144.2.1 接口設(shè)置144.2.2 器件編程的下載144.3 硬件電路連接154.3.1 硬件電路連接說明16結(jié) 論17參考文獻18附錄19第1章 設(shè)計的硬件平臺及開發(fā)工具1.1 硬件平臺本設(shè)計基于復(fù)雜可編程邏輯器件(cpld/fpga)設(shè)計并實現(xiàn)數(shù)字時鐘。采用altera公司的器件進行設(shè)計,開發(fā)調(diào)試時采用altera的fpga芯片flex10k10lc84,設(shè)計完成后下載生成數(shù)字鐘硬件于altera的cpld芯片epm7128

6、slc84中,實現(xiàn)數(shù)字鐘功能。利用altera可編程邏輯器件開發(fā)實驗系統(tǒng)進行設(shè)計。系統(tǒng)提供fpga/cpld下載板及相應(yīng)的其它硬件資源。時鐘的時間顯示采用6位led數(shù)碼管(動態(tài)掃描驅(qū)動方式),采用系統(tǒng)提供的1hz脈沖輸出作為時鐘的秒輸入。按鍵作為調(diào)準(zhǔn)時、分及秒清零的功能鍵。蜂鳴器和發(fā)光二極管用于產(chǎn)生整點時的聲光報時信號。1.2 開發(fā)工具利用altera的可編程邏輯器件開發(fā)工具max+plus,采用原理圖輸入的設(shè)計方法進行數(shù)字鐘的設(shè)計與調(diào)試。max+plus是一個集成的軟件開發(fā)平臺,提供了從設(shè)計輸入、編譯、器件適配、軟件仿真到器件下載的全部功能。圖1-1為工具環(huán)境。圖1-1 max+plusii

7、工具環(huán)境第2章 數(shù)字時鐘的設(shè)計方案及fpga的頂層設(shè)計2.1 數(shù)字鐘整體設(shè)計方案2.1.1 數(shù)字鐘的功能1)以24小時制顯示時、分、秒計數(shù); 2)時間清零,時設(shè)置,分設(shè)置功能;3)整點報時功能。2.1.2 硬件要求1)可編程邏輯器件主芯片:epf10k10lc84-4;2)顯示器件:采用六個八段led共陰極數(shù)碼管,以動態(tài)掃描方式顯示時間;3)時間設(shè)定與調(diào)準(zhǔn):三個按鍵用于調(diào)時、調(diào)分及啟動計時;4)采用蜂鳴器與發(fā)光二極管進行整點聲光報時;5)由晶振(cd4060)組成的脈沖發(fā)生電路提供數(shù)字鐘計時的秒脈沖輸入(1hz)和動態(tài)掃描驅(qū)動模塊輸入脈沖(頻率約為1khz)。2.1.3 引腳說明以及設(shè)計方案c

8、lk為秒脈沖輸入端,由晶振與分頻計數(shù)器(cd4060)組成的脈沖發(fā)生電路提供頻率為1hz的秒脈沖輸入信號;smclk為動態(tài)掃描控制模塊的輸入端,由脈沖發(fā)生電路輸入頻率約1khz的脈沖信號;hourset、minset和reset分別為時設(shè)置、分設(shè)置和時間清零輸入端,連接按鈕開關(guān);a、b、c、d、e、f、g、dp為顯示段碼輸出,接數(shù)碼管的段碼輸入(led7s6-len7s0);sel0、sel1、sel2接sn74ls138n譯碼器的輸入端;speaker為數(shù)字鐘的整點聲音報時輸出,接蜂鳴器進行整點聲音報時,lamp0、 lamp1和lamp2為數(shù)字鐘的報時燈光輸出,分別接三只led發(fā)光二極管,

9、進行整點報時發(fā)光。數(shù)字鐘電路原理圖見附錄。2.2 可編程邏輯器件fpga的頂層設(shè)計用頂層設(shè)計采用原理圖輸入設(shè)計、底層設(shè)計采用vhdl設(shè)計的原理圖與vhdl混合設(shè)計方法設(shè)計帶整點報時功能的數(shù)字鐘,所以此設(shè)計可分為頂層與底層設(shè)計,共分為六個模塊,即時模塊、分模塊、秒模塊、動態(tài)掃描控制模塊、段碼譯碼模塊和整點報時模塊。頂層電路設(shè)計原理圖如2-1所示。秒模塊主體為60進制的計數(shù)器,daout為向動態(tài)掃描控制模塊提供秒的個位和十位數(shù)據(jù)的信號。reset 為秒清零;enmin為分鐘進位,每60秒產(chǎn)生一個高電平的信號,作為分模塊的時鐘輸入;clk為秒模塊的時鐘輸入,接1hz脈沖信號;min_set為分鐘設(shè)置

10、,低電平是不影響秒模塊工作,當(dāng)它為高電平時,enmin信號會隨之產(chǎn)生一個和clk頻率相同的信號,達到調(diào)整分鐘的目的。分模塊主體為60進制的計數(shù)器,daout為向動態(tài)掃描控制模塊提供分的個位和十位數(shù)據(jù)的信號。enhour為分鐘進位,每60分產(chǎn)生一個高電平的信號,作為時模塊的時鐘輸入;秒計數(shù)到60時的進位輸出信號enhour1和分鐘調(diào)整輸入信號minset,經(jīng)或關(guān)系后接分的脈沖輸入端clk; clk1為時調(diào)整脈沖,接1hz脈沖; hour_set為時鐘設(shè)置,低電平是不影響分模塊工作,當(dāng)它為高電平時,enmin信號會隨之產(chǎn)生一個和clk頻率相同的信號,達到調(diào)整時的目的。時模塊為一個24進制的計數(shù)器,

11、daout為向動態(tài)掃描控制模塊提供秒的個位和十位數(shù)據(jù)的信號。分計數(shù)到60時的進位輸出信號enhour1和時調(diào)整輸入信號hourset,經(jīng)或關(guān)系后接時脈沖輸入端clk。daout為向動態(tài)掃描控制模塊提供時的個位和十位數(shù)據(jù)的信號。動態(tài)掃描模塊中smclk為動態(tài)掃描控制模塊的脈沖輸入,由外部脈沖發(fā)生電路提供,頻率約為1khz;sel0、sel1、sel2接外部38譯碼器74ls138的輸入端a、b、c(譯碼器輸出經(jīng)75451驅(qū)動led數(shù)碼管的位選端);sec6.0、min6.0、hour5.0分別為秒模塊、分模塊、時模塊計數(shù)段碼輸出控制信號。該模塊實現(xiàn)時間的動態(tài)掃描顯示控制。段碼譯碼模塊是將動態(tài)掃描

12、模塊輸出的bcd碼轉(zhuǎn)換成驅(qū)動數(shù)碼管所需要的信號。整點報時模塊用于產(chǎn)生整點時的led發(fā)光二極管彩燈和報時輸出。分模塊輸出的信號接入dain。整點聲音報時輸出信號speak接蜂鳴器輸入,信號lamp2.0控制整點時產(chǎn)生60秒的led發(fā)光二極管彩燈閃爍報時輸出信號。 圖2-1 頂層電路設(shè)計原理圖第3章 數(shù)字時鐘的底層模塊設(shè)計3.1 秒模塊設(shè)計圖3-1 秒模塊頂層設(shè)計原理圖3.1.1 秒模塊vhdl程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; entity sec isport(clk,reset

13、,min_set:in std_logic;-clk為1hz的秒脈沖輸入信號,reset為秒清零(復(fù)位)信號 -min_set為分鐘調(diào)整 enmin:out std_logic; -enmin為秒模塊進位輸出daout:out std_logic_vector(6 downto 0); -2n-160,n=7,27=64,分鐘用7位二進制數(shù)表示 -daout(6.4)為十位,daout(3.0)為個位,60循環(huán)計數(shù)end entity sec;architecture behave of sec is signal count:std_logic_vector(6 downto 0); -定義

14、內(nèi)部計數(shù)節(jié)點,60循環(huán)計數(shù) signal enmin1,enmin2:std_logic; -enmin為60秒產(chǎn)生的進位,enmin2為調(diào)分鍵產(chǎn)生的向分模塊的進位begindaout<=count; enmin2<=(min_set and clk); enmin<=(enmin1 or enmin2); -60秒鐘到和調(diào)分鍵均向分模塊產(chǎn)生進位脈沖process(clk,reset,min_set)beginif(reset='0')then count<="0000000" -檢測秒模塊的1hz脈沖上升沿elsif(clk'

15、;event and clk='1')then if(count(3 downto 0)="1001")then -秒的個位是否到“9”if count(6 downto 4)="101"then -秒各位到“9”后,十位計數(shù)到“5”enmin1<='1' -秒模塊的60秒進位輸出enmin置“1”,向分模塊產(chǎn)生進位count<="0000000" -秒計數(shù)值“0000000”(零秒)elsecount<=count+7; -秒各位到“9”后,十位計數(shù)沒到“5”,則加“7”變?yōu)椤?”,

16、同時向十位進位end if;elsecount<=count+1; -秒個位沒計到“9”時,秒計數(shù)值加“1”enmin1<='0' -秒模塊的60秒進位輸出enmin1置“0”,不向分模塊進位end if;end if;end process;end behave; 3.1.2 秒模塊的仿真實現(xiàn)由圖3-2可以看出 clk輸入脈沖信號時,動態(tài)掃描控制模塊daout和count開始啟動計數(shù),此時分設(shè)置min_set為低電平。在570.0ns時將min_set設(shè)置為高電平,此刻分進位enmin產(chǎn)生與clk相同頻率的信號脈沖,當(dāng)在593.0.0ns時,min_set為低電平

17、,那么enmin也為低電平(無脈沖)。當(dāng)723.0ns時,清零reset設(shè)置為低電平,此刻daout和count都將清零,當(dāng)735.0ns時reset恢復(fù)為高電平,daout和coutn兩者重新開始計數(shù)。605.0ns時daout計數(shù)到六十,enmin產(chǎn)生脈沖后daout和count清零并重新開始計數(shù)。如上所述功能實現(xiàn)。圖3-2 秒模塊仿真圖3.2 分模塊設(shè)計圖3-3 分模塊頂層設(shè)計原理圖3.2.1 分模塊vhdl程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity min ispor

18、t(clk,clk1,hour_set:in std_logic; -clk為分鐘模塊的脈沖輸入信號,接秒模塊的進位輸出 -clk1接秒脈沖輸入,hour_set為小時調(diào)整enhour:out std_logic; -enhour為分鐘模塊的進位輸出daout:out std_logic_vector(6 downto 0);-2n-160,n=7,27=64,分鐘用7位二進制數(shù)表示-daout(6.4)為十位,daout(3.0),60循環(huán)計數(shù)end entity min;architecture behave of min issignal count:std_logic_vector(6

19、 downto 0);-定義內(nèi)部計數(shù)節(jié)點,60循環(huán)計數(shù)signal enhour1,enhour2:std_logic;-enhour1為60分鐘產(chǎn)生的進位。enhour2為調(diào)時鍵的脈沖begindaout<= count;enhour2<=(hour_set and clk1);enhour<=(enhour1 or enhour2); -60分鐘到和調(diào)時鍵均向小時模塊產(chǎn)生進位脈沖process(clk)beginif(clk'event and clk='1')then -檢測分鐘模塊的脈沖上升沿if(count(3 downto 0)="

20、;1001")then -分鐘的各位是否到“9”if count(6 downto 4)="101"then -分鐘各位到“9”后,十位計數(shù)到“5”enhour1<='1' -分鐘模塊的60分鐘進位輸出enhour1置“1”,向時模塊產(chǎn)生進位count<="0000000" -分鐘計數(shù)值回零“0000000”(零分)elsecount<=count+7; -分鐘各位到“9”后,十位計數(shù)沒到“5”,則“7”變?yōu)椤?”,同時向十位進位end if;elsecount<=count+1; -分鐘各位沒計到“9”

21、時,分鐘計數(shù)值加“1”enhour1<='0' -分鐘模塊的60分鐘進位輸出enhour1置“0”,不向時模塊進位end if;end if;end process;end behave; 3.2.2 分模塊的仿真實現(xiàn)由圖3-4可以看出,當(dāng)clk輸入脈沖信號時,態(tài)掃描控制模塊daout和count開始啟動計數(shù),這時時進位enhour為低電平,且時設(shè)置hour_set也為低電平。在1.05us時,將hour_set設(shè)置為高電平,此時enhour產(chǎn)生與clk1相同的頻率信號。當(dāng)1.09us時,hour_set恢復(fù)低電平,enhour也變?yōu)榈碗娖剑o脈沖)。1.21us時,da

22、out計數(shù)到60,enhour產(chǎn)生脈沖,daout和count清零并將重新計數(shù)。如上所述功能實現(xiàn)。圖3-4 分模塊仿真圖3.3 時模塊設(shè)計圖3-5 時模塊頂層設(shè)計原理圖3.3.1 時模塊vhdl程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hour isport(clk:in std_logic;daout:out std_logic_vector(5 downto 0);- 2n-124,n=6,26 =32,小時用6位二進制數(shù)表示-daout(5.4)為十位,daout(3

23、.0)為個位,24循環(huán)計數(shù)end entity hour;architecture behave of hour issignal count:std_logic_vector(5 downto 0);-定義內(nèi)部計數(shù)節(jié)點,24循環(huán)計數(shù)begindaout<=count;process(clk)beginif(clk'event and clk='1')then -檢測小時模塊的脈沖上升沿if(count(3 downto 0)="1001")then -小時的各位是否到“9”if(count<16#23#)then count<=c

24、ount+7; -小時各位到“9”后,計數(shù)沒到“23”,則加“7”變?yōu)椤?”,同時向十位進位else count<="000000"-小時各位到“9”后,如果計數(shù)值大于“23”,則置小時為“零”end if;elsif(count<16#23#)then count<=count+1; -小時個位沒計到“9”且計數(shù)沒到“23”時,加“1”else count<="000000" -小時計數(shù)已到“23”時,計數(shù)值回零“000000”(零時)end if;end if;end process;end behave;3.3.2 時模塊的

25、仿真實現(xiàn)由圖3-6可以看出,當(dāng)clk輸入脈沖信號時,動態(tài)掃描控制模塊daout和count開始啟動計數(shù)。在970.0ns時,daout和count達到24,并且從重新開始計數(shù)。如上所述功能實現(xiàn)。圖3-6 時模塊仿真圖3.4 動態(tài)顯示掃描模塊設(shè)計圖3-7 動態(tài)顯示掃描模塊頂層設(shè)計原理圖3.4.1 動態(tài)顯示掃描模塊vhdl程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity selmk isport(clk1:in std_logi

26、c; -動態(tài)掃描輸入脈沖sec,min:in std_logic_vector(6 downto 0); -7位二進制數(shù)表示的秒、分計數(shù)輸入hour:in std_logic_vector(5 downto 0); -6位二進制數(shù)表示的小時計數(shù)輸入daout:out std_logic_vector(3 downto 0); -4位十進制碼計數(shù)輸入dp:out std_logic; -時、分、秒間的間隔“點”輸出sel:out std_logic_vector(2 downto 0); -3位數(shù)碼管位選輸出,接外部3-8譯碼器輸出,譯碼輸出再經(jīng)驅(qū)動接數(shù)碼管共陰極端end entity selm

27、k;architecture behave of selmk issignal count:std_logic_vector(2 downto 0); -定義內(nèi)部計數(shù)節(jié)點,六進制循環(huán)計數(shù)(6個數(shù)碼管顯示)beginsel<=count;process(clk1)beginif(clk1'event and clk1='1')then -檢測動態(tài)掃描輸入脈沖上升沿if(count>="101")then count<="000" else count<=count+1; -“000101”六進制循環(huán)計數(shù)end

28、 if;end if;case count iswhen"000"=>daout<=sec(3 downto 0);dp<='0'-“000”時選擇“秒的各位”計數(shù)值顯示,點不亮when"001"=>daout(3)<='0'daout(2 downto 0)<=sec(6 downto 4);dp<='0' -“001”時選擇“秒的各位”計數(shù)值顯示,點不亮when"010"=>daout<=min(3 downto 0);dp<

29、;='1'-“010”時選擇“分的各位”計數(shù)值顯示,點亮when"011"=>daout(3)<='0'daout(2 downto 0)<=min(6 downto 4);dp<='0'-“011”時選擇“分的各位”計數(shù)值顯示,點不亮when"100"=>daout<=hour(3 downto 0);dp<='1'-“100”時選擇“時的各位”計數(shù)值顯示,點亮when others=>daout(3 downto 2)<="

30、00"daout(1 downto 0)<=hour(5 downto 4);dp<='0'-“101”時選擇“時的各位”計數(shù)值顯示,點不亮end case;end process;end behave;3.4.2 動態(tài)顯示掃描模塊的仿真實現(xiàn)由圖3-8可以看出,當(dāng)clk1輸入脈沖信號時,隨著信號的變化,sec的十位、個位,min的十位、個位,hour的十位、個位分別送進了daout中。dp也隨著信號的變化和時間的變化控制時鐘點的閃爍。如上所述功能實現(xiàn)。圖3-8 動態(tài)顯示掃描模塊頂層設(shè)計原理圖3.5 段碼譯碼模塊設(shè)計圖3-9 段碼譯碼頂層設(shè)計原理圖3.5.1

31、 段碼譯碼模塊vhdl程序library ieee;use ieee.std_logic_1164.all;entity decl7s isport(num:in std_logic_vector(3 downto 0);led7s:out std_logic_vector(6 downto 0);end entity decl7s;architecture behave of decl7s isbeginprocess(num)begincase num is -abcdefg -字形when"0000"=>led7s<="1111110"

32、when"0001"=>led7s<="0110000"when"0010"=>led7s<="1101101"when"0011"=>led7s<="1111001"when"0100"=>led7s<="0110011"when"0101"=>led7s<="1011011"when"0110"=>led7s

33、<="1011111"when"0111"=>led7s<="1110000"when"1000"=>led7s<="1111111"when"1001"=>led7s<="1111011"when others=>null;end case;end process;end behave;3.5.2 段碼譯碼模塊的仿真實現(xiàn)由圖3-10可以看出,此模塊是將掃描模塊的dout信號輸出的bcd碼轉(zhuǎn)換為數(shù)碼管可以顯示

34、的段碼。如上所述功能實現(xiàn)。圖 3-10段碼譯碼模塊時序仿真圖3.6 整點報時模塊設(shè)計(發(fā)揮部分)圖3-11 整點報時模塊頂層設(shè)計原理圖3.6.1 整點報時模塊vhdl程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity bsmk isport(clk:in std_logic; -脈沖輸入,可接1hz秒脈沖輸入,用于整點聲報時發(fā)出間斷報時響聲dain:in std_logic_vector(6 downto 0); -分鐘模塊計數(shù)輸入speak:out std_logic; -整點聲報

35、時輸出,外接蜂鳴器lamp:out std_logic_vector(2 downto 0);-整點光報時輸出,可外接紅、藍(lán)、黃三個發(fā)光二極管end entity bsmk;architecture behave of bsmk issignal count:std_logic_vector(1 downto 0); -定義內(nèi)部計數(shù)節(jié)點beginprocess(clk)beginspeak<=count(0)and clk; -整點時進行聲報時if(clk'event and clk='1')thenif(dain="0000000")then

36、 -“0000000”(“零分”)時,即為整點if(count>"10")then count<="01"else count<=count+1;end if;if(count="01")then lamp<="001" -整點光報時,可接紅色發(fā)光二極管elsif(count="10")then lamp<="010" -整點光報時,可接綠色發(fā)光二極管elsif(count="11")then lamp<="1

37、00" -整點光報時,可接黃色發(fā)光二極管end if;else lamp<="000" count(0)<='0' -沒到整點時,無聲光報時輸出end if;end if;end process;end behave;3.6.2 整點報時模塊的仿真實現(xiàn)clk為脈沖輸入信號,lamp表示報警燈的信號顯示,speak表示蜂鳴器報警信號顯示。由圖3-12可以看出,當(dāng)clk輸入脈沖信號時,dain并沒有信號產(chǎn)生。而count開始啟動計數(shù),在40.0ns時,報時speak開始報警,lamp閃爍顯示。在210.0ns時,dain變?yōu)?,speak和

38、lamp都變?yōu)榈碗娖剑ú辉賵缶?。由此可以看出在dain為零時,分鐘即為零。如上所述功能實現(xiàn)。圖3-12 整點報時模塊仿真圖第4章 數(shù)字時鐘的設(shè)計實現(xiàn)4.1數(shù)字時鐘的硬件設(shè)計過程(1) 開發(fā)環(huán)境的打開 單擊“開始” “所有程序” “max+plus ii 10.0 baseline” “max+plus ii 10.0 baseline”(2) 建立文件 單擊“max+plus ii” “gnaphic editor”來建立新的文件,輸入各模塊原理圖、引腳、原件,定義后連接原理圖和原件以及引腳,單擊“保存”“編譯”進行文件的編譯錯誤檢查。4.2硬件下載過程4.2.1 接口設(shè)置在當(dāng)前文件下單擊“

39、file” “project” “set project to current file”指定文件,點擊“max+plus ii” “programmer”彈出下載對話框如圖4-1,后選擇“options”“hardware setup”在對話框中選擇“byteblaster(mv)”后單擊確定按鈕完成設(shè)置。圖4-1 接口設(shè)置對話框4.2.2 器件編程的下載接口設(shè)置成功以后,單擊“jiag” “multi-device jiag chain setup”進入器件編程選擇對話框,如圖4-2,此時點擊“select programming file”找到文件名為“dingcengshejitu.sof”的編程文件并按“add”添加到列表后點擊“ok”退出對話框,完成設(shè)置。此時檢查pc機與硬件箱的連接情況,確認(rèn)數(shù)據(jù)線連接無誤后點擊“programmer”對話框中的“configure”進行對器件編程的下載,當(dāng)進度條達到100的時候會提示下載成功。圖 4-2 器件編程選擇對話框4.3 硬件電路連接圖 4-3 引腳連接示意圖編程下載成功后單擊軟件中的“max+plus ii” “floorplan e

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論