多功能數(shù)字鐘課程設(shè)計報告_第1頁
已閱讀1頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  多功能數(shù)字鐘課程</b></p><p><b>  設(shè)計報告</b></p><p><b>  班級: </b></p><p><b>  姓名: </b></p><p><b>  學(xué)號: </b&g

2、t;</p><p><b>  指導(dǎo)老師: </b></p><p>  完成日期:2012年1月10日</p><p><b>  設(shè)計任務(wù)及要求</b></p><p>  擁有正常的是、分、秒計時功能;</p><p>  能利用實驗板上的案件實現(xiàn)校時、較分及秒清零功

3、能;</p><p>  能利用實驗板上的揚聲器做整點報時;</p><p><b>  鬧鐘功能;</b></p><p>  在MAXPLUS Ⅱ中采用層次化方法進行設(shè)計;</p><p>  完成全部電路設(shè)計后在實驗板上下載,驗證設(shè)計課題的正確性。</p><p><b>  設(shè)計

4、方案</b></p><p><b>  計時模塊</b></p><p>  該模塊的設(shè)計相對簡單,使用一個二十四進制和兩個六十進制計數(shù)器級聯(lián),構(gòu)成數(shù)字鐘的基本框架。二十四進制計數(shù)器用于計時,六十進制計數(shù)器用于計分和計秒。只要給秒計數(shù)器一個1Hz的時鐘脈沖,則可以進行正常計時。分計數(shù)器以秒計數(shù)器的進位作為計數(shù)脈沖,小時計數(shù)器以分計數(shù)器的進位作為技術(shù)脈沖。

5、</p><p><b>  校時模塊</b></p><p>  校時模塊設(shè)計要求實現(xiàn)校時、較分及秒清零的功能。</p><p>  打開校時鍵,小時計數(shù)器迅速遞增以調(diào)至所需要的小時位;</p><p>  打開較分鍵,分計數(shù)器迅速遞增至所需要的分位;</p><p>  打開清零鍵,將秒計數(shù)器

6、清零。</p><p>  為此,可以用VHDL語言設(shè)計一個器件,該器件的功能是用3個波動開關(guān)控制校時功能:清零鍵打開時,秒計數(shù)器的清零端為‘0’;較分鍵打開時分計數(shù)器的使能端為‘1’,進位端輸出為零,同時給予它一個4Hz的時鐘信號;校時鍵打開小時計數(shù)器使能端為‘1’,時鐘信號為4Hz。</p><p><b>  整點報時功能</b></p><

7、p>  該模塊的功能是:計時到59分50秒時,每兩秒一次低音報時,整點時進行高音報時。</p><p>  方法是用VHDL語言設(shè)計一個器件,其輸入端與計時器分、秒的輸出端相接。當(dāng)時間為59分50秒、52秒、54秒、56秒、58秒時編號為hz500的輸出端為‘1’,否則為‘0’。當(dāng)00分00秒時編號為hz1k的輸出端為‘1’,否則為‘0’。 hz500的輸出端與500hz的連線同接在與門上, Hz1k的輸出

8、端與1khz的連線同接在與門上,2個與門輸出端接在一個或門上,輸出端連在揚聲器上。</p><p><b>  分頻模塊</b></p><p>  在本系統(tǒng)中需要用到多種不同頻率的脈沖信號,所有這些脈沖信號均可以通過一個基準(zhǔn)頻率器生成?;鶞?zhǔn)頻率器就是一個進制很大的計數(shù)器,利用計數(shù)器的分頻功能,從不同的輸出位得到所需要的脈沖信號。</p><p&g

9、t;<b>  動態(tài)顯示</b></p><p>  用VHDL語言設(shè)計2個器件。第1個器件的功能是接入計數(shù)器的各個輸出端,再把所接入的各位數(shù)上的數(shù)據(jù)按所在位置分別輸出,同時控制相應(yīng)的數(shù)碼管亮起。而第2個器件接受第一個器件的數(shù)據(jù),將其編譯成七段LED顯示器所需的7個信號。</p><p><b>  鬧鐘模塊</b></p><

10、;p>  鬧鐘模塊要求數(shù)字鐘計時到所設(shè)定的任意時間均能驅(qū)動揚聲報時。編寫一個新器件,在調(diào)用一個二十四進制計數(shù)器,一個六十進制計數(shù)器和一個校時模塊。用校時模塊調(diào)整兩個計時器的時間至所需時間,將其接入到新器件中。該器件同時接入計時器信號,當(dāng)兩個時間相同時,控制揚聲器響起。</p><p>  另再編寫一個新器件,該器件可以控制鬧鐘的開關(guān),同時可以切換鬧鐘的設(shè)定時間與計時器的時間顯示。</p>&l

11、t;p><b>  程序清單:</b></p><p><b>  頂層圖</b></p><p><b>  六十進制計數(shù)器</b></p><p><b>  二十四進制計數(shù)器</b></p><p><b>  校時:</b&g

12、t;</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity jiaoshi_44 is</p><p>  port(clk,s

13、,m,h:in std_logic;</p><p>  a,b,c,sclr,men,hen1,hen2:out std_logic);</p><p>  end jiaoshi_44 ;</p><p>  architecture hz of jiaoshi_44 is</p><p>  signal count:std_log

14、ic_vector(2 downto 0);</p><p>  signal hz4,hz1:std_logic;</p><p><b>  begin</b></p><p>  process(clk) </p><p><b>  begin</b></p><p>

15、;  if (clk'event and clk='1') then </p><p>  if (count="111") then </p><p>  count<="000"; </p><p><b>  else</b></p><p> 

16、 count<= count+1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  hz4<=count(0);</p><p>  hz1<=count(2);</p><p> 

17、 if(s='0') then</p><p><b>  a<=hz1;</b></p><p>  sclr<='1';</p><p><b>  else</b></p><p>  sclr<='0';</p>

18、<p><b>  end if;</b></p><p>  if(m='0') then</p><p>  b<=hz1;men<='0';hen1<='1';</p><p><b>  else</b></p><p

19、><b>  b<=hz4;</b></p><p><b>  men<='1';</b></p><p>  hen1<='0';</p><p><b>  end if;</b></p><p>  if(h=&#

20、39;0') then</p><p><b>  c<=hz1;</b></p><p>  hen2<='0';</p><p><b>  else</b></p><p>  c<=hz4;hen2<='1';</p>

21、;<p><b>  end if;</b></p><p>  end process; </p><p><b>  end hz;</b></p><p><b>  整點報時:</b></p><p>  library ieee; </p>

22、<p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity zheng_44 is</p><p>  port(min1,min0,sec1,sec0:in std_logic_vector(3 downto 0); <

23、;/p><p>  hz500,hz1k:out std_logic);</p><p>  end zheng_44;</p><p>  architecture behave of zheng_44 is</p><p><b>  begin</b></p><p>  process(min

24、0) </p><p><b>  begin</b></p><p>  hz500<='0';</p><p>  hz1k<='0';</p><p>  if min1="0101" and min0="1001" then&l

25、t;/p><p>  if sec1="0101"and (sec0="0000" or sec0="0010" or sec0="0100" or</p><p>  sec0="0110" or sec0="1000") then</p><p>

26、;  hz500<='1';</p><p><b>  else</b></p><p>  hz500<='0';</p><p><b>  end if;</b></p><p><b>  end if; </b></

27、p><p>  if min1="0000" and min0="0000"and sec1="0000" and sec0="0000" then</p><p>  hz1k<='1';</p><p><b>  else</b></p

28、><p>  hz1k<='0';</p><p><b>  end if;</b></p><p>  end process;</p><p>  end behave;</p><p><b>  分頻功能:</b></p><p

29、>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity fenpin11_44 is</p><p>  port(clk:in std_logic;</p

30、><p>  hz512,hz256,hz128,hz64,hz32,hz16,hz8,hz4,hz2,hz1,hz05:out std_logic);</p><p>  end fenpin11_44 ;</p><p>  architecture hz of fenpin11_44 is</p><p>  signal count:

31、std_logic_vector(10 downto 0);</p><p><b>  begin</b></p><p>  process(clk) </p><p><b>  begin</b></p><p>  if (clk'event and clk='1'

32、) then </p><p>  if (count="11111111111") then </p><p>  count<="00000000000"; </p><p><b>  else</b></p><p>  count<= count+1;<

33、/p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process; </p><p>  hz512 <= count(0); </p><p>  hz256 <= count(1);&

34、lt;/p><p>  hz128<=count(2);</p><p>  hz64 <= count(3);</p><p>  hz32<=count(4);</p><p>  hz16<=count(5);</p><p>  hz8<=count(6);</p>&l

35、t;p>  hz4<=count(7);</p><p>  hz2<=count(8);</p><p>  hz1<=count(9);</p><p>  hz05<=count(10);</p><p><b>  end hz;</b></p><p>&l

36、t;b>  動態(tài)顯示模塊:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  use ieee.std_logic_arith.all;

37、</p><p>  entity select61_44 is</p><p><b>  port(</b></p><p>  clk:in std_logic;</p><p>  sec1,sec0,min1,min0,h1,h0:in std_logic_vector(3 downto 0);</p&g

38、t;<p>  selout:out std_logic_vector(3 downto 0);</p><p>  sel:out std_logic_vector(5 downto 0));</p><p>  end select61_44;</p><p>  architecture fun of select61_44 is</p&g

39、t;<p>  signal count:std_logic_vector(2 downto 0);</p><p><b>  begin</b></p><p>  process(clk)</p><p><b>  begin</b></p><p>  if(clk'

40、event and clk='1') then</p><p>  if(count>="101") then</p><p>  count<="000";</p><p><b>  else</b></p><p>  count<=coun

41、t+1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  case count is</p><p>  when"000"=>selout<= sec0;</p><p&

42、gt;  when"001"=>selout<= sec1;</p><p>  when"010"=>selout<= min0;</p><p>  when"011"=>selout<= min1;</p><p>  when"100"=>

43、;selout<=h0;</p><p>  when others =>selout<=h1;</p><p><b>  end case;</b></p><p>  case count is</p><p>  when"000"=>sel<="000

44、001";</p><p>  when"001"=>sel<="000010";</p><p>  when"010"=>sel<="000100";</p><p>  when"011"=>sel<="0

45、01000";</p><p>  when"100"=>sel<="010000";</p><p>  when others =>sel<="100000";</p><p><b>  end case;</b></p><

46、p>  end process;</p><p><b>  end fun;</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity decoder47_44 is</p><p&g

47、t;  port(a:in std_logic_vector(3 downto 0);</p><p>  b:out std_logic_vector(6 downto 0));</p><p>  end decoder47_44;</p><p>  architecture behavior of decoder47_44 is</p><

48、;p><b>  begin</b></p><p>  with a select</p><p>  b<="1111110"when"0000",</p><p>  "0110000"when"0001",</p><p>

49、;  "1101101"when"0010",</p><p>  "1111001"when"0011",</p><p>  "0110011"when"0100",</p><p>  "1011011"when"

50、;0101",</p><p>  "1011111"when"0110",</p><p>  "1110000"when"0111",</p><p>  "1111111"when"1000",</p><p&g

51、t;  "1111011"when"1001",</p><p>  "XXXXXXX"when others;</p><p>  end behavior;</p><p><b>  鬧鐘:</b></p><p>  library ieee; <

52、/p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity naozhong_44 is</p><p>  port(min1,min0,h1,h0,fen1,fen0,shi1,shi0:in std_log

53、ic_vector(3 downto 0); </p><p>  hz1k:out std_logic);</p><p>  end naozhong_44;</p><p>  architecture behave of naozhong_44 is</p><p><b>  begin</b><

54、/p><p>  process(min0)</p><p><b>  begin</b></p><p>  hz1k<='0';</p><p>  if min1<=fen1 and min0<=fen0 and h1<=shi1 and h0<=shi0 then<

55、;/p><p>  hz1k<='1';</p><p>  else hz1k<='0';</p><p><b>  end if;</b></p><p>  end process;</p><p>  end behave;</p>

56、;<p>  library ieee; </p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity nao_switch_44 is</p><p>  port(key,show:in

57、std_logic;</p><p>  sec1,sec0,min1,min0,h1,h0,fen1,fen0,shi1,shi0:in std_logic_vector(3 downto 0); </p><p>  secout1,secout0,minout1,minout0,hout1,hout0:out std_logic_vector(3 downto 0); &l

58、t;/p><p>  hz1k:out std_logic);</p><p>  end nao_switch_44;</p><p>  architecture behave of nao_switch_44 is</p><p><b>  begin</b></p><p>  proces

59、s(key,show)</p><p><b>  begin</b></p><p>  if key='1' then</p><p>  hz1k<='1';</p><p>  else hz1k<='0';</p><p>

60、;<b>  end if;</b></p><p>  if show='0' then</p><p>  secout1<=sec1;secout0<=sec0;minout1<=min1;minout0<=min0;hout1<=h1;hout0<=h0;</p><p><b&

61、gt;  else</b></p><p>  secout1<="0000";secout0<="0000";minout1<=fen1;minout0<=fen0;hout1<=shi1;hout0<=shi0;</p><p><b>  end if;</b></p&

62、gt;<p>  end process;</p><p>  end behave;</p><p><b>  4、實驗結(jié)果:</b></p><p>  通過管教鎖定,使6個數(shù)碼管能動態(tài)顯示出時間。鍵1為使能端,鍵2為清零端,鍵3至鍵5分別對時、分、秒校時,鍵6為鬧鐘開關(guān),鍵7為鬧鐘顯示與計時器顯示的切換,鍵8與鍵9為鬧鐘的

63、校時與較分。經(jīng)過試驗,所有功能均能正常運行。</p><p><b>  5、實驗總結(jié):</b></p><p>  通過試驗,最終證明此設(shè)計能正常的工作,實驗過程中,大多數(shù)問題在自己的調(diào)試下都得到了解決,培養(yǎng)了獨立思考解決問題的習(xí)慣。學(xué)會了電路的故障排查,學(xué)會了怎樣從問題出發(fā),找到問題的根源,然后用相應(yīng)的方法來解決問題。培養(yǎng)了嚴謹細心認真的品質(zhì)。</p>

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論