版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 電子課程設計</b></p><p><b> —數(shù)字秒表的設計</b></p><p><b> 數(shù)字秒表的設計</b></p><p><b> 一、設計任務與要求</b></p><p> 1、數(shù)字秒表的計時范圍
2、是0秒~59分59.99秒,顯示的最長時間為59分59秒。</p><p> 2、數(shù)字秒表的計時精度是10ms。</p><p> 3、復位開關(guān)可以在任何情況下使用,即便在計時過程中,只要按一下復位開關(guān),計時器就清零,并做好下次計時的準備。</p><p> 4、具有啟/停開關(guān),即按一下啟/停開關(guān),啟動計時器開始計時,再按一下啟/停開關(guān)則停止計時。</p
3、><p><b> 二、總體框圖</b></p><p> 由頻率信號輸出端輸出頻率為100HZ的時鐘信號,輸入到微妙模塊的時鐘端clk,微妙模塊為100進制的計數(shù)器,產(chǎn)生的進位信號co輸入到下一級秒模塊的</p><p> 時鐘端,以此類推,直到分模塊計數(shù)到59進60時,產(chǎn)生的進位信號不輸出,計數(shù)清零。將微妙、秒、分產(chǎn)生的計數(shù)通過置數(shù)/位選
4、再通過顯示模塊實時顯示。</p><p> 設計方案:利用一塊芯片完成除時鐘源,按鍵和顯示器之外的所有數(shù)字電路功能。所有數(shù)字邏輯功能都在CPLD器件上用VHDL語言實現(xiàn)。這樣設計具有體積小,設計周期短,調(diào)試方便,故障率地和修改升級容易等特點,</p><p> 本設計采用自頂向下,混合輸入方式(原理圖輸入——頂層文件鏈接和VHDL語言輸入——各模塊程序設計)實現(xiàn)數(shù)字秒表的設計,下載和調(diào)
5、試。</p><p><b> 三、功能模塊</b></p><p><b> 微秒模塊</b></p><p> 采用VHDL語言輸入方式,以時鐘clk,清零信號clr以及暫停信號STOP為進程敏感變量,程序如下:</p><p> library ieee;</p><
6、;p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity MINSECONDb is</p><p> port(clk,clrm,stop:in std_logic;----時鐘/清零信號</p><p>
7、; secm1,secm0:out std_logic_vector(3 downto 0);----秒高位/低位</p><p> co:out std_logic);-------輸出/進位信號</p><p> end MINSECONDb;</p><p> architecture SEC of MINSECONDb is</p>&
8、lt;p> signal clk1,DOUT2:std_logic;</p><p><b> begin</b></p><p> process(clk,clrm)</p><p> variable cnt1,cnt0:std_logic_vector(3 downto 0);---計數(shù)</p><p&g
9、t; VARIABLE COUNT2 :INTEGER RANGE 0 TO 10 begin</p><p> IF CLK'EVENT AND CLK='1'THEN</p><p> IF COUNT2>=0 AND COUNT2<10 THEN</p><p> COUNT2:=COUNT2+1;</p>
10、;<p> ELSE COUNT2:=0;</p><p> DOUT2<= NOT DOUT2;</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> if clrm='1' then--
11、--當clr為1時,高低位均為0</p><p> cnt1:="0000";</p><p> cnt0:="0000";</p><p> elsif clk'event and clk='1' then</p><p> if stop='1' th
12、en</p><p> cnt0:=cnt0;</p><p> cnt1:=cnt1;</p><p><b> end if;</b></p><p> if cnt1="1001" and cnt0="1000" ;</p><p> th
13、en----當記數(shù)為98(實際是經(jīng)過59個記時脈沖)</p><p> co<='1';----進位</p><p> cnt0:="1001";----低位為9</p><p> elsif cnt0<"1001" then----小于9時</p><p> cnt
14、0:=cnt0+1;----計數(shù)</p><p> --elsif cnt0="1001" then</p><p> --clk1<=not clk1;</p><p><b> else</b></p><p> cnt0:="0000";</p>
15、<p> if cnt1<"1001" then----高位小于9時</p><p> cnt1:=cnt1+1;</p><p><b> else</b></p><p> cnt1:="0000"; </p><p><b> co<
16、;='0'; </b></p><p><b> end if; </b></p><p><b> end if; </b></p><p><b> end if;</b></p><p> secm1<=cnt1;</p&g
17、t;<p> secm0<=cnt0;</p><p> end process;</p><p><b> end SEC;</b></p><p><b> 程序生成器件如圖:</b></p><p> 微妙模塊生成的器件可以實現(xiàn)帶有100進制進位和清零功能,暫停等
18、功能,MINSECONDb輸入為100HZ脈沖和低電平的清零信號CLR與暫停信號STOP,輸出微妙個位、十位及進位信號CO。</p><p><b> 2、秒模塊</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> u
19、se ieee.std_logic_unsigned.all;</p><p> entity SECOND is</p><p> port(clk,clr:in std_logic;----時鐘/清零信號</p><p> sec1,sec0:out std_logic_vector(3 downto 0);----秒高位/低位</p>&l
20、t;p> co:out std_logic);-------輸出/進位信號</p><p> end SECOND;</p><p> architecture SEC of SECOND is</p><p><b> begin</b></p><p> process(clk,clr)</p&
21、gt;<p> variable cnt1,cnt0:std_logic_vector(3 downto 0);---計數(shù)</p><p><b> begin</b></p><p> if clr='1' then----當ckr為1時,高低位均為0</p><p> cnt1:="0000&
22、quot;;</p><p> cnt0:="0000";</p><p> elsif clk'event and clk='1' then</p><p> if cnt1="0101" and cnt0="1000" then----當記數(shù)為58(實際是經(jīng)過59個記時脈沖
23、)</p><p> co<='1';----進位</p><p> cnt0:="1001";----低位為9</p><p> elsif cnt0<"1001" then----小于9時</p><p> cnt0:=cnt0+1;----計數(shù)</p>
24、;<p><b> else</b></p><p> cnt0:="0000";</p><p> if cnt1<"0101" then----高位小于5時</p><p> cnt1:=cnt1+1;</p><p><b> else
25、</b></p><p> cnt1:="0000";</p><p><b> co<='0';</b></p><p><b> end if;</b></p><p><b> end if;</b></
26、p><p><b> end if;</b></p><p> sec1<=cnt1;</p><p> sec0<=cnt0;</p><p> end process;</p><p><b> end SEC;</b></p><p
27、><b> 程序生成器件如圖:</b></p><p> 此器件實現(xiàn)60進制帶有進位功能和清零功能的秒計數(shù)模塊SECOND,輸入為微妙模塊的進位信號和低電平有效的清零信號CLR,輸出秒個位、十位及進位信號CO。</p><p><b> 3、分模塊</b></p><p> library ieee;<
28、/p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity MINUTE is</p><p> port(clk,en:in std_logic;</p><p> min1,min
29、0:out std_logic_vector(3 downto 0);</p><p> co:out std_logic);</p><p> process(clk)</p><p> variable cnt1,cnt0:std_logic_vector(3 downto 0);</p><p><b> begin&
30、lt;/b></p><p> if clk'event and clk='1' then</p><p> if en='1' then</p><p> if cnt1="0101" and cnt0="1000" then</p><p><
31、;b> co<='1';</b></p><p> cnt0:="1001";</p><p> elsif cnt0<"1001" then</p><p> cnt0:=cnt0+1;</p><p><b> else</b&
32、gt;</p><p> cnt0:="0000";</p><p> end MINUTE;</p><p> architecture MIN of MINUTE is</p><p><b> begin</b></p><p> if cnt1<&quo
33、t;0101" then</p><p> cnt1:=cnt1+1;</p><p><b> else</b></p><p> cnt1:="0000";</p><p><b> co<='0';</b></p>&l
34、t;p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> min1<=cnt1;&
35、lt;/p><p> min0<=cnt0;</p><p> end process;</p><p><b> end MIN;</b></p><p><b> 程序生成器件如圖:</b></p><p> 此器件實現(xiàn)進制帶有進位和置數(shù)功能的分計數(shù)模塊MIN
36、UTE,輸入為妙進位信號和高電平有效的使能信號EN,輸出分個位、十位及進位信號CO。</p><p><b> 4、動態(tài)掃描模塊</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic
37、_unsigned.all;</p><p> use ieee.std_logic_arith.all;</p><p> entity SELTIME is</p><p><b> port(</b></p><p> clk:in std_logic;------掃描時鐘</p><p
38、> secm1,secm0,sec1,sec0,min1,min0,h1,h0:in std_logic_vector(3 downto 0);-----分別為秒個位/時位;分個位/</p><p> daout:out std_logic_vector(3 downto 0);----------------輸出</p><p> sel:out std_logic_vect
39、or(2 downto 0));-----位選信號</p><p> end SELTIME;</p><p> architecture fun of SELTIME is</p><p> signal count:std_logic_vector(2 downto 0);----計數(shù)信號</p><p><b> be
40、gin</b></p><p> sel<=count;</p><p> process(clk)</p><p><b> begin</b></p><p> if(clk'event and clk='1') then</p><p>
41、if(count>="111") then</p><p> count<="000";</p><p><b> else</b></p><p> count<=count+1;</p><p><b> end if;</b>&
42、lt;/p><p><b> end if;</b></p><p> case count is</p><p> when"111"=>daout<= secm0;</p><p> when"110"=>daout<= secm1;</p&g
43、t;<p> when"101"=>daout<= sec0;</p><p> when"100"=>daout<= sec1;</p><p> when"011"=>daout<=min0; </p><p> when"010&
44、quot;=>daout<=min1;</p><p> when"001"=>daout<=h0;</p><p> when others =>daout<=h1;</p><p><b> end case;</b></p><p> end proc
45、ess;</p><p><b> end fun;</b></p><p><b> 程序生成器件如圖:</b></p><p> 此器件實現(xiàn)復用功能模塊SELTIME,輸入為妙(含個/十位)、分、時、掃描時鐘CLK,輸出為D和顯示控制信號SEL。</p><p> 5、顯示模塊libra
46、ry ieee;</p><p> use ieee.std_logic_1164.all;</p><p> entity DISPLAY is</p><p> port(d:in std_logic_vector(3 downto 0);----連接seltime掃描部分d信號</p><p> q:out std_logic_
47、vector(6 downto 0));----輸出段選信號(電平)</p><p> end DISPLAY;</p><p> architecture disp_are of DISPLAY is</p><p><b> begin</b></p><p> process(d)</p>&
48、lt;p><b> begin</b></p><p><b> case d is</b></p><p> when"0000" =>q<="0111111";--顯示0</p><p> when"0001" =>q<=
49、"0000110";--顯示1</p><p> when"0010" =>q<="1011011";--顯示2</p><p> when"0011" =>q<="1001111";--顯示3</p><p> when"01
50、00" =>q<="1100110";--顯示4</p><p> when"0101" =>q<="1101101";--顯示5</p><p> when"0110" =>q<="1111101";--顯示6</p><
51、;p> when"0111" =>q<="0100111";--顯示7</p><p> when"1000" =>q<="1111111";--顯示8</p><p> when others =>q<="1101111";--顯示9<
52、/p><p><b> end case;</b></p><p> end process;</p><p> end disp_are;</p><p><b> 生成器件如圖所示:</b></p><p> DISPLAY實現(xiàn)譯碼顯示功能,輸入為D,輸出為Q<
53、;/p><p> 注意:以上所有程序均經(jīng)過硬件測試。</p><p><b> 四、總體設計電路圖</b></p><p> 頂層文件(原理圖輸入)</p><p><b> 五 心得體會</b></p><p> 經(jīng)過本次課程設計,我發(fā)現(xiàn)以我現(xiàn)在的學習水平,獨立自主的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設計--數(shù)字秒表設計
- eda課程設計--數(shù)字秒表設計
- eda課程設計---數(shù)字秒表
- eda綜合課程設計-數(shù)字秒表
- eda課程設計--數(shù)字秒表的設計
- eda課程設計---數(shù)字秒表的設計
- eda數(shù)字秒表課程設計報告
- eda課程--數(shù)字秒表設計
- eda課程設計--秒表設計
- eda技術(shù)及應用課程設計--數(shù)字秒表
- eda課程設計--電子秒表設計
- eda秒表電路課程設計
- 數(shù)字秒表課程設計
- 數(shù)字秒表課程設計
- 數(shù)字秒表課程設計
- 課程設計--數(shù)字秒表設計
- 數(shù)字秒表課程設計
- 課程設計-- 數(shù)字秒表
- 課程設計---數(shù)字秒表設計
- eda課程設計-- eda與數(shù)字系統(tǒng)課程設計
評論
0/150
提交評論