數(shù)電課程設(shè)計(jì)報(bào)告vhdl電子鐘_第1頁
已閱讀1頁,還剩27頁未讀, 繼續(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>  目錄</b></p><p><b>  一、設(shè)計(jì)要求</b></p><p><b>  二、設(shè)計(jì)方案1</b></p><p><b>  設(shè)計(jì)需求1</b></p><p>  多功能電子鐘的設(shè)計(jì)方案1</

2、p><p><b>  電子鐘模式1</b></p><p><b>  顯示模式1</b></p><p><b>  選位模式2</b></p><p>  三、各功能模塊設(shè)計(jì)3</p><p><b>  主控模塊3</b&g

3、t;</p><p><b>  主要功能3</b></p><p><b>  源代碼3</b></p><p><b>  計(jì)時(shí)模塊5</b></p><p><b>  主要功能5</b></p><p><b&

4、gt;  源代碼5</b></p><p><b>  鬧鐘模塊8</b></p><p><b>  主要功能8</b></p><p><b>  源代碼8</b></p><p><b>  輔控模塊10</b></p&g

5、t;<p><b>  主要功能11</b></p><p><b>  源代碼11</b></p><p><b>  顯示模塊14</b></p><p><b>  主要功能14</b></p><p><b>  源

6、代碼15</b></p><p><b>  蜂鳴器模塊17</b></p><p><b>  主要功能17</b></p><p><b>  源代碼17</b></p><p><b>  分頻器模塊18</b></p&g

7、t;<p><b>  主要功能18</b></p><p><b>  源代碼18</b></p><p>  四、設(shè)計(jì)實(shí)現(xiàn)過程20</p><p>  五、實(shí)驗(yàn)結(jié)果。討論及心得體會(huì)22</p><p><b>  附錄23</b></p>

8、<p><b>  各模塊仿真圖23</b></p><p><b>  AC23</b></p><p>  BCD7DIS23</p><p>  CHOSE2123</p><p>  CHOSE8123</p><p><b>  C

9、LKCUT24</b></p><p>  COUNT2424</p><p>  COUNT6024</p><p><b>  KEYEN24</b></p><p><b>  MC24</b></p><p><b>  SOUND2

10、5</b></p><p><b>  SWSC25</b></p><p>  TRANSLATE3825</p><p><b>  一、設(shè)計(jì)要求</b></p><p>  1、具有以二十四小時(shí)制計(jì)時(shí)、顯示、整點(diǎn)報(bào)時(shí)、時(shí)間設(shè)置和鬧鐘的功能。</p><p&g

11、t;  2、射擊精度要求為1s。</p><p><b>  二、設(shè)計(jì)方案</b></p><p><b>  設(shè)計(jì)需求</b></p><p>  1. 計(jì)時(shí):正常工作狀態(tài)下每天按24小時(shí)制計(jì)時(shí)并顯示,蜂鳴器無聲,逢整點(diǎn)報(bào)時(shí)。</p><p>  2.較時(shí):在調(diào)時(shí)顯示狀態(tài)下,按下“k鍵”

12、則進(jìn)入“小時(shí)”校準(zhǔn)狀態(tài),此時(shí)按“k鍵”則進(jìn)入“分鐘”校準(zhǔn)狀態(tài),繼續(xù)按“k鍵”則進(jìn)入“秒鐘”校準(zhǔn)狀態(tài),再按k鍵”則反回全部閃爍狀態(tài)。在較時(shí)狀態(tài)時(shí),被較準(zhǔn)的,數(shù)碼管以閃爍顯示,此時(shí)若set鍵值為1則按照4HZ進(jìn)行加時(shí)。</p><p>  3. 整點(diǎn)報(bào)時(shí):蜂鳴器在59分鐘的51、53、55、57秒時(shí)發(fā)出頻率為512hz的低音,在59秒時(shí)發(fā)出1024hz的高音,結(jié)束時(shí)為整點(diǎn)。</p><p

13、>  4. 顯示:要求采用掃描顯示方式驅(qū)動(dòng)8個(gè)LED數(shù)碼管顯示“時(shí)-分-秒”。</p><p>  5. 鬧鐘:鬧鐘定時(shí)時(shí)間到,蜂鳴器發(fā)出周期1秒的“滴、滴”聲,持續(xù)時(shí)間為一分鐘。</p><p>  6. 鬧鐘設(shè)置:在鬧鐘調(diào)時(shí)時(shí)狀態(tài)下,按下“k鍵”則進(jìn)入“小時(shí)”定時(shí)狀態(tài),此時(shí)按“k鍵”則進(jìn)入“分鐘”定時(shí)狀態(tài),繼續(xù)按“k鍵”則進(jìn)入“秒鐘”定時(shí)狀態(tài),再按k

14、鍵”則回到全部閃爍狀態(tài)。在定時(shí)狀態(tài)時(shí),被定時(shí)的,數(shù)碼管以閃爍顯示,此時(shí)若set鍵值為1則按照4HZ進(jìn)行加時(shí)。</p><p>  為了實(shí)現(xiàn)這些功能需要一些小的模塊來實(shí)現(xiàn)不同的功能,小模塊的功能將在下面進(jìn)行介紹。</p><p>  多功能電子鐘的設(shè)計(jì)方案</p><p><b>  電子鐘模式</b></p><p>&

15、lt;b>  顯示模式</b></p><p><b>  選位模式</b></p><p>  系統(tǒng)開啟后,數(shù)碼管正常顯示。Functioswitch鍵按下,開始進(jìn)入計(jì)時(shí)調(diào)時(shí)狀態(tài),在這個(gè)狀態(tài)中,首先全部閃爍顯示,K鍵按下,小時(shí)閃爍,K鍵按下,分鐘閃爍,K鍵按下,秒鐘閃爍。Functioswitch鍵按下,進(jìn)入鬧鐘顯示狀態(tài)。Functioswitch

16、鍵按下,進(jìn)入鬧鐘調(diào)時(shí)狀態(tài),在這個(gè)狀態(tài)中,首先全部閃爍顯示,K鍵按下,小時(shí)閃爍,K鍵按下,分鐘閃爍,K鍵按下,秒鐘閃爍。</p><p><b>  三、各功能模塊設(shè)計(jì)</b></p><p>  電子鐘包括:主控模塊,計(jì)時(shí)模塊,鬧鐘模塊,輔控模塊,顯示模塊,蜂鳴器模塊,分頻器模塊。</p><p><b>  主控模塊</b&g

17、t;</p><p><b>  主要功能</b></p><p>  控制整個(gè)系統(tǒng),輸出現(xiàn)在的狀態(tài),以及按鍵信息。</p><p><b>  源代碼</b></p><p><b>  mc.vhd</b></p><p>  library iee

18、e;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_arith.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity mc is</p><p>  po

19、rt(functionswitch,k,set,lightkey: in std_logic;</p><p>  chose21,setout: out std_logic;</p><p>  lightswitch:buffer std_logic;</p><p>  modeout,kmodeout : out std_logic_vector(1 dow

20、nto 0);</p><p>  setcs,setcm,setch,setas,setam,setah:out std_logic);</p><p><b>  end mc;</b></p><p>  architecture work of mc is</p><p>  signal mode,kmode:

21、std_logic_vector(1 downto 0);</p><p>  signal light,chose21buf:std_logic;</p><p>  signal setcount:std_logic_vector(5 downto 0);</p><p><b>  begin</b></p><p&g

22、t;  process(functionswitch,k,set,lightkey)</p><p><b>  begin</b></p><p>  if functionswitch'event and functionswitch='1' then</p><p>  mode<=mode+'1&#

23、39;;</p><p><b>  end if;</b></p><p>  if lightkey'event and lightkey='1' then</p><p>  lightswitch<=not lightswitch;</p><p><b>  end if

24、;</b></p><p>  if mode="01" then</p><p>  chose21buf<='0';</p><p><b>  else </b></p><p>  chose21buf<='1';</p>

25、<p><b>  end if;</b></p><p>  if k'event and k='1' then</p><p>  if mode="01" or mode="11" then</p><p>  kmode<=kmode+'1'

26、;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  if set='1' then</p><p>  if mode = "01" then</p><p>  

27、if kmode="01" then </p><p>  setcount<="000001";</p><p>  elsif kmode="10" then</p><p>  setcount<="000010";</p><p>  elsi

28、f kmode="11" then</p><p>  setcount<="000100";</p><p><b>  else</b></p><p>  setcount<="000000";</p><p><b>  end i

29、f;</b></p><p>  elsif mode = "11" then </p><p>  if kmode="01" then </p><p>  setcount<="001000";</p><p>  elsif kmode="10&q

30、uot; then</p><p>  setcount<="010000";</p><p>  elsif kmode="11" then </p><p>  setcount<="100000";</p><p><b>  else</b>

31、</p><p>  setcount<="000000";</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p&

32、gt;  if set='0' then </p><p>  setcount<="000000";</p><p><b>  end if;</b></p><p>  setout<=set;</p><p>  modeout<=mode;</p&g

33、t;<p>  kmodeout<=kmode;</p><p>  chose21<=chose21buf;</p><p>  setcs<=setcount(0);setcm<=setcount(1);setch<=setcount(2);</p><p>  setas<=setcount(3);setam&

34、lt;=setcount(4);setah<=setcount(5);</p><p>  end process;</p><p><b>  end work;</b></p><p><b>  計(jì)時(shí)模塊</b></p><p><b>  主要功能</b><

35、/p><p>  記錄時(shí)間,正常計(jì)時(shí)。</p><p><b>  源代碼</b></p><p>  Count60.vhd</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all; </p><p>  u

36、se ieee.std_logic_arith.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity count60 is</p><p>  port( clk ,clr :in std_logic;</p><p>  co : out std_logic;

37、 </p><p>  outh :out std_logic_vector(7 downto 4);</p><p>  outl :out std_logic_vector(3 downto 0)); </p><p>  end count60 ;</p><p>  archi

38、tecture work of count60 is</p><p>  signal bufh:std_logic_vector(7 downto 4);</p><p>  signal bufl:std_logic_vector(3 downto 0);</p><p>  begin

39、 </p><p>  process(clk) </p><p><b>  begin</b></p><p>  if clr='0' then</p><p>  bufh<="0000";</p><p>  bufl

40、<="0000";</p><p>  elsif(clk'event and clk='1')then</p><p>  if(bufh="0101"and bufl="1001")then</p><p><b>  co<='1';<

41、;/b></p><p>  bufh<="0000";</p><p>  bufl<="0000";</p><p>  elsif(bufl="1001")then</p><p>  bufl<="0000";</p>

42、<p>  bufh<=bufh+1;</p><p><b>  else</b></p><p>  bufl<=bufl+1;</p><p><b>  co<='0';</b></p><p><b>  end if;</b&

43、gt;</p><p><b>  end if;</b></p><p>  outh<=bufh;outl<=bufl;</p><p>  end process;</p><p><b>  end work;</b></p><p>  count24.

44、vhd</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all; </p><p>  use ieee.std_logic_arith.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p> 

45、 entity count24 is</p><p>  port( clk :in std_logic;</p><p>  co: out std_logic; </p><p>  outh :out std_logic_vector(7 downto 4);</p><p> 

46、 outl :out std_logic_vector(3 downto 0)); </p><p>  end count24 ;</p><p>  architecture a of count24 is</p><p>  signal bufh:std_logic_vector(7 downto 4);</p><p>

47、;  signal bufl:std_logic_vector(3 downto 0);</p><p>  begin </p><p>  process(clk) </p><p><b>  begin</b></p>

48、<p>  if(clk'event and clk='1')then</p><p>  if(bufh="0010"and bufl="0011")then</p><p><b>  co<='1';</b></p><p>  bufh<

49、;="0000";</p><p>  bufl<="0000";</p><p>  elsif(bufl="1001")then</p><p>  bufl<="0000";</p><p>  bufh<=bufh+1;</p>

50、;<p><b>  else</b></p><p>  bufl<=bufl+1;</p><p><b>  co<='0';</b></p><p><b>  end if;</b></p><p><b>  en

51、d if;</b></p><p>  outh<=bufh;outl<=bufl;</p><p>  end process;</p><p><b>  end a;</b></p><p><b>  keyen.vhd</b></p><p>

52、;  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity keyen is</p><p>  port(en, keyin:in std_logic;</p><p>  keyout: out std_logic);</p><p&

53、gt;  end keyen;</p><p>  architecture work of keyen is</p><p><b>  begin</b></p><p>  process(en,keyin)</p><p><b>  begin</b></p><p&g

54、t;  if en='1' then </p><p>  keyout<=keyin;</p><p><b>  else </b></p><p>  keyout<='0';</p><p><b>  end if;</b></p>

55、<p>  end process;</p><p><b>  end work;</b></p><p>  chose21.vhd</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  e

56、ntity chose21 is</p><p>  port(clk,add,chose : in std_logic;</p><p>  co : out std_logic);</p><p>  end chose21;</p><p>  architecture work of ch

57、ose21 is</p><p><b>  begin</b></p><p>  process(chose,clk,add)</p><p><b>  begin</b></p><p>  if chose='1' then </p><p><

58、;b>  co<=clk;</b></p><p><b>  else</b></p><p><b>  co<=add;</b></p><p><b>  end if;</b></p><p>  end process;</p&g

59、t;<p><b>  end work;</b></p><p><b>  鬧鐘模塊</b></p><p><b>  主要功能</b></p><p>  記錄鬧鐘時(shí)間信息,輸出鬧鐘時(shí)間信息</p><p><b>  源代碼</b>

60、</p><p><b>  Keyen.vhd</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity keyen is</p><p>  port(en, keyin:in std

61、_logic;</p><p>  keyout: out std_logic);</p><p>  end keyen;</p><p>  architecture work of keyen is</p><p><b>  begin</b></p><p>  process(en,k

62、eyin)</p><p><b>  begin</b></p><p>  if en='1' then </p><p>  keyout<=keyin;</p><p><b>  else </b></p><p>  keyout<=&

63、#39;0';</p><p><b>  end if;</b></p><p>  end process;</p><p><b>  end work;</b></p><p>  count60.vhd</p><p>  library ieee;<

64、/p><p>  use ieee.std_logic_1164.all; </p><p>  use ieee.std_logic_arith.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity count60 is</p><p>  po

65、rt( clk ,clr :in std_logic;</p><p>  co : out std_logic; </p><p>  outh :out std_logic_vector(7 downto 4);</p><p>  outl :out std_logic_vector(3 downto

66、0)); </p><p>  end count60 ;</p><p>  architecture work of count60 is</p><p>  signal bufh:std_logic_vector(7 downto 4);</p><p>  signal bufl:std_logic_vector(3 do

67、wnto 0);</p><p>  begin </p><p>  process(clk) </p><p><b>  begin</b></p><p>  if clr='0' then<

68、/p><p>  bufh<="0000";</p><p>  bufl<="0000";</p><p>  elsif(clk'event and clk='1')then</p><p>  if(bufh="0101"and bufl=&qu

69、ot;1001")then</p><p><b>  co<='1';</b></p><p>  bufh<="0000";</p><p>  bufl<="0000";</p><p>  elsif(bufl="100

70、1")then</p><p>  bufl<="0000";</p><p>  bufh<=bufh+1;</p><p><b>  else</b></p><p>  bufl<=bufl+1;</p><p><b>  co&

71、lt;='0';</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  outh<=bufh;outl<=bufl;</p><p>  end process;</p>

72、<p><b>  end work;</b></p><p>  count24.vhd</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all; </p><p>  use ieee.std_logic_arith.all;</

73、p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity count24 is</p><p>  port( clk :in std_logic;</p><p>  co: out std_logic; </p>&l

74、t;p>  outh :out std_logic_vector(7 downto 4);</p><p>  outl :out std_logic_vector(3 downto 0)); </p><p>  end count24 ;</p><p>  architecture a of count24 is</p>&

75、lt;p>  signal bufh:std_logic_vector(7 downto 4);</p><p>  signal bufl:std_logic_vector(3 downto 0);</p><p>  begin </p><p>  

76、process(clk) </p><p><b>  begin</b></p><p>  if(clk'event and clk='1')then</p><p>  if(bufh="0010"and bufl="0011")then</p><p&g

77、t;<b>  co<='1';</b></p><p>  bufh<="0000";</p><p>  bufl<="0000";</p><p>  elsif(bufl="1001")then</p><p>  bu

78、fl<="0000";</p><p>  bufh<=bufh+1;</p><p><b>  else</b></p><p>  bufl<=bufl+1;</p><p><b>  co<='0';</b></p>

79、<p><b>  end if;</b></p><p><b>  end if;</b></p><p>  outh<=bufh;outl<=bufl;</p><p>  end process;</p><p><b>  end a;</b>

80、;</p><p><b>  輔控模塊</b></p><p><b>  主要功能</b></p><p>  處理顯示,以及蜂鳴器的信號(hào)。時(shí)鐘輸入與鬧鐘輸入相比較,組成鬧鐘功能,以及整點(diǎn)報(bào)時(shí)功能。</p><p><b>  源代碼</b></p><

81、p><b>  Ac.vhd</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity ac is</p>

82、<p>  port(clk,lightonoff:in std_logic;</p><p>  mode,kmode:in std_logic_vector(1 downto 0);</p><p>  csh,csl,cmh,cml,chh,chl,ash,asl,amh,aml,ahh,ahl:in std_logic_vector(3 downto 0);</p

83、><p>  q0,q1,q2,q3,q4,q5,q6,q7:out std_logic_vector(3 downto 0);</p><p>  lightswitch,sound512,sound1024,timeok:out std_logic);</p><p><b>  end ac;</b></p><p>

84、  architecture work of ac is</p><p>  signal q0b,q1b,q2b,q3b,q4b,q5b,q6b,q7b: std_logic_vector(3 downto 0);</p><p><b>  begin</b></p><p>  process(chh,cmh,csh,ash,ahh,am

85、h,chl,cml,csl,asl,ahl,aml,mode,kmode,clk)</p><p><b>  begin</b></p><p><b>  --閃爍功能開始</b></p><p>  if mode="00" or mode="01" then </p&g

86、t;<p><b>  q0b<=csl;</b></p><p><b>  q1b<=csh;</b></p><p>  q2b<="1010";</p><p><b>  q3b<=cml;</b></p><p&

87、gt;<b>  q4b<=cmh;</b></p><p>  q5b<="1010";</p><p><b>  q6b<=chl;</b></p><p><b>  q7b<=chh;</b></p><p>  elsif

88、 mode="10" or mode="11" then </p><p><b>  q0b<=asl;</b></p><p><b>  q1b<=ash;</b></p><p>  q2b<="1010";</p><

89、;p><b>  q3b<=aml;</b></p><p><b>  q4b<=amh;</b></p><p>  q5b<="1010";</p><p><b>  q6b<=ahl;</b></p><p><

90、b>  q7b<=ahh;</b></p><p><b>  end if;</b></p><p>  if clk ='1' then </p><p>  if mode="00" or mode="10" then</p><p>

91、;<b>  q0<=q0b;</b></p><p><b>  q1<=q1b;</b></p><p><b>  q2<=q2b;</b></p><p><b>  q3<=q3b;</b></p><p><b&g

92、t;  q4<=q4b;</b></p><p><b>  q5<=q5b;</b></p><p><b>  q6<=q6b;</b></p><p><b>  q7<=q7b;</b></p><p><b>  else

93、 </b></p><p>  case kmode is</p><p>  when "01" =></p><p>  q0<="1111";</p><p>  q1<="1111";</p><p><b>

94、  q2<=q2b;</b></p><p><b>  q3<=q3b;</b></p><p><b>  q4<=q4b;</b></p><p><b>  q5<=q5b;</b></p><p><b>  q6<

95、=q6b;</b></p><p><b>  q7<=q7b;</b></p><p>  when "10" =></p><p><b>  q0<=q0b;</b></p><p><b>  q1<=q1b;</b&g

96、t;</p><p><b>  q2<=q2b;</b></p><p>  q3<="1111";</p><p>  q4<="1111";</p><p><b>  q5<=q5b;</b></p><p&

97、gt;<b>  q6<=q6b;</b></p><p><b>  q7<=q7b;</b></p><p>  when "11" =></p><p><b>  q0<=q0b;</b></p><p><b> 

98、 q1<=q1b;</b></p><p><b>  q2<=q2b;</b></p><p><b>  q3<=q3b;</b></p><p><b>  q4<=q4b;</b></p><p><b>  q5<=

99、q5b;</b></p><p>  q6<="1111";</p><p>  q7<="1111";</p><p>  when others =></p><p>  q0<="1111";</p><p>  q1

100、<="1111";</p><p>  q2<="1111";</p><p>  q3<="1111";</p><p>  q4<="1111";</p><p>  q5<="1111";</p>

101、<p>  q6<="1111";</p><p>  q7<="1111";</p><p><b>  end case;</b></p><p><b>  end if;</b></p><p><b>  else

102、</b></p><p><b>  q0<=q0b;</b></p><p><b>  q1<=q1b;</b></p><p><b>  q2<=q2b;</b></p><p><b>  q3<=q3b;</b&g

103、t;</p><p><b>  q4<=q4b;</b></p><p><b>  q5<=q5b;</b></p><p><b>  q6<=q6b;</b></p><p><b>  q7<=q7b;</b></p

104、><p><b>  end if;</b></p><p><b>  --閃爍功能完畢</b></p><p>  --整點(diǎn)報(bào)時(shí)功能開始</p><p>  if cmh="0101" and cml="1001" then</p><p&

105、gt;  if csh="0101" then</p><p>  if csl="0001" or csl="0010" or csl="0101" or csl="0111" then</p><p>  sound512<='1' ;</p><

106、;p>  elsif csl="1001" then</p><p>  sound1024<='1';</p><p><b>  else </b></p><p>  sound512<='0';</p><p>  sound1024<=

107、'0';</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  --正點(diǎn)報(bào)時(shí)功能完畢</p><p>  --顯示開

108、關(guān)功能開始</p><p>  if lightonoff='1' then</p><p>  lightswitch<='0';</p><p><b>  else </b></p><p>  lightswitch<='1';</p>&

109、lt;p><b>  end if;</b></p><p>  --顯示開關(guān)功能完畢</p><p><b>  --鬧鐘功能開始</b></p><p>  if chh=ahh and cmh=amh and chl=ahl and cml=aml then</p><p>  tim

110、eok<='1';</p><p><b>  else</b></p><p>  timeok<='0';</p><p><b>  end if;</b></p><p><b>  --鬧鐘功能完畢</b></p>

111、;<p>  end process;</p><p><b>  end work;</b></p><p><b>  顯示模塊</b></p><p><b>  主要功能</b></p><p>  處理輔控傳來的顯示信號(hào),在數(shù)碼管上直接的顯示數(shù)字。<

112、;/p><p><b>  源代碼</b></p><p>  Chose81.vhd</p><p>  library ieee; </p><p>  use ieee.std_logic_1164.all;</p><p> 

113、 use ieee.std_logic_unsigned.all;</p><p>  use ieee.std_logic_arith.all;</p><p>  entity chose81 is</p><p>  port (d0,d1,d2,d3,d4,d5,d6,d7: in std_logic_vector(3 downto 0);</p>

114、;<p>  sel : in std_logic_vector(2 downto 0);</p><p>  q: out std_logic_vector(3 downto 0)</p><p><b>  );</b></p><p>  end chose81;</p><p>  archit

115、ecture behave of chose81 is</p><p><b>  begin</b></p><p>  process(sel)</p><p><b>  begin </b></p><p>  case sel is</p><p>  when &

116、quot;000"=>q<=d0;</p><p>  when "001"=>q<=d1;</p><p>  when "010"=>q<=d2;</p><p>  when "011"=>q<=d3;</p><p>

117、  when "100"=>q<=d4;</p><p>  when "101"=>q<=d5;</p><p>  when "110"=>q<=d6;</p><p>  when "111"=>q<=d7;</p>&

118、lt;p>  when others=>q<="XXXX";</p><p><b>  end case;</b></p><p>  end process;</p><p>  end behave;</p><p>  BCD7DIS.vhd</p><p

119、>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity bcd7dis is</p><p>  port(bcdm :in std_logic_vector(3 downto 0);</p><p>  a,b,c,d,e,f,g : out s

120、td_logic);</p><p>  end bcd7dis;</p><p>  architecture art of bcd7dis is</p><p>  signal w : std_logic_vector(6 downto 0);</p><p><b>  begin</b></p>

121、<p>  process(bcdm)</p><p><b>  begin</b></p><p>  a<=w(6);b<=w(5);c<=w(4);d<=w(3);e<=w(2);f<=w(1);g<=w(0);</p><p>  case bcdm is </p>&

122、lt;p>  when "0000" =>w<= "1111110";</p><p>  when "0001" =>w<= "0110000";</p><p>  when "0010" =>w<= "1101101";&l

123、t;/p><p>  when "0011" =>w<= "1111001";</p><p>  when "0100" =>w<= "0110011";</p><p>  when "0101" =>w<= "10110

124、11";</p><p>  when "0110" =>w<= "1011111";</p><p>  when "0111" =>w<= "1110000";</p><p>  when "1000" =>w<=

125、"1111111";</p><p>  when "1001" =>w<= "1111011";</p><p>  when "1111" =>w<= "0000000";</p><p>  when others =>w<=

126、 "0000001";</p><p><b>  end case;</b></p><p>  end process;</p><p><b>  end art;</b></p><p><b>  SWSC.vHD</b></p>&

127、lt;p>  library ieee; </p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity swsc is</p><p>  port (en,clk:in std_logic;

128、</p><p>  q: out std_logic_vector(2 downto 0));</p><p><b>  end swsc;</b></p><p>  architecture work of swsc is</p><p><b>  begin</b></p>

129、<p>  process(clk,en)</p><p>  variable x:std_logic_vector(2 downto 0);</p><p><b>  begin </b></p><p>  if (clk'event and clk='1') then</p><

130、;p>  if en='1' then</p><p>  if(x<7) then</p><p><b>  x:=x+1;</b></p><p><b>  else </b></p><p>  x:=(others=>'0');</

131、p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  q<=x;</b></p><p>  end p

132、rocess;</p><p><b>  end work;</b></p><p>  translat38.vhd</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity translat

133、e38 is </p><p>  port(ind:in std_logic_vector(2 downto 0);</p><p>  a,b,c,d,e,f,g,h:out std_logic);</p><p>  end translate38;</p><p>  architecture work of translate38

134、is</p><p>  signal w :std_logic_vector(7 downto 0);</p><p><b>  begin </b></p><p>  process(ind)</p><p><b>  begin</b></p><p>  a&l

135、t;=w(7);b<=w(6);c<=w(5);d<=w(4);e<=w(3);f<=w(2);g<=w(1);h<=w(0);</p><p>  case ind is</p><p>  when "000" =>w<= "00000001";</p><p>  w

136、hen "001" =>w<= "00000010";</p><p>  when "010" =>w<= "00000100";</p><p>  when "011" =>w<= "00001000";</p>&

137、lt;p>  when "100" =>w<= "00010000";</p><p>  when "101" =>w<= "00100000";</p><p>  when "110" =>w<= "01000000";&l

138、t;/p><p>  when "111" =>w<= "10000000";</p><p>  when others =>w<= "XXXXXXXX";</p><p><b>  end case;</b></p><p>  end

139、 process;</p><p><b>  end work;</b></p><p><b>  蜂鳴器模塊</b></p><p><b>  主要功能</b></p><p>  處理輔控傳來的蜂鳴器信號(hào),輸出蜂鳴器直接信號(hào)。</p><p>

140、<b>  源代碼</b></p><p><b>  Sound.vhd</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_arith.all;</p

141、><p>  use ieee.std_logic_unsigned.all;</p><p>  entity sound is</p><p>  port(clk1,timeok,clk512,clk1024,en512,en1024:in std_logic;</p><p>  ring:out std_logic);</p>

142、;<p>  end sound;</p><p>  architecture work of sound is</p><p><b>  begin</b></p><p>  process(en512,en1024,clk512,clk1024,clk1,timeok)</p><p><b

143、>  begin</b></p><p>  if clk512='1' and en512='1' then</p><p>  ring<=clk512;

144、 </p><p>  elsif clk1024='1' and en1024='1' then</p><p>  ring<=clk1024;</p><p>  elsif timeok='1' and clk1='1' then<

145、/p><p>  ring<=clk1024;</p><p><b>  else</b></p><p>  ring<='0';</p><p><b>  end if;</b></p><p>  end process;</p>

146、<p><b>  end work;</b></p><p><b>  分頻器模塊</b></p><p><b>  主要功能</b></p><p>  系統(tǒng)輸入只要求一個(gè)1024HZ的脈沖信號(hào),分頻器模塊將1024HZ分為1HZ,4HZ,512HZ,1024HZ,供各個(gè)模塊使用

147、。</p><p><b>  源代碼</b></p><p>  Clkcut.vhd</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_arith.all;&l

148、t;/p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity clkcut is</p><p>  port(clk:in std_logic;</p><p>  clk1,clk4,clk512,clk1024:out std_logic);</p><p>

149、;  end clkcut;</p><p>  architecture work of clkcut is</p><p>  signal w:std_logic_vector(9 downto 0);</p><p><b>  begin</b></p><p>  process(clk)</p>

150、<p><b>  begin</b></p><p>  if clk'event and clk='1' then</p><p><b>  w<=w+'1';</b></p><p><b>  end if;</b></p&g

151、t;<p>  clk1<=w(9);</p><p>  clk4<=w(7);</p><p>  clk512<=w(0);</p><p>  clk1024<=clk;</p><p>  end process;</p><p><b>  end work;

152、</b></p><p><b>  四、設(shè)計(jì)實(shí)現(xiàn)過程</b></p><p>  在系統(tǒng)設(shè)計(jì)之前設(shè)想了這個(gè)程序的答題思路,最終形成了電子鐘的第一版本設(shè)想圖</p><p>  但是在編程的過程中發(fā)現(xiàn)對(duì)于按鍵的處理信息并不能做的很好,所以加上了kenen塊,形成了電子鐘的最終版本,也是連線形成頂層文件的根據(jù)。</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)論