2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  課 程 設(shè) 計(論文)</p><p>  課程名稱 :電子設(shè)計自動化 課程設(shè)計</p><p>  題目名稱 :多功能數(shù)字電子鐘</p><p>  專 業(yè) :電子信息科學(xué)與技術(shù)電子三班</p><p><b>  學(xué)  號 : </b></p><p>

2、;<b>  姓 名 :</b></p><p><b>  指導(dǎo)教師 :</b></p><p>  設(shè)計時間 :2011-2012-1學(xué)期16、17周</p><p><b>  目 錄</b></p><p>  一、課程設(shè)計的目的及要求:3</p>

3、<p>  1.1 課程設(shè)計的目的:3</p><p>  1.2課程設(shè)計的要求:3</p><p>  二、電子鐘的總的設(shè)計方案及原理圖:3</p><p>  2.1電子鐘的設(shè)計的總體框圖:3</p><p>  2.1.2、工作進程:4</p><p>  2.2電子鐘各部分的原理及其仿真

4、:4</p><p>  2.2.1 分頻器的設(shè)計原理及其仿真:4</p><p>  2.2.2 控制器的設(shè)計原理及其仿真:6</p><p>  2.2.3 調(diào)時器的設(shè)計原理及其仿真:7</p><p>  2.2.4 時鐘的設(shè)計原理及其仿真:7</p><p>  2.2.5 秒表的設(shè)計原理及其仿真:

5、10</p><p>  2.2.6 鬧鐘的設(shè)計原理及其仿真:13</p><p>  2.2.7 鬧鐘響鈴的設(shè)計原理及其仿真:15</p><p>  2.2.8 顯示模塊的設(shè)計原理及其仿真:17</p><p>  三、 電子鐘設(shè)計的總體仿真:20</p><p>  四、 收獲與體會:20</p&

6、gt;<p>  五、 參考文獻(xiàn):20</p><p>  一、課程設(shè)計的目的及要求:</p><p>  1.1 課程設(shè)計的目的:</p><p>  1、熟悉EDA工具設(shè)計數(shù)字電路的方法。</p><p>  2、掌握VHDL描述硬件的方法。</p><p>  3、加深對VHDL的理解和掌握。&l

7、t;/p><p>  1.2課程設(shè)計的要求:</p><p><b>  基本功能要求:</b></p><p>  設(shè)計一個電子時鐘,要求可以顯示時、分、秒,用戶可以設(shè)置時間。</p><p><b>  擴展功能要求:</b></p><p>  跑表功能,鬧鐘功能,調(diào)整數(shù)碼

8、管的亮度。</p><p>  二、電子鐘的總的設(shè)計方案及原理圖:</p><p>  2.1電子鐘的設(shè)計的總體框圖:</p><p><b>  2.1.1、</b></p><p>  2.1.2、工作進程:</p><p>  當(dāng)開機后,系統(tǒng)首先是時鐘狀態(tài),當(dāng)按下鍵8進入調(diào)時,鍵4調(diào)節(jié)時間,

9、再按下鍵8退出調(diào)時,按兩下鍵5進入秒表,同時鍵8為開始及清零,鍵1為結(jié)束及開始,再按兩下鍵5進入鬧鐘設(shè)置,鍵4調(diào)節(jié)時間,最后按兩下鍵5返回時鐘狀態(tài),</p><p>  2.2電子鐘各部分的原理及其仿真:</p><p>  2.2.1 分頻器的設(shè)計原理及其仿真:</p><p>  2.2.1.1、原理程序:</p><p>  libra

10、ry ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all; </p><p>  entity dvf is----------------狀態(tài)機控制模塊</p><p>  port(clk:in std_logic;

11、 -------輸入10MHZ信號</p><p>  clk_out1:out std_logic;</p><p>  clk_out2:out std_logic;</p><p>  clk_out3:out std_logic);</p><p><b>  end;</b></p><p&

12、gt;  architecture one of dvf is</p><p>  signal clk_tmp1: std_logic;</p><p>  signal clk_tmp2: std_logic;</p><p>  signal clk_tmp3: std_logic;</p><p>  signal cnt1:inte

13、ger range 0 to 4999999;</p><p>  signal cnt2:integer range 0 to 49999;</p><p>  signal cnt3:integer range 0 to 49;</p><p><b>  begin</b></p><p>  fen1: proc

14、ess(clk,clk_tmp1)--時鐘信號1秒,1HZ</p><p><b>  begin</b></p><p>  if clk'event and clk='1' then</p><p>  if cnt1<4999999 then</p><p>  cnt1<=cn

15、t1+1;</p><p><b>  else</b></p><p><b>  cnt1<=0; </b></p><p>  clk_tmp1<=NOT clk_tmp1 ;</p><p><b>  end if;</b></p><

16、p><b>  end if;</b></p><p>  clk_out1<=clk_tmp1; </p><p>  end process;</p><p>  fen2: process(clk,clk_tmp2)--跑表信號100HZ</p><

17、p><b>  begin</b></p><p>  if clk'event and clk='1' then</p><p>  if cnt2<49999 then cnt2<=cnt2+1;</p><p>  else cnt2<=0; clk_tmp2<=NOT clk_tmp

18、2 ;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  clk_out2<=clk_tmp2; </p><p>  end process;</p>

19、;<p>  fen3: process(clk,clk_tmp3)--用于控制模塊的時鐘</p><p><b>  begin</b></p><p>  if clk'event and clk='1' then</p><p>  if cnt3<49 then</p><

20、p>  cnt3<=cnt3+1;</p><p><b>  else</b></p><p><b>  cnt3<=0; </b></p><p>  clk_tmp3<=NOT clk_tmp3 ;</p><p><b>  end if;</b&g

21、t;</p><p><b>  end if;</b></p><p>  clk_out3<=clk_tmp3; </p><p>  end process;</p><p>

22、<b>  end ;</b></p><p>  2.2.1.2、分頻器的RTL仿真:</p><p>  2.2.2 控制器的設(shè)計原理及其仿真:</p><p>  2.2.2.1、控制器原理程序:</p><p>  library ieee;</p><p>  use ieee.std_

23、logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity control is</p><p>  port (ad_in: in std_logic; </p><p>  out_en: out std_logic_vector(1 down

24、to 0));</p><p><b>  end;</b></p><p>  architecture one of control is</p><p>  signal moshis:std_logic_vector(1 downto 0):="00";</p><p><b>  

25、begin</b></p><p>  process(ad_in)</p><p><b>  begin</b></p><p>  if ad_in'event and ad_in='1' then</p><p>  if moshis="10"then&l

26、t;/p><p>  moshis<="00"; </p><p>  else moshis<=moshis+1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end

27、 process;</p><p>  out_en<=moshis;</p><p><b>  end;</b></p><p>  2.2.2.2、RTL仿真:</p><p>  2.2.3 調(diào)時器的設(shè)計原理及其仿真:</p><p>  2.2.3.1、調(diào)時器的原理程序:</

28、p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity tiaoshi is</p><p>  port( clk_t,dis_clk : in std_logic;</p><p>  ad_in : in std

29、_logic;</p><p>  ad_out : out std_logic);</p><p><b>  end ;</b></p><p>  architecture bhv of tiaoshi is </p><p>  signal q1: std_logic;</p><p>

30、<b>  begin </b></p><p>  q1<=clk_t and dis_clk;</p><p>  ad_out<=q1 or ad_in;</p><p><b>  end;</b></p><p>  2.2.3.2、RTL仿真:</p><

31、p>  2.2.4 時鐘的設(shè)計原理及其仿真:</p><p>  2.2.4.1、時鐘的原理程序:</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p>&l

32、t;p>  entity clock is --時鐘</p><p>  port( en_in : in std_logic_vector(1 downto 0);</p><p>  clk_in : in std_logic;</p><p>  s_out1 : out std_logic_vector(3 downto 0

33、);--秒的個位</p><p>  s_out2 : out std_logic_vector(3 downto 0);--秒的十位</p><p>  m_out1 : out std_logic_vector(3 downto 0);--分的個位</p><p>  m_out2 : out std_logic_vector(3

34、downto 0);--分的十位</p><p>  h_out1 : out std_logic_vector(3 downto 0);--小時的個位</p><p>  h_out2 : out std_logic_vector(3 downto 0));--小時的十位</p><p><b>  end ;</b>&l

35、t;/p><p>  architecture one of clock is</p><p>  signal tmp10:std_logic_vector(3 downto 0);</p><p>  signal tmp:std_logic_vector(3 downto 0);</p><p>  signal m_tmp10:std_l

36、ogic_vector(3 downto 0);</p><p>  signal m_tmp:std_logic_vector(3 downto 0);</p><p>  signal h_tmp10:std_logic_vector(3 downto 0);</p><p>  signal h_tmp:std_logic_vector(3 downto 0)

37、;</p><p>  signal s_jinwei:std_logic;--秒的溢出</p><p>  signal m_jinwei:std_logic;--分鐘的溢出</p><p><b>  begin</b></p><p>  --************************************

38、*******************************</p><p>  no1:process(clk_in,tmp,tmp10)</p><p><b>  begin </b></p><p>  if clk_in'event and clk_in='1' then</p><p&g

39、t;  if en_in="00"then </p><p>  if (tmp10="0101" and tmp="1001") then </p><p>  tmp10<="0000";tmp<="0000";</p><p>  elsif tmp

40、="1001" then </p><p>  tmp<="0000";tmp10<=tmp10+1;</p><p>  else tmp<=tmp+1;</p><p><b>  end if;</b></p><p><b>  end if;&

41、lt;/b></p><p><b>  end if;</b></p><p>  if tmp10="0000" and tmp="0000" then s_jinwei<='1';</p><p>  else s_jinwei<='0';</

42、p><p><b>  end if;</b></p><p>  s_out2<=tmp10;</p><p>  s_out1<=tmp;</p><p>  end process;</p><p>  --**************************************

43、*****************************</p><p>  no2: process(s_jinwei,en_in,m_tmp,m_tmp10)--用來輸出分鐘</p><p><b>  begin </b></p><p>  if s_jinwei'event and s_jinwei='1'

44、then</p><p>  if en_in="00"then </p><p>  if (m_tmp10="0101" and m_tmp="1001") then </p><p>  m_tmp10<="0000";m_tmp<="0000";&

45、lt;/p><p>  elsif m_tmp="1001" then </p><p>  m_tmp<="0000";m_tmp10<=m_tmp10+1;</p><p>  else m_tmp<=m_tmp+1;</p><p><b>  end if;</b&

46、gt;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  if m_tmp10="0101" and m_tmp="1001" then m_jinwei<='1';</p>

47、<p>  else m_jinwei<='0';</p><p><b>  end if;</b></p><p>  m_out2<=m_tmp10;</p><p>  m_out1<=m_tmp;</p><p>  end process;</p>

48、<p>  --*******************************************************************</p><p>  no3: process(m_jinwei,en_in,h_tmp,h_tmp10)--用來輸出小時</p><p><b>  begin </b></p><p&g

49、t;  if m_jinwei'event and m_jinwei='1' then</p><p>  if en_in="00"then </p><p>  if (h_tmp10="0010" and h_tmp="0100") then </p><p>  h_tmp1

50、0<="0000";h_tmp<="0000";</p><p>  elsif h_tmp="1001" then </p><p>  h_tmp<="0000";h_tmp10<=h_tmp10+1;</p><p>  else h_tmp<=h_t

51、mp+1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  h_out2<=h_tmp10;</p><p>  h_o

52、ut1<=h_tmp;</p><p>  end process;</p><p><b>  end;</b></p><p>  2.2.4.2、時鐘的RTL仿真:</p><p>  2.2.5 秒表的設(shè)計原理及其仿真:</p><p>  2.2.5.1、秒表的原理程序:</

53、p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity second is --秒表</p><p>  port( en_in

54、 : in std_logic_vector(1 downto 0);</p><p>  clk_in ,jian1 : in std_logic;</p><p>  reset : in std_logic;</p><p>  s_out1 : out std_logic_vector(3 downto 0);--秒下一位的個位<

55、;/p><p>  s_out2 : out std_logic_vector(3 downto 0);--秒下一秒的十位</p><p>  m_out1 : out std_logic_vector(3 downto 0);--秒的個位</p><p>  m_out2 : out std_logic_vector(3 downto 0

56、);--秒的十位</p><p>  h_out1 : out std_logic_vector(3 downto 0);--分鐘的個位</p><p>  h_out2 : out std_logic_vector(3 downto 0));--分鐘的十位</p><p><b>  end ;</b></p>

57、<p>  architecture one of second is</p><p>  signal tmp10:std_logic_vector(3 downto 0);</p><p>  signal tmp:std_logic_vector(3 downto 0);</p><p>  signal m_tmp10:std_logic_ve

58、ctor(3 downto 0);</p><p>  signal m_tmp:std_logic_vector(3 downto 0);</p><p>  signal h_tmp10:std_logic_vector(3 downto 0);</p><p>  signal h_tmp:std_logic_vector(3 downto 0);</p

59、><p>  signal s_jinwei:std_logic;--秒下一位的溢出</p><p>  signal m_jinwei:std_logic;--秒的溢出</p><p>  signal start:std_logic:='0';</p><p><b>  begin</b></p&

60、gt;<p>  --*******************************************************************</p><p>  no1:process(clk_in,tmp,tmp10,reset,start) --用來輸出秒的下一位</p><p><b>  begin </b></p>

61、<p>  if reset='1' then tmp10<="0000";tmp<="0000";</p><p>  elsif start='1' then</p><p>  elsif clk_in'event and clk_in='1' then</

62、p><p>  if en_in="01"then </p><p>  if (tmp10="1001" and tmp="1001") then </p><p>  tmp10<="0000";tmp<="0000";</p><p&

63、gt;  elsif tmp="1001" then </p><p>  tmp<="0000";tmp10<=tmp10+1;</p><p>  else tmp<=tmp+1;</p><p><b>  end if;</b></p><p><b

64、>  end if;</b></p><p><b>  end if;</b></p><p>  if tmp10="1001" and tmp="1001" then s_jinwei<='1';--可能有錯誤,有待修改</p><p>  else s_ji

65、nwei<='0';</p><p><b>  end if;</b></p><p>  s_out2<=tmp10;</p><p>  s_out1<=tmp;</p><p>  end process;</p><p>  --************

66、*******************************************************no2: process(s_jinwei,en_in,m_tmp,m_tmp10,reset,start)--用來輸出秒</p><p><b>  begin </b></p><p>  if reset='1' then m_tmp1

67、0<="0000";m_tmp<="0000";</p><p>  elsif start='1' then</p><p>  elsif s_jinwei'event and s_jinwei='1' then</p><p>  if en_in="01&q

68、uot;then </p><p>  if (m_tmp10="0101" and m_tmp="1001") then </p><p>  m_tmp10<="0000";m_tmp<="0000";</p><p>  elsif m_tmp="1001&q

69、uot; then </p><p>  m_tmp<="0000";m_tmp10<=m_tmp10+1;</p><p>  else m_tmp<=m_tmp+1;</p><p><b>  end if;</b></p><p><b>  end if;<

70、/b></p><p><b>  end if;</b></p><p>  if m_tmp10="0101" and m_tmp="1001" then m_jinwei<='1';</p><p>  else m_jinwei<='0';<

71、/p><p><b>  end if;</b></p><p>  m_out2<=m_tmp10;</p><p>  m_out1<=m_tmp;</p><p>  end process;</p><p>  --*********************************

72、**********************************no3: process(m_jinwei,en_in,h_tmp,h_tmp10,reset,start)--用來輸出分鐘</p><p><b>  begin </b></p><p>  if reset='1' then h_tmp10<="0000&quo

73、t;;h_tmp<="0000";</p><p>  elsif start='1' then</p><p>  elsif m_jinwei'event and m_jinwei='1' then</p><p>  if en_in="01"then </p>

74、<p>  if (h_tmp10="0101" and h_tmp="1001") then </p><p>  h_tmp10<="0000";h_tmp<="0000";</p><p>  elsif h_tmp="1001" then </p>

75、<p>  h_tmp<="0000";h_tmp10<=h_tmp10+1;</p><p>  else h_tmp<=h_tmp+1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p>&l

76、t;p><b>  end if;</b></p><p>  h_out2<=h_tmp10;</p><p>  h_out1<=h_tmp;</p><p>  end process;</p><p>  process(jian1,start)</p><p><

77、b>  begin</b></p><p>  if jian1'event and jian1='1' then</p><p>  start<=not start;</p><p>  else start<=start;</p><p><b>  end if;<

78、/b></p><p>  end process; </p><p><b>  end;</b></p><p>  2.2.5.2、RTL仿真:</p><p>  2.2.6 鬧鐘的設(shè)計原理及其仿真:</p><p>  2.2.6.1 鬧鐘的原理程序</p><

79、p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity alarm is --鬧鐘的設(shè)置</p><p>  port( en_in : in st

80、d_logic_vector(1 downto 0);</p><p>  ala_set : in std_logic;</p><p>  sec,sec10 : out std_logic_vector(3 downto 0);</p><p>  min : out std_logic_vector(3 downto 0);--分的個位&

81、lt;/p><p>  min10 : out std_logic_vector(3 downto 0);--分的十位</p><p>  hr : out std_logic_vector(3 downto 0);--小時的個位</p><p>  hr10 : out std_logic_vector(3 downto 0));--小時

82、的十位</p><p><b>  end ;</b></p><p>  architecture one of alarm is</p><p>  signal m_tmp10:std_logic_vector(3 downto 0);</p><p>  signal m_tmp:std_logic_vector

83、(3 downto 0);</p><p>  signal h_tmp10:std_logic_vector(3 downto 0);</p><p>  signal h_tmp:std_logic_vector(3 downto 0);</p><p>  signal m_jinwei:std_logic;--分鐘的溢出</p><p&g

84、t;  signal s_jinwei:std_logic;</p><p>  signal s_tmp:std_logic_vector(3 downto 0);</p><p>  signal s_tmp10:std_logic_vector(3 downto 0);</p><p><b>  begin</b></p>

85、<p>  --*******************************************************************no1: process(ala_set,en_in,s_tmp,s_tmp10)--用來輸出秒</p><p><b>  begin </b></p><p>  if ala_set'event

86、 and ala_set='1' then</p><p>  if en_in="10"then </p><p>  if (s_tmp10="0101" and s_tmp="1001") then </p><p>  s_tmp10<="0000";s_t

87、mp<="0000";</p><p>  elsif s_tmp="1001" then </p><p>  s_tmp<="0000";s_tmp10<=s_tmp10+1;</p><p>  else s_tmp<=s_tmp+1;</p><p>

88、<b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  if s_tmp10="0101" and s_tmp="1001" then s_jinwei<

89、;='1';</p><p>  else s_jinwei<='0';</p><p><b>  end if;</b></p><p>  sec10<=s_tmp10;</p><p>  sec<=s_tmp;</p><p>  end

90、 process;</p><p>  --*******************************************************************no0: process(s_jinwei,en_in,m_tmp,m_tmp10)--用來輸出分鐘</p><p><b>  begin </b></p><p>

91、  if s_jinwei'event and s_jinwei='1' then</p><p>  if en_in="10"then </p><p>  if (m_tmp10="0101" and m_tmp="1001") then </p><p>  m_tmp10&

92、lt;="0000";m_tmp<="0000";</p><p>  elsif m_tmp="1001" then </p><p>  m_tmp<="0000";m_tmp10<=m_tmp10+1;</p><p>  else m_tmp<=m_tmp

93、+1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  if m_tmp10="0101" and m_tmp="100

94、1" then m_jinwei<='1';</p><p>  else m_jinwei<='0';</p><p><b>  end if;</b></p><p>  min10<=m_tmp10;</p><p>  min<=m_tmp;&l

95、t;/p><p>  end process;</p><p>  --*******************************************************************no2: process(m_jinwei,en_in,h_tmp,h_tmp10)--用來輸出小時</p><p><b>  begin </b&

96、gt;</p><p>  if m_jinwei'event and m_jinwei='1' then</p><p>  if en_in="10"then </p><p>  if (h_tmp10="0010" and h_tmp="0100") then </p&

97、gt;<p>  h_tmp10<="0000";h_tmp<="0000";</p><p>  elsif h_tmp="1001" then </p><p>  h_tmp<="0000";h_tmp10<=h_tmp10+1;</p><p&g

98、t;  else h_tmp<=h_tmp+1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  hr10<=h_tmp10;</p

99、><p>  hr<=h_tmp;</p><p>  end process;</p><p><b>  end;</b></p><p>  2.2.6.2、RTL仿真:</p><p>  2.2.7 鬧鐘響鈴的設(shè)計原理及其仿真:</p><p>  2.2.7.

100、1、鬧鐘響鈴的原理程序:</p><p><b>  --小時寄存器</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity hr_jicun is</p><p>  port( cl

101、k: in std_logic;</p><p>  adin: in std_logic_vector(3 downto 0);</p><p>  adin10:in std_logic_vector(3 downto 0);</p><p>  adout:out std_logic_vector(3 downto 0);</p><p&g

102、t;  adout10:out std_logic_vector(3 downto 0));</p><p><b>  end;</b></p><p>  architecture bhv of hr_jicun is</p><p><b>  begin </b></p><p>  pro

103、cess(clk)</p><p><b>  begin </b></p><p>  if clk'event and clk='1' then</p><p>  adout<=adin;adout10<=adin10;</p><p><b>  end if;<

104、;/b></p><p>  end process;</p><p><b>  end;</b></p><p>  --分鐘寄存器---------------------------------</p><p>  library ieee;</p><p>  use ieee.s

105、td_logic_1164.all;</p><p>  entity m_jicun is</p><p>  port( clk: in std_logic;</p><p>  adin: in std_logic_vector(3 downto 0);</p><p>  adin10:in std_logic_vector(3 do

106、wnto 0);</p><p>  adout:out std_logic_vector(3 downto 0);</p><p>  adout10:out std_logic_vector(3 downto 0));</p><p><b>  end;</b></p><p>  architecture bhv

107、 of m_jicun is</p><p><b>  begin </b></p><p>  process(clk)</p><p><b>  begin </b></p><p>  if clk'event and clk='1' then</p>

108、<p>  adout<=adin;adout10<=adin10;</p><p><b>  end if;</b></p><p>  end process;</p><p><b>  end;</b></p><p><b>  --比較器</b&

109、gt;</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity bijiaoqi is</p><p>  port (clk :

110、 in std_logic; </p><p>  alah_in: in std_logic_vector(3 downto 0);--鬧鐘小時個位輸入</p><p>  alah10_in:in std_logic_vector(3 downto 0);--鬧鐘小時十位輸入</p><p>  cloch_in: in std_logic_vector(3 d

111、ownto 0);--時鐘小時個位輸入</p><p>  cloch10_in:in std_logic_vector(3 downto 0);--時鐘小時十位輸入</p><p>  alam_in : in std_logic_vector(3 downto 0);--鬧鐘分鐘個位輸入</p><p>  alam10_in:in std_logic_vect

112、or(3 downto 0);--鬧鐘分鐘十位輸入</p><p>  clocm_in : in std_logic_vector(3 downto 0);--時鐘分鐘個位輸入</p><p>  clocm10_in:in std_logic_vector(3 downto 0);--時鐘分鐘十位輸入</p><p>  ad_out : out std_lo

113、gic );--驅(qū)動輸出 </p><p><b>  end;</b></p><p>  architecture bhv of bijiaoqi is</p><p><b>  begin</b></p><p>  process(alah_in,cloch_in ,clk, alam_i

114、n,clocm_in, alah10_in,cloch10_in , alam10_in,clocm10_in)</p><p><b>  begin</b></p><p>  if (alah_in=cloch_in and alam_in=clocm_in and alah10_in=cloch10_in and alam10_in=clocm10_in an

115、d alam_in>1)</p><p>  then ad_out<=clk ;else ad_out<='1'; </p><p><b>  end if;</b></p><p>  end process;</p><p><b>  end;</b>&l

116、t;/p><p>  2.2.8 顯示模塊的設(shè)計原理及其仿真:</p><p>  2.2.8.1顯示器的原理程序:</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.al

117、l;</p><p>  entity scanled is</p><p><b>  port(</b></p><p>  clk : in std_logic;</p><p>  alarmset : in std_logic_vector(1 d

118、ownto 0); --如果進入鬧鐘定時,則進行定時譯碼</p><p>  second : in std_logic_vector(1 downto 0); --如果進入秒表,則進行秒表譯碼</p><p>  sl,sh,ml,mh,hl,hh: in std_logic_vector(3 downto 0

119、); --走時掃描譯碼</p><p>  asl,ash,aml,amh,ahl,ahh : in std_logic_vector(3 downto 0); --鬧鐘定時譯碼</p><p>  sls,shs,mls,mhs,hls,hhs : in std_logic_vector(3 downto 0); --秒表譯碼</

120、p><p>  sg :out std_logic_vector(6 downto 0);</p><p>  bt :out std_logic_vector(7 downto 0));</p><p><b>  end;</b></p><p>  architecture bhv

121、of scanled is</p><p>  signal cnt8 : std_logic_vector(2 downto 0);</p><p>  signal a : std_logic_vector(3 downto 0);</p><p><b>  begin </b></p><p&g

122、t;  p1:process(cnt8,sl,sh,ml,mh,hl,hh,second,alarmset,sls,shs,mls,mhs,asl,ash,hhs,hls,aml,amh,ahl,ahh)</p><p><b>  begin</b></p><p>  case cnt8 is</p><p>  WHEN "0

123、00" => bt<="00000001";</p><p>  if alarmset="10" then a<=ahh(3 downto 0);</p><p>  elsif second ="01" then a<=hhs(3 downto 0);</p><p>

124、;  else a<=hh(3 downto 0);</p><p>  end if; --注意檢查,顯示的順序 WHEN "001" => bt<="00000010";</p><p>  if ala

125、rmset="10" then a<=ahl(3 downto 0);</p><p>  elsif second ="01" then a<=hls(3 downto 0);</p><p>  else a<=hl(3 downto 0);</p><p>  end if;

126、 </p><p>  WHEN "010" => bt<="00000100";a<="1010";</p><p>  WHEN "011" => bt<="00001000";</p>

127、;<p>  if alarmset="10" then a<=amh(3 downto 0);</p><p>  elsif second ="01" then a<=mhs(3 downto 0);</p><p>  else a<=mh(3 downto 0);</p><p>  

128、end if; </p><p>  WHEN "100" => bt<="00010000";</p><p>  if alarmset="10" then a<=aml(3 downto 0);</p>&

129、lt;p>  elsif second ="01" then a<=mls(3 downto 0);</p><p>  else a<=ml(3 downto 0);</p><p>  end if; </p><p>  WHEN &

130、quot;101" => bt<="00100000";a<="1010";</p><p>  WHEN "110" => bt<="01000000";</p><p>  if alarmset="10" then a<=ash(3 dow

131、nto 0);</p><p>  elsif second ="01" then a<=shs(3 downto 0);</p><p>  else a<=sh(3 downto 0);</p><p>  end if; </p>

132、;<p>  WHEN "111" => bt<="10000000";</p><p>  if alarmset="10" then a<=asl(3 downto 0);</p><p>  elsif second ="01" then a<=sls(3 down

133、to 0);</p><p>  else a<=sl(3 downto 0);</p><p><b>  end if; </b></p><p>  when others=>null;</p><p><b>  end case;</b></p><p&g

134、t;  end process p1;</p><p>  p2:process(clk)</p><p><b>  begin</b></p><p>  if clk'event and clk='1' then</p><p>  cnt8<=cnt8+1;</p>&

135、lt;p><b>  end if;</b></p><p>  end process p2;</p><p>  p3:process(a)</p><p><b>  begin</b></p><p><b>  case a is</b></p>

136、<p>  when "0000" =>sg<="0111111"; </p><p>  when "0001" =>sg<="0000110";</p><p>  when "0010" =>sg<="101101

137、1"; </p><p>  when "0011" =>sg<="1001111"; </p><p>  when "0100" =>sg<="1100110"; </p><p>  when "0101" =>

溫馨提示

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

評論

0/150

提交評論