數(shù)字邏輯課程設(shè)計(jì)---多功能數(shù)字鐘的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
已閱讀1頁(yè),還剩15頁(yè)未讀, 繼續(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><b>  數(shù)字邏輯</b></p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  — —多功能數(shù)字鐘的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  姓 名: </p><p>  專業(yè)班級(jí): 通信1002 &l

2、t;/p><p>  學(xué) 號(hào): </p><p>  指導(dǎo)老師: </p><p>  設(shè)計(jì)日期: 2012.06.20~2012.06.24 </p><p><b>  一、設(shè)計(jì)目的</b></p><p>  1、學(xué)會(huì)應(yīng)

3、用數(shù)字系統(tǒng)設(shè)計(jì)方法進(jìn)行電路設(shè)計(jì);</p><p>  2、學(xué)習(xí)使用QuartusII 9.0, 進(jìn)一步提高軟件的開發(fā)應(yīng)用能力,增強(qiáng)自己的動(dòng)手實(shí)踐能力。</p><p>  3、培養(yǎng)學(xué)生書寫綜合實(shí)驗(yàn)報(bào)告的能力。 </p><p><b>  二、設(shè)計(jì)任務(wù)及要求</b></p><p>  實(shí)現(xiàn)多功能數(shù)字鐘的設(shè)計(jì),主要

4、有以下功能:</p><p>  1、記時(shí)、記分、記秒</p><p>  2、校時(shí)、校分、秒清0</p><p><b>  3、整點(diǎn)報(bào)時(shí)</b></p><p><b>  4、時(shí)間正常顯示</b></p><p>  5、鬧時(shí)功能(選做)</p><

5、p><b>  三、設(shè)計(jì)思路</b></p><p><b>  3.1 計(jì)時(shí)模塊</b></p><p>  3.1.1 設(shè)計(jì)原理</p><p>  計(jì)時(shí)模塊如圖3.1.1所示,其中計(jì)時(shí)用60進(jìn)制計(jì)數(shù)器,計(jì)分和計(jì)秒用24進(jìn)制計(jì)數(shù)器。</p><p>  圖3.1.1 計(jì)時(shí)間模塊</p

6、><p><b>  計(jì)時(shí)間過程:</b></p><p>  計(jì)秒:1HZ計(jì)數(shù)脈沖,0~59循環(huán)計(jì)數(shù),計(jì)數(shù)至59時(shí)產(chǎn)生進(jìn)位信號(hào);</p><p>  計(jì)分:以秒計(jì)數(shù)器進(jìn)位信號(hào)作為分計(jì)數(shù)脈沖,0~59循環(huán)計(jì)數(shù),59時(shí)產(chǎn)生進(jìn)位;</p><p>  計(jì)時(shí):以分計(jì)數(shù)器進(jìn)位信號(hào)作為時(shí)計(jì)數(shù)脈沖,0~23循環(huán)計(jì)數(shù),23時(shí)清0。<

7、/p><p><b>  計(jì)數(shù)器的設(shè)計(jì):</b></p><p>  3.1.2 設(shè)計(jì)程序</p><p>  編程分別設(shè)計(jì)24、60進(jìn)制計(jì)數(shù)器,計(jì)數(shù)狀態(tài)以BCD碼形式輸出。</p><p>  24進(jìn)制計(jì)數(shù)器源程序:</p><p>  library ieee;</p><p&

8、gt;  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity FEN24 is</p><p>  port(en,clk:in std_logic; ----高電平有效的使能信號(hào)/輸入時(shí)鐘</p><p&

9、gt;  co:out std_logic; </p><p>  h1,h0:out std_logic_vector(3 downto 0)); ----時(shí)高位/低位</p><p>  end FEN24;</p><p>  architecture behave of FEN24 is</p><p><b>  begi

10、n</b></p><p>  process(clk)</p><p>  variable cnt1,cnt0:std_logic_vector(3 downto 0); ----記數(shù)</p><p><b>  begin</b></p><p>  if(en='0')then

11、 ---“使能”為0</p><p>  cnt0:="0010";</p><p>  cnt1:="0001";</p><p>  elsif clk'event and clk='1'then ---上升沿觸發(fā)&

12、lt;/p><p>  if cnt1="0010"and cnt0="0011"then</p><p>  cnt0:="0000"; ----高位/低位同時(shí)為0時(shí)</p><p>  cnt1:="0000";</p>&

13、lt;p><b>  co<='1';</b></p><p><b>  else</b></p><p><b>  co<='0';</b></p><p>  if cnt0="1001"then</p>&l

14、t;p>  cnt0:="0000";</p><p>  cnt1:=cnt1+1;</p><p><b>  else </b></p><p>  cnt0:=cnt0+1; -----高位記數(shù)累加 </p><p><b>

15、;  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  h1<=cnt1;</b></p><p><b>  h0<=cnt0;<

16、/b></p><p>  end process;</p><p>  end behave;</p><p>  60進(jìn)制計(jì)數(shù)器源程序:</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  u

17、se ieee.std_logic_unsigned.all;</p><p>  entity FEN60 is</p><p>  port(en,clk:in std_logic; ---高電平有效的使能信號(hào)/輸入時(shí)鐘</p><p>  co:out std_logic; ---輸出

18、/進(jìn)位信號(hào)</p><p>  s1,s0:out std_logic_vector(3 downto 0)); </p><p>  end FEN60;</p><p>  architecture behave of FEN60 is</p><p><b>  begin</b></p><

19、;p>  process(clk,en)</p><p>  variable cnt1,cnt0:std_logic_vector(3 downto 0); ---計(jì)數(shù)</p><p><b>  begin</b></p><p>  if en='0'then

20、 ---“使能”為0 </p><p>  cnt1:="0000";</p><p>  cnt0:="0000";</p><p>  elsif clk'event and clk='1'then</p>

21、<p>  if cnt0="1001"then</p><p>  cnt0:="0000";</p><p>  if cnt1="0101"then ---當(dāng)計(jì)數(shù)為58(實(shí)際是經(jīng)過59個(gè)計(jì)時(shí)脈沖)</p><p>  cnt1:="0000";</p&g

22、t;<p>  co<='1'; ---進(jìn)位</p><p><b>  else</b></p><p>  cnt1:=cnt1+1; </p><p>  co<='0'

23、; </p><p><b>  end if;</b></p><p><b>  else</b></p><p>  cnt0:=cnt0+1;</p><p><b>  end if; </b></p><p><b>  end

24、if;</b></p><p><b>  s1<=cnt1;</b></p><p><b>  s0<=cnt0;</b></p><p>  end process;</p><p>  end behave;</p><p>  3.1.3 設(shè)

25、計(jì)仿真及生成器件</p><p>  24進(jìn)制計(jì)數(shù)器仿真波形截圖如圖3.1.2所示,其中計(jì)到23時(shí),即高位h1為2,低位h0為3時(shí)產(chǎn)生進(jìn)位。</p><p>  圖3.1.2 24進(jìn)制計(jì)數(shù)器仿真波形</p><p>  60進(jìn)制計(jì)數(shù)器仿真波形截圖如圖3.1.3所示,其中計(jì)到59時(shí),即高位s1為5,低位s0為9時(shí)產(chǎn)生進(jìn)位。</p><p>  

26、圖3.1.3 60進(jìn)制計(jì)數(shù)器仿真波形</p><p>  24進(jìn)制計(jì)數(shù)器和60進(jìn)制計(jì)數(shù)器生成器件分別如圖3.1.4、圖3.1.5所示,其中en為時(shí)能信號(hào),接高電平,clk接1kHz的時(shí)鐘信號(hào),co為進(jìn)位,h1為時(shí)高位,h0為時(shí)低位,s1為秒或分高位,s0為秒或分低位。</p><p>  圖3.1.4 24進(jìn)制計(jì)數(shù)器 圖3.1.5 60進(jìn)制計(jì)數(shù)器

27、 </p><p><b>  3.2 校時(shí)模塊</b></p><p>  3.2.1 設(shè)計(jì)原理</p><p>  計(jì)、校時(shí)對(duì)模塊如圖3.2.1所示。</p><p>  圖3.2.1 計(jì)、校時(shí)對(duì)模塊</p><p>  校時(shí)模塊設(shè)計(jì)要求實(shí)現(xiàn)校時(shí)、校分以及清零的功能。</p>

28、<p>  按下校時(shí)鍵,時(shí)位迅速遞增以調(diào)至所需要的小時(shí)位,滿23清0;</p><p>  按下校分鍵,分位迅速遞增以調(diào)至所需要的分位,滿59清0;</p><p>  按下清零鍵,秒清零;</p><p>  選擇實(shí)驗(yàn)板上的三個(gè)脈沖按鍵進(jìn)行鎖定。</p><p>  對(duì)此模塊的設(shè)計(jì),需要注意兩個(gè)問題:</p>&l

29、t;p>  1. 如何實(shí)現(xiàn)校對(duì)時(shí)間時(shí),計(jì)數(shù)器快速遞增?</p><p>  按鍵校對(duì)時(shí)間時(shí),將一個(gè)頻率較高的計(jì)數(shù)脈沖信號(hào)作用于計(jì)數(shù)器,屏蔽正常計(jì)時(shí)的計(jì)數(shù)脈沖信號(hào)。</p><p>  2. “抖動(dòng)”的消除</p><p>  電路抖動(dòng):一次按鍵的彈跳現(xiàn)象,電路產(chǎn)生多個(gè)計(jì)數(shù)脈沖,導(dǎo)致一次按鍵,多次計(jì)數(shù)的誤動(dòng)作。</p><p>  抖動(dòng)產(chǎn)

30、生的原因:物理原因。</p><p>  消除抖動(dòng)簡(jiǎn)易方法:D觸發(fā)器,同步按鍵脈沖。</p><p>  原理:一個(gè)CP內(nèi),屏蔽所有抖動(dòng)脈沖。</p><p>  兩種脈沖信號(hào)用兩路選擇器進(jìn)行選擇,選擇條件為是否按鍵。按鍵輸出經(jīng)過了消抖處理。</p><p>  3.2.2 設(shè)計(jì)程序</p><p><b>

31、  二路選擇器源程序:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity MUX2 is</p><p>  port(A,B,S:in bit;</p><p>  Y:out bit);

32、</p><p><b>  end MUX2;</b></p><p>  architecture one of MUX2 is</p><p><b>  begin</b></p><p>  process(A,B,S)</p><p><b>  beg

33、in</b></p><p>  if S='0' then </p><p><b>  Y<=A;</b></p><p><b>  else</b></p><p><b>  Y<=B;</b></p><p

34、><b>  end if;</b></p><p>  end process;</p><p><b>  end one;</b></p><p>  3.2.3 設(shè)計(jì)仿真及生成器件</p><p>  二路選擇器生成器件如圖3.2.2所示。</p><p>  

35、圖3.2.2 二路選擇器</p><p>  3.3 整點(diǎn)報(bào)時(shí)模塊</p><p>  3.3.1 設(shè)計(jì)原理</p><p>  報(bào)時(shí)模塊原理圖如圖3.3.1所示,數(shù)字鐘從59分50秒開始,每2秒一次低音報(bào)時(shí),當(dāng)達(dá)到整點(diǎn)時(shí),進(jìn)行一次高音報(bào)時(shí),其中低音報(bào)時(shí)頻率為500Hz,高音報(bào)時(shí)頻率為1kHz。</p><p>  圖3.3.1 報(bào)時(shí)模塊&l

36、t;/p><p>  進(jìn)行報(bào)時(shí)的條件是計(jì)數(shù)器計(jì)數(shù)至所要求的時(shí)間點(diǎn),因而需要實(shí)現(xiàn)一個(gè)比較模塊,如圖3.3.2所示,將分計(jì)數(shù)器和秒計(jì)數(shù)器的輸出連至比較模塊輸入端完成比較工程。</p><p>  圖3.3.2 比較模塊</p><p>  3.3.2 設(shè)計(jì)程序</p><p><b>  整點(diǎn)報(bào)時(shí)源程序:</b></p&g

37、t;<p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity ZDBS is</p><p>  port(mh,ml,sh,sl:in std_lo

38、gic_vector(3 downto 0);--輸入分秒高低位信號(hào) </p><p>  sig500,sig1k:out std_logic); ---頻聲控制</p><p><b>  end ZDBS;</b></p><p>  architecture b

39、ehave of ZDBS is</p><p><b>  begin</b></p><p>  process(ml)</p><p><b>  begin</b></p><p>  sig500<='0';</p><p>  sig1k&l

40、t;='0';</p><p>  if mh="0101" and ml="1001" then </p><p>  if sh="0101"and (sl="0000" or sl="0010" or sl="0100"

41、or sl="0110" or sl="1000") </p><p>  then sig500<='1'; ----低頻輸出為1</p><p>  else sig500<='0'; --

42、--否則輸出為0</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  if mh="0000" and ml="0000"and sh="0000" and sl="0000&quo

43、t; -----整點(diǎn)報(bào)時(shí)</p><p>  then sig1k<='1'; -----高頻輸出為1</p><p>  else sig1k<='0';</p><p><b>  end if;</b></p><p

44、>  end process;</p><p>  end behave;</p><p>  3.3.3 設(shè)計(jì)仿真及生成器件</p><p>  整點(diǎn)報(bào)時(shí)生成器件如圖3.3.3所示,器件輸入為分和秒,分別接分計(jì)數(shù)器和秒計(jì)數(shù)器的高低位,輸出為高頻聲控sig500和sig1k。</p><p>  圖3.3.3 整點(diǎn)報(bào)時(shí)</p>

45、;<p><b>  3.4 分頻模塊</b></p><p>  3.4.1 設(shè)計(jì)原理</p><p>  分頻模塊如圖3.4.1所示,系統(tǒng)需要用到多種不同頻率的脈沖信號(hào),上至高音報(bào)時(shí)信號(hào),下至1Hz的計(jì)秒脈沖,所有這些脈沖信號(hào)均可以通過一個(gè)基準(zhǔn)頻率分頻器生成,基準(zhǔn)頻率分頻器就是一個(gè)進(jìn)制很大的計(jì)數(shù)器,利用計(jì)數(shù)器的分頻功能,從不同的輸出位得到所需要的脈沖

46、信號(hào)。因此可以設(shè)計(jì)一個(gè)進(jìn)制較大的計(jì)數(shù)器,分頻產(chǎn)生各種頻率的脈沖信號(hào)。</p><p>  圖3.4.1 分頻模塊</p><p>  3.4.2 設(shè)計(jì)程序</p><p><b>  分頻器源程序:</b></p><p>  library ieee;</p><p>  use ieee.st

47、d_logic_1164.all;</p><p>  use ieee.std_logic_arith.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity FPQ is</p><p>  port(clk:in std_logic;</p><

48、;p>  hz512:out std_logic;</p><p>  hz64:out std_logic; </p><p>  hz4:out std_logic;</p><p>  hz1:out std_logic</p><p><b>  ); </b></p><p>&l

49、t;b>  end FPQ;</b></p><p>  architecture behave of FPQ is</p><p>  signal q:std_logic_vector(9 downto 0);</p><p><b>  begin </b></p><p>  process(c

50、lk)</p><p><b>  begin </b></p><p>  if clk'event and clk='1'then </p><p><b>  q<=q+1;</b></p><p><b>  end if;</b><

51、/p><p>  end process; </p><p>  hz512<=q(0);</p><p>  hz64<=q(3);</p><p>  hz4<=q(7);</p><p>  hz1<=q(9);</p><p>  end behave;</p&

52、gt;<p>  3.4.3 設(shè)計(jì)仿真及生成器件</p><p>  分頻器仿真波形如圖3.4.2所示,clk為時(shí)鐘輸入信號(hào),設(shè)為1024Hz,由于1Hz和4Hz頻率太小,因此在仿真波形圖上為一條直線,從圖上可以清楚看到512Hz和64Hz的頻率</p><p>  圖3.4.2 分頻器仿真波形</p><p>  分頻器生成器件如圖3.4.3所示,其

53、中左端為時(shí)鐘輸入信號(hào)clk,右端為頻率端,主要是整點(diǎn)報(bào)時(shí)用的1000Hz與500Hz的脈沖信號(hào),及鬧鐘報(bào)時(shí)的4Hz,秒輸入信號(hào)1Hz。</p><p>  圖3.4.3 分頻器</p><p>  3.5 動(dòng)態(tài)掃描顯示模塊</p><p>  3.5.1 設(shè)計(jì)原理</p><p>  由于資源不足無(wú)法完整顯示6位時(shí)間,因此采用動(dòng)態(tài)掃描的方式實(shí)

54、現(xiàn)時(shí)間顯示。在動(dòng)態(tài)掃描方式下,所有的數(shù)碼對(duì)應(yīng)同一組七段碼,每一個(gè)數(shù)碼管由一個(gè)選擇端控制點(diǎn)亮或熄滅,如果全部點(diǎn)亮,則都顯示相同數(shù)字,如要實(shí)現(xiàn)6位不同時(shí)間的顯示,則需要利用人的視覺缺陷,即利用高頻輸出,使得人眼覺察不出差別。</p><p>  簡(jiǎn)單說,就是在動(dòng)態(tài)模式下,8個(gè)數(shù)碼管連接同個(gè)七段碼,進(jìn)行分時(shí)控制的動(dòng)態(tài)掃描顯示。</p><p>  時(shí)間的顯示:24進(jìn)制與60進(jìn)制計(jì)數(shù)器的輸出分成3

55、組,每一組(8位)接BCD7段碼譯碼器,驅(qū)動(dòng)數(shù)碼管顯示,選用8個(gè)數(shù)碼管中的6個(gè)進(jìn)行時(shí)間顯示。</p><p>  3.5.2 設(shè)計(jì)程序</p><p><b>  動(dòng)態(tài)掃描源程序:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;<

56、/p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity DTSM is</p><p>  port(clk:in std_logic; ---掃描時(shí)鐘</p><p>  s:in std_logic_vector(7 dow

57、nto 0);</p><p>  m:in std_logic_vector(7 downto 0);</p><p>  h:in std_logic_vector(7 downto 0);</p><p>  selout:out std_logic_vector(2 downto 0); ---位選信號(hào)</p><p

58、>  segout:out std_logic_vector(6 downto 0)); --- 輸出</p><p><b>  end DTSM;</b></p><p>  architecture a of DTSM is</p><p>  signal temp:std_logic_vector(2 dow

59、nto 0); ---計(jì)數(shù)信號(hào)</p><p>  signal seg:std_logic_vector(6 downto 0);</p><p>  signal sel:std_logic_vector(2 downto 0);</p><p><b>  begin</b></p><p>

60、;  process(clk)</p><p>  variable num:std_logic_vector(3 downto 0);</p><p><b>  begin</b></p><p>  if (clk'event and clk='1' ) then</p><p>  if

61、temp>=5 then</p><p>  temp<="000";</p><p><b>  else</b></p><p>  temp<=temp+1;</p><p><b>  end if;</b></p><p>  

62、case temp is</p><p>  when "101" =>num:=s(3 downto 0); </p><p>  sel<="101";</p><p>  when "100" =>num:=s(7 downto 4);

63、 </p><p>  sel<="100";</p><p>  when "011" =>num:=m(3 downto 0); </p><p>  sel<="011";</p><p>  when "010&q

64、uot; =>num:=m(7 downto 4); </p><p>  sel<="010";</p><p>  when "001" =>num:=h(3 downto 0);</p><p>  sel<="001";</p>&l

65、t;p>  when "000" =>num:=h(7 downto 4);</p><p>  sel<="000";</p><p>  when others=>sel<="111";</p><p><b>  end case;</b></

66、p><p>  case num is </p><p>  when"0000"=>seg<="0111111"; ---輸出數(shù)字0</p><p>  when"0001"=>seg<="0000110";

67、 ---輸出數(shù)字1</p><p>  when"0010"=>seg<="1011011"; ---輸出數(shù)字2</p><p>  when"0011"=>seg<="1001111"; ---輸出數(shù)字3&l

68、t;/p><p>  when"0100"=>seg<="1100110"; ---輸出數(shù)字4</p><p>  when"0101"=>seg<="1101101"; ---輸出數(shù)字5</p><p&

69、gt;  when"0110"=>seg<="1111101"; ---輸出數(shù)字6</p><p>  when"0111"=>seg<="0000111"; ---輸出數(shù)字7</p><p>  when"1

70、000"=>seg<="1111111"; ---輸出數(shù)字8</p><p>  when"1001"=>seg<="1101111"; ---輸出數(shù)字9</p><p>  when others=>seg<=&qu

71、ot;0000000"; </p><p>  end case; </p><p><b>  end if;</b></p><p>  end process;</p><p>  selout<=sel;</p><p>  segout<=seg;</p>

72、;<p>  end architecture;</p><p>  3.5.3 設(shè)計(jì)仿真及生成器件</p><p>  動(dòng)態(tài)掃描仿真波形如圖3.5.1所示,由于h、m、s為時(shí)分秒的輸入,為設(shè)置時(shí),segout即BCD7段譯碼器沒有顯示,selout為位選信號(hào),實(shí)現(xiàn)六選一。</p><p>  圖3.5.1 動(dòng)態(tài)掃描仿真波形</p>&l

73、t;p>  動(dòng)態(tài)掃描生成器件如圖3.5.2所示,其中左端為輸入,分別接時(shí)鐘輸入信號(hào)、秒分時(shí)計(jì)數(shù)器的輸出信號(hào),右端為輸出,selout即位選信號(hào),segout即BCD7段譯碼器。</p><p>  圖3.5.2 動(dòng)態(tài)掃描</p><p>  3.6 鬧時(shí)模塊(選做)</p><p>  3.6.1 設(shè)計(jì)原理</p><p>  設(shè)置的鬧

74、時(shí)模塊需要注意一下幾點(diǎn):</p><p>  1、設(shè)定的鬧鐘的時(shí)間應(yīng)使用新的計(jì)數(shù)器進(jìn)行存儲(chǔ),與正常的計(jì)時(shí)互不干擾。</p><p>  2、與正常計(jì)時(shí)狀態(tài)的顯示切換??梢栽O(shè)定一個(gè)按鍵,用于選擇是將計(jì)時(shí)時(shí)間還是將鬧鐘時(shí)間狀態(tài)送到動(dòng)態(tài)顯示模塊。</p><p>  3、應(yīng)實(shí)現(xiàn)一個(gè)比較模塊,當(dāng)計(jì)時(shí)到與鬧鐘相等時(shí),則驅(qū)動(dòng)揚(yáng)聲器鳴叫。</p><p>

75、  4、鬧鐘響聲應(yīng)限定在一定時(shí)間內(nèi),比如一分鐘,且在這段時(shí)間內(nèi)應(yīng)隨時(shí)可以通過按鍵取消鬧時(shí)狀態(tài)(揚(yáng)聲器停止鳴叫)。</p><p>  3.6.2 設(shè)計(jì)程序</p><p><b>  六路選擇器源程序:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_11

76、64.all;</p><p>  entity MUX63 is</p><p>  port(p:in bit;</p><p>  sh:in std_logic_vector(7 downto 0);</p><p>  nh:in std_logic_vector(7 downto 0);</p><p> 

77、 sm:in std_logic_vector(7 downto 0);</p><p>  nm:in std_logic_vector(7 downto 0);</p><p>  ss:in std_logic_vector(7 downto 0);</p><p>  h:out std_logic_vector(7 downto 0);</p>

78、<p>  m:out std_logic_vector(7 downto 0);</p><p>  s:out std_logic_vector(7 downto 0));</p><p>  end MUX63;</p><p>  architecture one of MUX63 is</p><p><b>

79、;  begin</b></p><p>  process(sh,nh,sm,nm,ss,p)</p><p><b>  begin</b></p><p>  if p='1' then </p><p><b>  h<=nh;</b></p>

80、<p><b>  m<=nm;</b></p><p><b>  s<=ss;</b></p><p><b>  else</b></p><p><b>  h<=sh;</b></p><p><b>  

81、m<=sm;</b></p><p><b>  s<=ss;</b></p><p><b>  end if;</b></p><p>  end process;</p><p><b>  end one;</b></p><

82、p><b>  數(shù)據(jù)比較器源程序:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity COMP is</p

83、><p>  port(off1,open1:in std_logic;</p><p>  sh:in std_logic_vector(7 downto 0);</p><p>  nh:in std_logic_vector(7 downto 0);</p><p>  sm:in std_logic_vector(7 downto 0);

84、</p><p>  nm:in std_logic_vector(7 downto 0);</p><p>  d:out std_logic);</p><p><b>  end COMP;</b></p><p>  architecture behave of COMP is</p><p&

85、gt;<b>  begin</b></p><p>  process(off1,open1,sh,nh,sm,nm)</p><p><b>  begin</b></p><p>  if off1='1' then d<='0';</p><p>  e

86、lsif open1='1' then</p><p>  if (sh=nh and sm=nm )then d<='1';</p><p>  else d<='0';</p><p>  end if; </p><p><b>  end if;</b&g

87、t;</p><p>  end process;</p><p>  end behave;</p><p>  3.6.3 設(shè)計(jì)仿真及生成器件</p><p>  六路選擇器和數(shù)據(jù)比較器生成器件分別如圖3.6.1、圖3.6.2所示。</p><p>  選擇器的左端為輸入,接正常時(shí)間和鬧鐘設(shè)定的時(shí)間,右端為輸出端,

88、與動(dòng)態(tài)掃描器相連接,能掃描出正常計(jì)數(shù)時(shí)間與鬧鐘設(shè)置時(shí)間。</p><p>  數(shù)據(jù)比較器左端輸入接正常計(jì)數(shù)時(shí)間的時(shí)和分以及鬧鐘設(shè)定實(shí)間的時(shí)和分,將兩者相比較,如果相同,則右端輸出端d為‘1’,在有時(shí)鐘信號(hào)的情況下產(chǎn)生鬧鈴。</p><p>  圖3.6.1 六路選擇器 圖3.6.2 數(shù)據(jù)比較器</p><p>&l

89、t;b>  3.7 時(shí)鐘頂層圖</b></p><p>  時(shí)鐘頂層圖(含鬧鐘)如圖3.7.1所示。</p><p>  圖3.7.1 時(shí)鐘設(shè)置頂層圖(含鬧鐘)</p><p>  四、設(shè)計(jì)中遇到的問題及解決方法</p><p>  1、問題:下載驗(yàn)證時(shí)數(shù)碼管顯示時(shí)間與正常顯示時(shí)間相反。</p><p&g

90、t;  解決方法:動(dòng)態(tài)掃描程序出錯(cuò),掃描順序與正常顯示時(shí)間相反,修改程序,使得其由時(shí)高位向秒低位進(jìn)行掃描。</p><p>  2、問題:校準(zhǔn)分鐘時(shí),時(shí)鐘也跟著一起跳動(dòng)。</p><p>  解決方法:將分計(jì)數(shù)器進(jìn)位與跟時(shí)計(jì)數(shù)器相連的二路選擇器間連線上的非門去掉。</p><p>  3、問題:加上鬧鐘模塊進(jìn)行下載驗(yàn)證時(shí),時(shí)位與分位跳動(dòng)頻率與秒位頻率一樣。</

91、p><p>  解決方法:鬧鐘模塊部分的時(shí)計(jì)數(shù)器與分計(jì)數(shù)器給了同樣的時(shí)鐘脈沖,加與門(未解決)。</p><p><b>  五、設(shè)計(jì)結(jié)果</b></p><p>  時(shí)鐘的基本功能可以達(dá)到,時(shí)間可以正常顯示,按按鍵s1可以調(diào)節(jié)時(shí)鐘的小時(shí),按按鍵s2可以調(diào)節(jié)時(shí)鐘的分,按按鍵s3可以對(duì)秒位進(jìn)行清零。鬧鐘功能沒有很好地實(shí)現(xiàn),修改后的電路圖沒有經(jīng)過下載驗(yàn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論