數(shù)字電路課程設(shè)計(jì)--數(shù)字鐘的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
已閱讀1頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  學(xué) 號(hào) </p><p><b>  數(shù)字電路課程設(shè)計(jì)</b></p><p><b>  設(shè)計(jì)說明書</b></p><p>  起止日期: 2013年 6 月 25日 至 2013 年 6 月 28日</p><p>  計(jì)算機(jī)與信息工程學(xué)院</p

2、><p>  2013年6月28 日</p><p><b>  目錄</b></p><p>  一、引言.............................................. . ...... ..... 2</p><p>  二、實(shí)驗(yàn)要求.............................

3、............... ...... ......2</p><p>  三、實(shí)驗(yàn)?zāi)康?........................................... ...... ......2</p><p>  四、實(shí)驗(yàn)內(nèi)容............................................ ...... ..... 2</p>&l

4、t;p>  五、實(shí)驗(yàn)原理............................................ ...... ..... 2</p><p>  六、實(shí)驗(yàn)連線............................................ ...... ..... 3</p><p>  七、數(shù)字鐘VHDL文本........................

5、.......... ...... ...... 3</p><p>  八、總結(jié)................................................ ...... .....11</p><p><b>  引言</b></p><p>  數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)時(shí)、分、秒,數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭

6、,車站,碼頭、辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵罚捎跀?shù)字集成電路的發(fā)展和石英振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度遠(yuǎn)遠(yuǎn)超過老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大地方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、校時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定是廣播、自動(dòng)啟閉路燈、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備,甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用有著非?,F(xiàn)實(shí)的意義

7、。</p><p><b>  二、實(shí)驗(yàn)要求</b></p><p>  1.具有時(shí),分,秒,計(jì)數(shù)顯示功能,以24小時(shí)循環(huán)計(jì)時(shí)。2.具有清零,調(diào)節(jié)小時(shí)、分鐘功能。3. 具有整點(diǎn)報(bào)時(shí)功能,整點(diǎn)報(bào)時(shí)的同時(shí)LED燈花樣顯示。</p><p>  三、實(shí)驗(yàn)?zāi)康?.掌握多位計(jì)數(shù)器相連的設(shè)計(jì)方法。2.掌握十進(jìn)制、六進(jìn)制、二十四進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法

8、。3.鞏固多位共陰極掃描顯示數(shù)碼管的驅(qū)動(dòng)及編碼。4.掌握揚(yáng)聲器的驅(qū)動(dòng)。5.LED燈的花樣顯示。6. 掌握CPLD技術(shù)的層次化設(shè)計(jì)方法。</p><p><b>  四 、實(shí)驗(yàn)內(nèi)容</b></p><p>  1.根據(jù)電路持點(diǎn),可在教師指導(dǎo)下用層次設(shè)計(jì)概念,將此設(shè)計(jì)任務(wù)分成若干模塊,規(guī)定每一模塊的功能和各模塊之間的接口,讓幾個(gè)學(xué)生分做和調(diào)試其中之一,然后再將各

9、模塊合起來聯(lián)試,以培養(yǎng)學(xué)生之間的合作精神,同時(shí)加深層次化設(shè)計(jì)概念。</p><p>  2.了解軟件的元件管理深層含義,以及模塊元件之間的連接概念。了解如何融合不同目錄下的統(tǒng)一設(shè)計(jì)。</p><p><b>  模塊說明:</b></p><p>  各種進(jìn)制的計(jì)數(shù)及時(shí)鐘控制模塊(10進(jìn)制、6進(jìn)制、24進(jìn)制);</p><p

10、>  掃描分時(shí)顯示,譯碼模塊;</p><p>  彩燈,揚(yáng)聲器編碼模塊;</p><p>  各模塊都是由VHDL語言編寫。</p><p>  數(shù)字鐘各模塊連接示意圖</p><p>  五、實(shí)驗(yàn)原理 1.時(shí)鐘計(jì)數(shù):秒——60進(jìn)制BCD碼計(jì)數(shù);</p><p>  分——60進(jìn)制BCDD碼計(jì)數(shù);&l

11、t;/p><p>  時(shí)——24進(jìn)制BCDD碼計(jì)數(shù);</p><p>  整個(gè)計(jì)數(shù)器有清零,調(diào)分,調(diào)時(shí)功能,在接近整數(shù)時(shí)間能提供報(bào)時(shí)信號(hào)。</p><p>  2.具有驅(qū)動(dòng)8位八段共陰掃描數(shù)碼管的片選驅(qū)動(dòng)信號(hào)輸出和八段字形譯碼輸出,編碼和掃描部分可參照前面實(shí)驗(yàn)。</p><p>  3.揚(yáng)聲器在整點(diǎn)時(shí)有報(bào)時(shí)驅(qū)動(dòng)信號(hào)產(chǎn)生。</p>&

12、lt;p>  4. LED燈在整點(diǎn)時(shí)有花樣顯示信號(hào)產(chǎn)生。</p><p>  六、 實(shí)驗(yàn)連線◎輸入接口:</p><p>  代表清零,調(diào)時(shí),調(diào)分信號(hào)RESET,SETHOUR,SETMIN的管腳分別已經(jīng)連接按鍵開關(guān)。</p><p>  代表計(jì)數(shù)時(shí)鐘信號(hào)CLK和掃描時(shí)鐘信號(hào)CKDSP的管腳分別已經(jīng)同1HZ時(shí)鐘源和32HZ(或更高)時(shí)鐘源相連。</p

13、><p>  Reset鍵為低電平復(fù)位,已經(jīng)接上。</p><p><b>  ◎輸出接口:</b></p><p>  代表掃描顯示的驅(qū)動(dòng)信號(hào)管腳SCAN2,SCAN1,SCAN0已經(jīng)接到實(shí)驗(yàn)箱上的SCAN0~SCAN2,A…G接八位數(shù)碼管顯示模塊的A~G。</p><p>  代表花樣LED燈顯示的信號(hào)管腳LAMP0…L

14、AMP2已經(jīng)同3個(gè)LED燈相連。代表到時(shí)LED燈閃爍提示的ENHOUR接LED燈。</p><p>  SETHOUR、SETMIN分別對(duì)應(yīng)CPU板上的PB0、PB1(有些CPU板對(duì)應(yīng)的標(biāo)識(shí)是SW1、SW2)</p><p>  RESET對(duì)應(yīng)CPU板上的RESET</p><p>  CLKDSP對(duì)應(yīng)CPU板上的50MHz固定晶振輸入。</p>&l

15、t;p>  LAMP對(duì)應(yīng)IO9-IO11。</p><p>  CLK,對(duì)應(yīng)IO3。</p><p>  功能選擇位M[3..0]狀態(tài)為0010,左端8個(gè)數(shù)碼管,低8位為7位段加小數(shù)點(diǎn)選取位,高8位為8個(gè)數(shù)碼管com端選取,即如果要選取數(shù)碼管0,則發(fā)送總線值為:1111 1110 1111 1111,如要選取數(shù)碼管1,則發(fā)送總線值為:1111 1101 1111 1111,此時(shí)所選數(shù)

16、碼管7段和DP位將全部亮。</p><p>  實(shí)驗(yàn)接線:用導(dǎo)線連接IO3與ADJ_CLK,調(diào)整SW17-SW20,使輸出頻率為1Hz;</p><p>  IO9-IO11接到L1-L3上; IO5接到蜂鳴器的BUZZER控制端口。</p><p>  按下PB0、PB1(有些CPU板對(duì)應(yīng)的標(biāo)識(shí)是SW1、SW2)可以調(diào)整時(shí)鐘,分鐘。</p><

17、p>  七、數(shù)字鐘VHDL文本</p><p>  本設(shè)計(jì)全部采用VHDL文本描述,所有文本存放在同一個(gè)工作文件夾中。可先錄入底層文件,把某個(gè)底層文件設(shè)為當(dāng)時(shí)的頂層,保存、編譯、仿真、退出;再錄入另一個(gè)底層文件;這樣把所有底層文件一一錄入;最后錄入頂層文件,并保存、編譯、仿真,再下載頂層文件到器件實(shí)現(xiàn)硬件功能。</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、秒計(jì)數(shù)器(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分計(jì)數(shù)器(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小時(shí)文本(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時(shí)間數(shù)據(jù)掃描分時(shí)選擇模塊文本(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>  八、總結(jié) </b></p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論