版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 數(shù)字秒表設(shè)計</b></p><p> 專 業(yè): 自動化 </p><p> 班級學(xué)號: 509</p><p> 姓 名: </p><p> 2011年 6 月14日</p><p><b> 目錄</b>&l
2、t;/p><p> 數(shù)字秒表設(shè)計實(shí)驗(yàn)任務(wù)書2</p><p> 一、設(shè)計實(shí)驗(yàn)?zāi)康模?</p><p> 二、設(shè)計實(shí)驗(yàn)說明及要求:2</p><p> 三、數(shù)字秒表組成及功能:2</p><p> 四、系統(tǒng)硬件要求:2</p><p> 五、設(shè)計內(nèi)容及步驟:3</p>
3、;<p><b> 六、硬件實(shí)現(xiàn)3</b></p><p><b> 實(shí)驗(yàn)報告3</b></p><p> 一、數(shù)字秒表頂層設(shè)計3</p><p> 二、數(shù)字秒表內(nèi)部設(shè)計4</p><p><b> 1、分頻器4</b></p>
4、<p> 2、十進(jìn)制計數(shù)器5</p><p> 3、六進(jìn)制計數(shù)器6</p><p> 4、二十四進(jìn)制計數(shù)器8</p><p> 5、數(shù)據(jù)選擇和數(shù)碼管選擇模塊9</p><p> 6、數(shù)碼管驅(qū)動模塊:10</p><p> 三、數(shù)字秒表仿真波形11</p><p>
5、;<b> 四、硬件驗(yàn)證12</b></p><p><b> 五、實(shí)驗(yàn)總結(jié)12</b></p><p> 數(shù)字秒表設(shè)計實(shí)驗(yàn)任務(wù)書</p><p><b> 一、設(shè)計實(shí)驗(yàn)?zāi)康模?lt;/b></p><p> 在MAX+plusII軟件平臺上,熟練運(yùn)用VHDL語言,完成
6、數(shù)字時鐘設(shè)計的軟件編程、編譯、綜合、仿真,使用EDA實(shí)驗(yàn)箱,實(shí)現(xiàn)數(shù)字秒表的硬件功能。</p><p> 二、設(shè)計實(shí)驗(yàn)說明及要求:</p><p> 1、數(shù)字秒表主要由:分頻器、掃描顯示譯碼器、一百進(jìn)制計數(shù)器、六十進(jìn)制計數(shù)器(或十進(jìn)制計數(shù)器與6進(jìn)制計數(shù)器)、十二進(jìn)制計數(shù)器(或二十四進(jìn)制計數(shù)器)電路組成。在整個秒表中最關(guān)鍵的是如何獲得一個精確的100HZ計時脈沖,除此之外,數(shù)字秒表需有清零
7、控制端,以及啟動控制端、保持保持,以便數(shù)字時鐘能隨意停止及啟動。</p><p> 2、數(shù)字秒表顯示由時(12或24進(jìn)制任選)、分(60進(jìn)制)、秒(60進(jìn)制)、百分之一秒(一百進(jìn)制)組成,利用掃描顯示譯碼電路在八個數(shù)碼管顯示。</p><p> 3、能夠完成清零、啟動、保持(可以使用鍵盤或撥碼開關(guān)置數(shù))功能。</p><p> 4、時、分、秒、百分之一秒顯示準(zhǔn)
8、確。</p><p> 三、數(shù)字秒表組成及功能:</p><p> 1、分頻率器:用來產(chǎn)生100HZ計時脈沖;</p><p> 2、二十四進(jìn)制計數(shù)器:對時進(jìn)行計數(shù);</p><p> 3、六進(jìn)制計數(shù)器:分別對秒十位和分十位進(jìn)行計數(shù);</p><p> 4、十進(jìn)制計數(shù)器:分別對秒個位和分個位進(jìn)行計數(shù);<
9、/p><p> 5、掃描顯示譯碼器:完成對7字段數(shù)碼管顯示的控制;</p><p><b> 四、系統(tǒng)硬件要求:</b></p><p> 1、時鐘信號為10MHz;</p><p> 2、FPGA芯片型號EPM7128LC84—15、EP1K30TC144—3或EP1K100QC208—3(根據(jù)實(shí)驗(yàn)箱上FPGA芯片
10、具體選擇);</p><p> 3、8個7段掃描共陰級數(shù)碼顯示管;</p><p> 4、按鍵開關(guān)(清零、啟動、保持);</p><p> 五、設(shè)計內(nèi)容及步驟:</p><p> 1、根據(jù)電路持點(diǎn),用層次設(shè)計概念。將此設(shè)計任務(wù)分成若干模塊,規(guī)定每一模塊的功能和各模塊之間的接口,同時加深層次化設(shè)計概念;</p><p
11、> 2、軟件的元件管理深層含義,以及模塊元件之間的連接概念,對于不同目錄下的同一設(shè)計,如何熔合;</p><p> 3、適配劃分前后的仿真內(nèi)容有何不同概念,仿真信號對象有何不同,有更深一步了解。熟悉了CPLD/FPGA設(shè)計的調(diào)試過程中手段的多樣化;</p><p> 4、按適配劃分后的管腳定位,同相關(guān)功能塊硬件電路接口連線;</p><p> 5、所有
12、模塊盡量采用VHDL語言設(shè)計。</p><p><b> 六、硬件實(shí)現(xiàn)</b></p><p> 將時序仿真正確的文件下載到實(shí)驗(yàn)箱中的EPM7128LC84—15、EP1K30TC144—3或EP1K100QC208—3中,通過合適的管腳分配,將相應(yīng)的管腳連接起來,驗(yàn)證設(shè)計是否完成設(shè)計要求;</p><p><b> 實(shí)驗(yàn)報告&
13、lt;/b></p><p> 一、數(shù)字秒表頂層設(shè)計</p><p> 外部輸入:啟動/停止信號(start);</p><p> 10MHZ的時鐘信號(clk);</p><p> 清零信號(clr);</p><p> 外部輸出:位選控制信號(sel0、sel1、sel2);</p>
14、<p> 7段數(shù)碼管顯示信號(led0、led1、led2、led3、led4、led5、led6、led7);</p><p><b> 數(shù)字秒表頂層原理圖</b></p><p> 二、數(shù)字秒表內(nèi)部設(shè)計</p><p><b> 1、分頻器</b></p><p> 功能:將
15、10MHz的時鐘信號轉(zhuǎn)換成100Hz的計時脈沖,使秒表正常工作。</p><p><b> 圖標(biāo):</b></p><p><b> VHDL語言:</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p&
16、gt;<p> entity div is</p><p> port(clr,clk: in bit;q: buffer bit);</p><p><b> end div;</b></p><p> architecture a of div is</p><p> signal count
17、er:integer range 0 to 49999;</p><p><b> begin</b></p><p> process(clr,clk)</p><p><b> begin</b></p><p> if (clk='1' and clk'even
18、t) then </p><p> if clr='1' then</p><p> counter<=0;</p><p> elsif counter=49999 then</p><p> counter<=0;</p><p> q<= not q;<
19、/p><p><b> else</b></p><p> counter<=counter+1;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process;
20、</p><p><b> end a;</b></p><p><b> 波形仿真:</b></p><p><b> 2、十進(jìn)制計數(shù)器</b></p><p> 功能:通過在計時脈沖的作用下進(jìn)行逢十進(jìn)一,從而完成對秒個位和分個位進(jìn)行計數(shù)的功能。</p>
21、<p><b> 圖標(biāo):</b></p><p><b> VHDL語言:</b></p><p> library ieee; </p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigne
22、d.all;</p><p> entity count10 is</p><p> port(clr,start,clk: in bit;</p><p> cout: out bit;</p><p> daout: out std_logic_vector(3 downto 0));</p><p>
23、end count10;</p><p> architecture a of count10 is</p><p> signal temp:std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> daout<=temp; </p
24、><p> process(clk,clr)</p><p><b> begin</b></p><p> if clr='1' then </p><p> temp<="0000";</p><p> cout<='0';
25、 </p><p> elsif (clk'event and clk='1') then</p><p> if start='1' then </p><p> if temp>="1001" then </p><p> temp<="0000&q
26、uot;;</p><p> cout<='1'; </p><p><b> else </b></p><p> temp<=temp+1; </p><p> cout<='0'; </p><p><b> end i
27、f; </b></p><p><b> end if; </b></p><p><b> end if; </b></p><p> end process;</p><p><b> end a;</b></p><p><
28、;b> 波形仿真:</b></p><p><b> 3、六進(jìn)制計數(shù)器</b></p><p> 功能:通過在計時脈沖的作用下進(jìn)行逢六進(jìn)一,完成秒表秒的十位部分和分的十位部分的計數(shù)功能。</p><p><b> 圖標(biāo):</b></p><p><b> VHD
29、L語言:</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity count6 is</p><p> po
30、rt(clr,start,clk: in bit;</p><p> cout: out std_logic;</p><p> daout: out std_logic_vector(3 downto 0));</p><p> end count6;</p><p> architecture a of count6 is<
31、/p><p> signal temp:std_logic_vector(3 downto 0);</p><p><b> begin </b></p><p> daout<=temp; </p><p> process(clk,clr)</p><p><b> be
32、gin</b></p><p> if clr='1' then </p><p> temp<="0000";</p><p> cout<='0'; </p><p> elsif (clk'event and clk='1') t
33、hen</p><p> if start='1' then </p><p> if temp>="0101" then </p><p> temp<="0000";</p><p> cout<='1'; </p><p
34、><b> else </b></p><p> temp<=temp+1; </p><p> cout<='0'; </p><p><b> end if; </b></p><p><b> end if; </b><
35、/p><p><b> end if; </b></p><p> end process; </p><p><b> end a;</b></p><p><b> 波形仿真:</b></p><p> 4、二十四進(jìn)制計數(shù)器</p>
36、<p> 功能:通過在計時脈沖的作用下進(jìn)行逢二十四進(jìn)一,從而對時進(jìn)行計數(shù)。</p><p><b> 圖標(biāo):</b></p><p><b> VHDL語言:</b></p><p> library ieee; </p><p> use ieee.std_logic_11
37、64.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity count24 is</p><p> port(clr,start,clk:in std_logic;</p><p> hour0,hour1:out std_logic_vector(3 downt
38、o 0));</p><p> end count24; </p><p> architecture a of count24 is</p><p> begin process(clr,clk) </p><p> variable cnt1,cnt0:std_logic_vector(3 downto 0);</p>
39、<p><b> begin </b></p><p> if clr='1' then cnt0:="0000"; cnt1:="0000";</p><p> elsif clk'event and clk='1' then</p><p>
40、; if start='1' then</p><p> if cnt1="0010" and cnt0="0011"</p><p> then cnt1:="0000";</p><p> cnt0:="0000"; </p><p>
41、 elsif cnt0<"1001" then cnt0:=cnt0+1; </p><p> else cnt0:="0000";</p><p> cnt1:=cnt1+1;</p><p><b> end if;</b></p><p><b>
42、end if;</b></p><p><b> end if;</b></p><p> hour0<=cnt0;</p><p> hour1<=cnt1;</p><p> end process; </p><p><b> end a;<
43、/b></p><p><b> 波形仿真:</b></p><p> 5、數(shù)據(jù)選擇和數(shù)碼管選擇模塊</p><p> 功能:通過每個計數(shù)器輸入的dain信號對數(shù)碼管進(jìn)行選擇。</p><p><b> 圖標(biāo):</b></p><p><b> VH
44、DL語言:</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity seltime is</p><p>
45、port(clk: in bit;</p><p> dain0,dain1,dain2,dain3,dain4,dain5,dain6,dain7: in std_logic_vector(3 downto 0);</p><p> sel: out std_logic_vector(2 downto 0);</p><p> daout: out std_
46、logic_vector(3 downto 0));</p><p> end seltime;</p><p> architecture a of seltime is</p><p> signal temp:integer range 0 to 7;</p><p><b> begin</b></
47、p><p> process(clk)</p><p><b> begin</b></p><p> if (clk='1'and clk'event) then </p><p> if temp=7 then temp<=0;</p><p> else
48、 temp<=temp + 1; </p><p> end if; </p><p> case temp is</p><p> when 0=>sel<="000";daout<=dain0;</p><p> when 1=>sel<="001
49、";daout<=dain1;</p><p> when 2=>sel<="010";daout<=dain2;</p><p> when 3=>sel<="011";daout<=dain3;</p><p> when 4=>sel<="1
50、00";daout<=dain4;</p><p> when 5=>sel<="101";daout<=dain5;</p><p> when 6=>sel<="110";daout<=dain6;</p><p> when 7=>sel<="
51、;111";daout<=dain7;</p><p><b> end case;</b></p><p><b> end if;</b></p><p> end process;</p><p><b> end a;</b></p>
52、<p><b> 波形仿真:</b></p><p> 6、數(shù)碼管驅(qū)動模塊:</p><p> 功能:通過對輸入的信號進(jìn)行編碼,完成對7段數(shù)碼管的驅(qū)動,使數(shù)碼管顯示出對應(yīng)的數(shù)字。</p><p><b> 圖標(biāo):</b></p><p><b> VHDL語言:&l
53、t;/b></p><p> library ieee; </p><p> use ieee.std_logic_1164.all; </p><p> entity deled is </p><p> port(num:in std_logic_vector(3 downto 0); </p><p&g
54、t; led:out std_logic_vector(6 downto 0)); </p><p> end deled ; </p><p> architecture a of deled is </p><p><b> begin </b></p><p> process(num) </p&g
55、t;<p><b> begin </b></p><p> case num is </p><p> when"0000"=>led<="0111111";-----------3FH</p><p> when"0001"=>led<
56、="0000110";-----------06H </p><p> when"0010"=>led<="1011011";-----------5BH </p><p> when"0011"=>led<="1001111";-----------4FH &l
57、t;/p><p> when"0100"=>led<="1100110";-----------66H </p><p> when"0101"=>led<="1101101";-----------6DH </p><p> when"0110&qu
58、ot;=>led<="1111101";-----------7DH </p><p> when"0111"=>led<="0100111";-----------27H </p><p> when"1000"=>led<="1111111";--
59、---------7FH </p><p> when"1001"=>led<="1101111";-----------6FH </p><p> when others=>led<="0000000";-----------00H </p><p> end case; &
60、lt;/p><p> end process; </p><p><b> end a;</b></p><p><b> 波形仿真:</b></p><p> 三、數(shù)字秒表仿真波形</p><p><b> 四、硬件驗(yàn)證</b></p>
61、;<p> 1、選擇合適的芯片類型,進(jìn)行自動分配管腳,在實(shí)驗(yàn)箱上將相應(yīng)的管腳連接起來;</p><p> 2、將做好的數(shù)字秒表下載到實(shí)驗(yàn)箱中;</p><p> 3、驗(yàn)證功能,當(dāng)輸入端clr撥至低電平,start撥至高電平時,秒表開始計時,能清楚的顯示時、分、,秒、0.01秒;當(dāng)把start撥至低電平時計時,秒表暫停,當(dāng)把start再次撥回高電平時,秒表繼續(xù)計時;當(dāng)把c
62、lr撥至高電平時,8個數(shù)碼管同時變?yōu)?,秒表停止工作。</p><p><b> 五、實(shí)驗(yàn)總結(jié)</b></p><p> 通過本次課程設(shè)計,使我對MAX+plusII軟件的使用、實(shí)驗(yàn)箱的使用、VHDL語言以及一個課題從開始的分析到最后的綜合編譯和仿真也有了更深刻的認(rèn)識。</p><p> 一拿到課程設(shè)計題目時確實(shí)有些迷茫,我就到圖書館查閱
63、了相關(guān)的書籍、上網(wǎng)查了查資料、以及與同學(xué)討論了整體構(gòu)思和VHDL語言的設(shè)計。雖然大體思路有了,但是在編程的過程中還是遇到了不少問題。</p><p> 分頻器的設(shè)計就是一個難題,100HZ的周期是10MHZ的100000倍,那counter的取值不是該是100000,那就是從0to99999,但是硬件驗(yàn)證時秒表明顯走得偏慢。那counter要取什么值呢?是取0to49999?通過分析才明白,如果語句中沒有用到q
64、<= not q;語句,在0.01秒內(nèi),q很長一段時間都保持低電平,只有在最后0.2us進(jìn)行高低電平的跳變;但如果用了q<= not q;語句,在0.005s時,q就從電平跳變到高電平,然后一直保持到0.01s才跳變到低電平,也就是將0.01s作為一個高低電平的周期。</p><p> 數(shù)碼管驅(qū)動模塊的輸出端口也遇到了問題,如果接線按EDA實(shí)驗(yàn)書上的接法,輸出端口有7個,驗(yàn)證的時候總是有錯,最后只好
65、將輸出端口改成一個led[6..0],在功能上同樣也滿足驅(qū)動數(shù)碼管的功能。</p><p> 雖然在實(shí)驗(yàn)中遇到了許多這樣那樣的大小問題,但是我還是積極的尋找解決問題的辦法,認(rèn)真分析問題,研究問題,解決問題,最后終于設(shè)計出了數(shù)字秒表,并能實(shí)現(xiàn)各個功能端的作用。</p><p> 課程設(shè)計不僅教會了我課本上的知識,更使我自身的學(xué)習(xí)能力和遇到問題時分析思考問題的能力有了明顯提高,自身的意志和
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda數(shù)字秒表課程設(shè)計
- eda課程設(shè)計---數(shù)字秒表
- eda課程設(shè)計--數(shù)字秒表設(shè)計
- eda課程設(shè)計--數(shù)字秒表設(shè)計
- eda綜合課程設(shè)計-數(shù)字秒表
- eda課程設(shè)計--數(shù)字秒表的設(shè)計
- eda課程設(shè)計---數(shù)字秒表的設(shè)計
- eda課程--數(shù)字秒表設(shè)計
- eda技術(shù)及應(yīng)用課程設(shè)計--數(shù)字秒表
- eda課程設(shè)計--秒表設(shè)計
- 數(shù)字秒表課程設(shè)計報告
- eda秒表電路課程設(shè)計
- 數(shù)字秒表課程設(shè)計報告
- 數(shù)字秒表課程設(shè)計報告
- eda課程設(shè)計--電子秒表設(shè)計
- 課程設(shè)計報告---數(shù)字秒表設(shè)計
- 數(shù)字電路課程設(shè)計報告---數(shù)字秒表
- 數(shù)字秒表課程設(shè)計
- 數(shù)字秒表課程設(shè)計
- 數(shù)字秒表課程設(shè)計
評論
0/150
提交評論