版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 學 號 </p><p><b> 數字電路課程設計</b></p><p><b> 設計說明書</b></p><p> 起止日期: 2013年 6 月 25日 至 2013 年 6 月 28日</p><p> 計算機與信息工程學院</p
2、><p> 2013年6月28 日</p><p><b> 目錄</b></p><p> 一、引言.............................................. . ...... ..... 2</p><p> 二、實驗要求.............................
3、............... ...... ......2</p><p> 三、實驗目的............................................ ...... ......2</p><p> 四、實驗內容............................................ ...... ..... 2</p>&l
4、t;p> 五、實驗原理............................................ ...... ..... 2</p><p> 六、實驗連線............................................ ...... ..... 3</p><p> 七、數字鐘VHDL文本........................
5、.......... ...... ...... 3</p><p> 八、總結................................................ ...... .....11</p><p><b> 引言</b></p><p> 數字鐘是采用數字電路實現對時、分、秒,數字顯示的計時裝置,廣泛用于個人家庭
6、,車站,碼頭、辦公室等公共場所,成為人們日常生活中不可少的必需品,由于數字集成電路的發(fā)展和石英振蕩器的廣泛應用,使得數字鐘的精度遠遠超過老式鐘表,鐘表的數字化給人們生產生活帶來了極大地方便,而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、校時自動打鈴、時間程序自動控制、定是廣播、自動啟閉路燈、定時開關烘箱、通斷動力設備,甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數字化為基礎的。因此,研究數字鐘及擴大其應用有著非?,F實的意義
7、。</p><p><b> 二、實驗要求</b></p><p> 1.具有時,分,秒,計數顯示功能,以24小時循環(huán)計時。2.具有清零,調節(jié)小時、分鐘功能。3. 具有整點報時功能,整點報時的同時LED燈花樣顯示。</p><p> 三、實驗目的1.掌握多位計數器相連的設計方法。2.掌握十進制、六進制、二十四進制計數器的設計方法
8、。3.鞏固多位共陰極掃描顯示數碼管的驅動及編碼。4.掌握揚聲器的驅動。5.LED燈的花樣顯示。6. 掌握CPLD技術的層次化設計方法。</p><p><b> 四 、實驗內容</b></p><p> 1.根據電路持點,可在教師指導下用層次設計概念,將此設計任務分成若干模塊,規(guī)定每一模塊的功能和各模塊之間的接口,讓幾個學生分做和調試其中之一,然后再將各
9、模塊合起來聯(lián)試,以培養(yǎng)學生之間的合作精神,同時加深層次化設計概念。</p><p> 2.了解軟件的元件管理深層含義,以及模塊元件之間的連接概念。了解如何融合不同目錄下的統(tǒng)一設計。</p><p><b> 模塊說明:</b></p><p> 各種進制的計數及時鐘控制模塊(10進制、6進制、24進制);</p><p
10、> 掃描分時顯示,譯碼模塊;</p><p> 彩燈,揚聲器編碼模塊;</p><p> 各模塊都是由VHDL語言編寫。</p><p> 數字鐘各模塊連接示意圖</p><p> 五、實驗原理 1.時鐘計數:秒——60進制BCD碼計數;</p><p> 分——60進制BCDD碼計數;&l
11、t;/p><p> 時——24進制BCDD碼計數;</p><p> 整個計數器有清零,調分,調時功能,在接近整數時間能提供報時信號。</p><p> 2.具有驅動8位八段共陰掃描數碼管的片選驅動信號輸出和八段字形譯碼輸出,編碼和掃描部分可參照前面實驗。</p><p> 3.揚聲器在整點時有報時驅動信號產生。</p>&
12、lt;p> 4. LED燈在整點時有花樣顯示信號產生。</p><p> 六、 實驗連線◎輸入接口:</p><p> 代表清零,調時,調分信號RESET,SETHOUR,SETMIN的管腳分別已經連接按鍵開關。</p><p> 代表計數時鐘信號CLK和掃描時鐘信號CKDSP的管腳分別已經同1HZ時鐘源和32HZ(或更高)時鐘源相連。</p
13、><p> Reset鍵為低電平復位,已經接上。</p><p><b> ◎輸出接口:</b></p><p> 代表掃描顯示的驅動信號管腳SCAN2,SCAN1,SCAN0已經接到實驗箱上的SCAN0~SCAN2,A…G接八位數碼管顯示模塊的A~G。</p><p> 代表花樣LED燈顯示的信號管腳LAMP0…L
14、AMP2已經同3個LED燈相連。代表到時LED燈閃爍提示的ENHOUR接LED燈。</p><p> SETHOUR、SETMIN分別對應CPU板上的PB0、PB1(有些CPU板對應的標識是SW1、SW2)</p><p> RESET對應CPU板上的RESET</p><p> CLKDSP對應CPU板上的50MHz固定晶振輸入。</p>&l
15、t;p> LAMP對應IO9-IO11。</p><p> CLK,對應IO3。</p><p> 功能選擇位M[3..0]狀態(tài)為0010,左端8個數碼管,低8位為7位段加小數點選取位,高8位為8個數碼管com端選取,即如果要選取數碼管0,則發(fā)送總線值為:1111 1110 1111 1111,如要選取數碼管1,則發(fā)送總線值為:1111 1101 1111 1111,此時所選數
16、碼管7段和DP位將全部亮。</p><p> 實驗接線:用導線連接IO3與ADJ_CLK,調整SW17-SW20,使輸出頻率為1Hz;</p><p> IO9-IO11接到L1-L3上; IO5接到蜂鳴器的BUZZER控制端口。</p><p> 按下PB0、PB1(有些CPU板對應的標識是SW1、SW2)可以調整時鐘,分鐘。</p><
17、p> 七、數字鐘VHDL文本</p><p> 本設計全部采用VHDL文本描述,所有文本存放在同一個工作文件夾中。可先錄入底層文件,把某個底層文件設為當時的頂層,保存、編譯、仿真、退出;再錄入另一個底層文件;這樣把所有底層文件一一錄入;最后錄入頂層文件,并保存、編譯、仿真,再下載頂層文件到器件實現硬件功能。</p><p> 7.1、頂層文本(clock_top.vhd)<
18、;/p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> entity clock_top is</p><p> port(clk,reset,setmin,sethour,clkdsp:in std_logic;</p><p>
19、 speaker:out std_logic;</p><p> lamp:out std_logic_vector(2 downto 0);</p><p> sel:out std_logic_vector(2 downto 0);</p><p> a,b,c,d,e,f,g,dpout:out std_logic);</p><p
20、> end clock_top;</p><p> architecture a of clock_top is</p><p> COMPONENT second</p><p><b> PORT(</b></p><p> clk,reset,setmin:IN STD_LOGIC;</p&g
21、t;<p> daout:out std_logic_vector(6 downto 0);</p><p> enmin:OUT STD_LOGIC);</p><p> END COMPONENT;</p><p> COMPONENT minute</p><p><b> PORT(</b>
22、;</p><p> clk,clk1,reset,sethour:IN STD_LOGIC;</p><p> enhour:OUT STD_LOGIC;</p><p> daout:out std_logic_vector(6 downto 0));</p><p> END COMPONENT;</p><
23、p> COMPONENT hour</p><p><b> port(</b></p><p> clk,reset:IN STD_LOGIC;</p><p> daout:out std_logic_vector(5 downto 0));</p><p> END COMPONENT;</p
24、><p> COMPONENT alert</p><p><b> PORT(</b></p><p> clk:IN STD_LOGIC;</p><p> dain:in std_logic_vector(6 downto 0);</p><p> lamp:out std_logic
25、_vector(2 downto 0);</p><p> speak:OUT STD_LOGIC);</p><p> END COMPONENT;</p><p> COMPONENT seltime</p><p><b> PORT(</b></p><p> clk1,rese
26、t:IN STD_LOGIC;</p><p> sec,min:in std_logic_vector(6 downto 0);</p><p> hour:in std_logic_vector(5 downto 0);</p><p> dp:out std_logic;</p><p> daout:out std_logic
27、_vector(3 downto 0);</p><p> sel:OUT STD_LOGIC_vector(2 downto 0));</p><p> END COMPONENT;COMPONENT deled</p><p><b> PORT(</b></p><p> num:IN STD_LOGIC_
28、vector(3 downto 0);</p><p> led:out std_logic_vector(6 downto 0));</p><p> END COMPONENT;</p><p> signal enmin_re,enhour_re:std_logic;</p><p> signal second_daout,m
29、inute_daout:std_logic_vector(6 downto 0);</p><p> signal hour_daout:std_logic_vector(5 downto 0);</p><p> signal seltime_daout:std_logic_vector(3 downto 0);</p><p> signal ledout
30、:std_logic_vector(6 downto 0);</p><p><b> begin</b></p><p> a<=ledout(6);b<=ledout(5);c<=ledout(4);d<=ledout(3);</p><p> e<=ledout(2);f<=ledout(1);g
31、<=ledout(0);</p><p> u1:second port map(reset=>reset,</p><p><b> clk=>clk,</b></p><p> setmin=>setmin,</p><p> enmin=>enmin_re,</p>
32、<p> daout=>second_daout);</p><p> u2:minute port map(clk=>enmin_re,</p><p> clk1=>clk,</p><p> reset=>reset,</p><p> sethour=>sethour,</p
33、><p> enhour=>enhour_re,</p><p> daout=>minute_daout);</p><p> u3:hour port map(clk=>enhour_re,</p><p> reset=>reset,</p><p> daout=>hour_
34、daout);</p><p> u4:alert port map(clk=>clk,</p><p> dain=>minute_daout,</p><p> speak=>speaker,</p><p> lamp=>lamp);</p><p> u5:seltime po
35、rt map(clk=>clkdsp,</p><p> reset=>reset,</p><p> sec=>second_daout,</p><p> min=>minute_daout,</p><p> hour=>hour_daout,</p><p> daout
36、=>seltime_daout,</p><p> dp=>dpout,</p><p> sel=>sel);</p><p> u6:deled port map(num=>seltime_daout,</p><p> led=>ledout);</p><p><b&
37、gt; end a;</b></p><p> 7.2、秒計數器(second.vhd) 為底層文本</p><p> LIBRARY ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p&
38、gt;<p> ENTITY second IS</p><p><b> PORT(</b></p><p> clk,reset,setmin:IN STD_LOGIC;</p><p> enmin:OUT STD_LOGIC;</p><p> daout:out std_logic_ve
39、ctor(6 downto 0));</p><p> END entity second;</p><p> ARCHITECTURE fun OF second IS</p><p> SIGNAL count:STD_LOGIC_VECTOR(6 downto 0);</p><p> SIGNAL enmin_1,enmin_
40、2:STD_LOGIC;</p><p><b> BEGIN</b></p><p> daout<=count;</p><p> enmin_2<=(enmin_1 or enmin_2);</p><p> enmin<=(enmin_1 or enmin_2);</p>
41、<p> process(clk,reset,setmin)</p><p><b> begin</b></p><p> if(reset='0')then count <="0000000";</p><p> elsif(clk'event and clk='1
42、')then</p><p> if(count(3 downto 0)="1001")then</p><p> if(count<=16#60#)then</p><p> if(count="1011001")then</p><p> enmin_1<='1&
43、#39;;count<="0000000";</p><p><b> else</b></p><p> count<=count+7;</p><p><b> end if;</b></p><p><b> else</b><
44、;/p><p> count<="0000000";</p><p><b> end if;</b></p><p> elsif(count<16#60#)then</p><p> count<=count+1;</p><p> enmin_1&
45、lt;='1'after 100 ns;</p><p><b> else</b></p><p> count<="0000000";</p><p><b> end if;</b></p><p><b> end if;</
46、b></p><p> end process;</p><p><b> END fun;</b></p><p> 7.3分計數器(minute.vhd) 為底層文本</p><p> LIBRARY ieee;</p><p> use ieee.std_logic_1164
47、.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> ENTITY minute IS</p><p><b> PORT(</b></p><p> clk,clk1,reset,sethour:IN STD_LOGIC;</p><
48、;p> enhour:OUT STD_LOGIC;</p><p> daout:out std_logic_vector (6 downto 0));</p><p> END entity minute;</p><p> ARCHITECTURE fun OF minute IS</p><p> SIGNAL coun
49、t:STD_LOGIC_VECTOR (6 downto 0);</p><p> SIGNAL enhour_1,enhour_2:STD_LOGIC;</p><p><b> BEGIN</b></p><p> daout<=count;</p><p> enhour_2<=(sethour
50、 and clk1);</p><p> enhour<=(enhour_1 and enhour_2);</p><p> process(clk,reset,sethour)</p><p><b> begin</b></p><p> if(reset='0')then</p&
51、gt;<p> count<="0000000";</p><p> elsif(clk' event and clk='1')then</p><p> if(count(3 downto 0)="1001")then</p><p> if(count<16#16#
52、)then</p><p> if(count="1011001")then</p><p> enhour_1<='1';</p><p> count<="0000000";</p><p><b> ELSE</b></p>
53、<p> count<=count+7;</p><p><b> end if;</b></p><p><b> else</b></p><p> count<="0000000";</p><p><b> end if;<
54、/b></p><p> elsif(count<16#16#)then</p><p> count<=count+1;</p><p> enhour_1<='0'after 100 ns;</p><p><b> else</b></p><p&
55、gt; count<="0000000";</p><p><b> end if;</b></p><p><b> end if; </b></p><p> end process;</p><p> END fun; </p><p&
56、gt; 7.4小時文本(hour.vhd) 為底層文本</p><p><b> HOUR</b></p><p> LIBRARY ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;<
57、;/p><p> ENTITY hour IS</p><p><b> PORT(</b></p><p> clk,reset: INSTD_LOGIC;</p><p> daout: out std_logic_vector (5 downto 0));</p><p> END
58、entity hour;</p><p> ARCHITECTURE fun OF hour IS</p><p> SIGNAL count: STD_LOGIC_VECTOR( 5 downto 0);</p><p><b> BEGIN</b></p><p> daout <= count;<
59、;/p><p> process ( clk,reset) </p><p><b> begin </b></p><p> if (reset='0') then</p><p> count <= "000000";</p><p> elsi
60、f (clk' event and clk='1') then</p><p> if (count(3 downto 0)="1001") then</p><p> if (count <16#23#) then</p><p> count<=count + 7; </p><p
61、><b> else </b></p><p> count<="000000";</p><p><b> end if;</b></p><p> elsif(count <16#23#) then </p><p> count <= co
62、unt + 1;</p><p><b> else </b></p><p> count<="000000";</p><p><b> end if;</b></p><p><b> end if;</b></p><
63、;p> end process;</p><p><b> END fun;</b></p><p> 7.5時間數據掃描分時選擇模塊文本(seltime.vhd) 為底層文本</p><p> LIBRARY ieee;</p><p> use ieee.std_logic_1164.all;<
64、;/p><p> use ieee.std_logic_unsigned.all;</p><p> use ieee.std_logic_arith.all;</p><p> ENTITY seltime IS</p><p><b> PORT(</b></p><p> clk1,
65、reset: INSTD_LOGIC;</p><p> sec,min : INSTD_LOGIC_VECTOR(6 downto 0);</p><p> hour : in std_logic_vector (5 downto 0);</p><p> daout: OUTSTD_LOGIC_vector (3 downto 0);</p&
66、gt;<p> sel : out std_logic_vector ( 2 downto 0));</p><p> END seltime;</p><p> ARCHITECTURE fun OF seltime IS</p><p> SIGNAL count: STD_LOGIC_vector ( 2 downto 0);</p
67、><p><b> BEGIN</b></p><p> sel <= count;</p><p> process ( clk1,reset)</p><p><b> begin </b></p><p> if (reset ='0') t
68、hen</p><p> count <= "000";</p><p> elsif (clk1 'event and clk1='1') then</p><p> if ( count >= "101") then</p><p> count <
69、= "000";</p><p><b> else </b></p><p> count <= count + 1;</p><p><b> end if;</b></p><p><b> end if;</b></p>
70、<p> case count is</p><p> when "000" => daout <= sec(3 downto 0);</p><p> when "001" => daout(3) <= '0';</p><p> daout(2 downto 0)
71、<= sec (6 downto 4);</p><p> when "010" => daout <= min (3 downto 0);</p><p> when "011" => daout(3) <= '0';</p><p> daout(2 downto 0)
72、<= min (6 downto 4);</p><p> when "100" => daout <= hour (3 downto 0);</p><p> when others => daout(3 downto 2) <= "00";</p><p> daout(1 downto
73、 0) <= hour(5 downto 4);</p><p><b> end case;</b></p><p> end process;</p><p><b> end fun;</b></p><p><b> 八、總結 </b></p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數字電路課程設計-- 數字鐘
- 數字電路課程設計--數字鐘的設計與實現
- 數字電路課程設計(多功能數字鐘)
- 數字電路課程設計報告-- 數字鐘電路的設計與仿真
- 數字電路課程設計(多功能數字鐘)
- 脈沖與數字電路課程設計報告--基于fpga的數字鐘
- 數字電路課程設計實習報告-利用cpld設計可調時數字鐘
- 數字鐘課程設計--多功能數字鐘的電路設計
- lg數字鐘電路課程設計---多功能數字鐘電路設計
- 課程設計---數字鐘電路設計
- 數字電路課程設計----數字電子鐘
- 數字電子電路課程設計---數字鐘
- 數字電路課程設計---數字電子鐘
- 多功能數字鐘電路課程設計
- 數字鐘課程設計---多功能數字鐘的設計與制作
- 數字鐘課程設計
- 數字鐘課程設計
- 數字電路多功能數字鐘畢業(yè)設計
- 數字鐘課程設計
- 數字鐘課程設計
評論
0/150
提交評論