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

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p>  一、設計題目和要求-----------------------------------------------------------------2</p><p>  二、設計思路-------------------------------------------------------------

2、-------------2</p><p>  三、單元模塊設計--------------------------------------------------------------------3</p><p>  -----------------------------------------------------------------------------------

3、---------8</p><p>  3.1、FENPIN模塊設計-----------------------------------------------------(3,4)</p><p>  3.2、FIRST模塊設計------------------------------------------------------(4,5)</p><p>

4、;  3.3、JIANJISHU模塊設計------------------------------------------------(5,6)</p><p>  3.4、CHOICE和VIEW模塊設計------------------------------------------(7,8)</p><p>  四、硬件實驗-----------------------------

5、----------------------------------------------8</p><p>  五、心得體會---------------------------------------------------------------------------9</p><p>  附頁:程序代碼--------------------------------------

6、----------------------------------10</p><p>  ---------------------------------------------------------------------------------------------17</p><p><b>  一、設計題目和要求</b></p><

7、;p>  設計題目為:微波爐定時控制器</p><p>  要求:1、復位開關:</p><p><b>  啟動開關: </b></p><p><b>  烹調時間設置: </b></p><p><b>  烹調時間顯示:</b></p><p&

8、gt;<b>  七段碼測試:</b></p><p><b>  啟動輸出:</b></p><p>  按TEST鍵可以測試七段碼管,顯示為“8888”;</p><p>  設定時間后,按啟動鍵開始烹調,同時七段碼顯示剩余時間,時間為0時,顯示烹調完成信息“CDEF”</p><p><

9、b>  二、設計思路</b></p><p>  A.先有一個大概的模塊話設計,就如下圖:</p><p>  預設初值 倒計時減計數(shù) 輸出數(shù)據(jù)</p><p>  B:再在上面大模塊的基礎上進行改進</p><p><b>  增加復位端和測試端</b><

10、/p><p><b>  復位輸出數(shù)據(jù)</b></p><p>  預設 倒計時 實現(xiàn)閃爍</p><p>  初值 減計數(shù)</p><p><b>  測試</b></p><p>  C:具體的設計過程:</p><p>

11、;  1、剛開始設計是先完成了FENPIN模塊的設計,因為這個模塊比較簡單。</p><p>  2、然后是對設初值大模塊的設計,在這一部分的設計遇到兩方案:</p><p>  (1)設計四個按鈕的初始話模塊,四個按鈕分別控制秒,十秒,分,十分4個數(shù)值的初始化加;</p><p> ?。?)設計兩個按鈕的初始化模塊,兩個按鈕分別提供一個移位信號和一個加信號;<

12、;/p><p>  兩個方案都用了一下,發(fā)現(xiàn)還好是2號方案比較好,不僅程序上比較簡單而且省了很多按鈕的使用,比較符合實際應用的要求;</p><p>  3、在完成了初始話模塊的設計之后,接下來就是減計數(shù)模塊的設計,只要把由初始化模塊所提供的數(shù)據(jù)進行減計數(shù)即可;</p><p>  4、在完成以上三個模塊時,程序的已經(jīng)初見雛形了,然后把這三個模塊連接起來,添加上復位和測

13、試按鈕就可以了;</p><p>  5、用動態(tài)掃描的方法隊數(shù)據(jù)進行輸出,其中在輸入數(shù)據(jù)是使相應的數(shù)據(jù)進行閃爍。</p><p><b>  三.單元模塊設計</b></p><p>  單元模塊設計部分主要有4部分組成:</p><p> ?。ㄒ唬?、FENPIN模塊,用于給后面的JIANJISHU模塊和VIEW模塊提供

14、合適的頻率。</p><p>  (二)、FIRST模塊,用于設定微波爐的初試時間而用。</p><p> ?。ㄈIANJISHU模塊,配合FENPIN模塊提供的時鐘頻率實現(xiàn)每秒減一的計數(shù)。</p><p> ?。ㄋ模?、CHOICE模塊和VIEW模塊,利用動態(tài)掃描的方法顯出對應數(shù)字。</p><p>  3.1 FENPIN模塊的設計&

15、lt;/p><p>  FENPIN模塊主要利用1Khz的時鐘信號進行分頻。得到1s的outlck時鐘信號(用于后期JIANJISHU模塊的使用)和0.5s的screen的時鐘信號(用于VIEW的顯示閃爍使用)。</p><p>  說明:試驗箱上有1Khz,2Khz等多個時鐘信號。而在這里采用1Khz的信號使用。1Khz/1000=1s,所以采用1Khz進行千分頻得到1s的信號。</p

16、><p><b>  實驗波形圖:</b></p><p>  每秒產(chǎn)生一個時鐘脈沖</p><p> ?。ǔ绦虼a見附錄。)</p><p>  Move此時數(shù)碼管有輸出</p><p>  Move選中時數(shù)碼管無輸出</p><p>  3.2 FIRST模塊設計<

17、/p><p>  FIRST模塊主要用于對時間設定初始值而用,其中設有ABLE和CLK兩時鐘信號,分別用于外接按鈕信號而用,其中CLK用于進行加計數(shù),ABLE用于移位而用。輸出o1,o2,o3和o4分別是輸出秒,十秒,分,十分。而輸出o5是為VIEW實現(xiàn)閃爍而用的。其中的RES和TEST要配合JIANJISHU模塊中的RES和TEST同時控制才能有效(具體會在JIANJISHU模塊中詳細介紹)。</p>

18、<p>  說明:開始設計時,由于沒有考慮全面設計了一個有4個按鍵分別控制秒,十秒,分,十分的方案,因為課設要接近與實際設計,而實際不可能給予如此多的按鍵,這樣不僅占用大量空間而且產(chǎn)品也是非常的不美觀,所以之后就改成現(xiàn)在的由ABLE控制移位,再由CLK給予時鐘脈沖的方式進行設計,最后發(fā)現(xiàn)這樣的設計不僅沒有上述的缺點更加使我的程序變的更加的簡單。</p><p><b>  波形圖仿真: &

19、lt;/b></p><p>  每個上升沿都會進行加計數(shù)</p><p>  當res和test為零時輸出分別是“0000”和“8888”</p><p>  Able在每個脈沖到來是都會進行移位,而o5正好顯示出正在加的位數(shù)</p><p>  注意:編寫此段代碼是要注意秒位和分位都是記從1記到9然后進位自己變成0的,</p&

20、gt;<p>  而十秒位和十分位是記到5然后變成0的。</p><p><b> ?。ǔ绦虼a見附頁)</b></p><p>  3.3 JIANJISHU模塊的設計</p><p>  JIANJISHU模塊的主要用于對FIRST的數(shù)據(jù)進行選擇性的處理和輸出:</p><p> ?。ㄒ唬?、當JIANJ

21、ISHU模塊中的res=0時,由于res作為輸入同樣也連接這FRIST模塊中</p><p>  的res,他們是由一個輸入共同控制的,所以此時輸出的就是“0000”;</p><p> ?。ǘ?、當JIANJISHU模塊中的test=0時,同res一樣的道理,此時輸出為“8888”;</p><p> ?。ㄈ攓4=15(輸出為F)或start=0時,LED就

22、不會亮了,表示工作完成或處</p><p>  于等待狀態(tài),此時不對FIRST模塊中的數(shù)據(jù)進行任何處理就直接輸出;</p><p> ?。ㄋ模?、在以上條件都不滿足的情況下,若此時start=1,那么JIANJISHU模塊才</p><p>  開始了真正的工作狀態(tài),即配合FENPIN模塊中時鐘outclk開始每秒減一的記時計數(shù);</p><p&g

23、t;  本程序中復位鍵res和test的詳細說明:</p><p>  這里的res和test和模塊FRIST中的res和test是用同一個控制端,而且JIANJISHU的res和test是必不可少的。因為每次進行計數(shù)完后由于是利用信號進行減計數(shù),在記完一次數(shù)之后q1,q2,q3和q4都會保持最后一次的狀態(tài),如果不及時清零的話,那么下一次的res,test以及加計數(shù)就是只能對前一級的輸入進行復位和測試,輸出的將是

24、前一級的各個位數(shù)減去q1,q2,q3和q4的值,所以在JIANJISHU模塊中進行清零是十分重要的。</p><p><b>  波形圖仿真:</b></p><p>  輸入初值為“0015”</p><p>  當start=1時開始配合clks的始終上升沿開始減計數(shù)</p><p>  在各位都記到0時,就數(shù)碼管就

25、會顯示 “FEDC”同時LED熄滅</p><p>  這就是上次提到的復位是清零了所有的中間信號,這樣輸出為FIRST中提供原始數(shù)據(jù)</p><p><b> ?。ǔ绦虼a見附頁)</b></p><p>  3.4 CHOICE模塊和VIEW模塊</p><p>  CHOICE模塊和VIEW模塊必須放在一起進行使用

26、,CHOICE模塊是進行數(shù)據(jù)選則而使用的,VIEW模塊是用于在相應的為進行輸出對應的數(shù),兩者和起來就是一個動態(tài)掃描的過程。</p><p>  A:CHOICE模塊;</p><p>  說明:這里的clk時鐘信號是使用和FENPIN模塊中一樣的時鐘信號(1Khz),因為人</p><p>  的眼睛對時間的分辨為20個微秒,用1Khz的信號完全能滿足這樣的要求;要

27、注意CHOICE有兩個輸出,o2顯然輸出的是對應的數(shù)據(jù)信號,而o1要輸出的是一個位選信號,是為下一個模塊VIEW顯示而用。</p><p><b>  B:VIEW模塊;</b></p><p>  說明:f1是接受位信號用的,f2是接受數(shù)據(jù)而用的。</p><p>  詳細說明一下screen和able的作用:</p><

28、p>  Screen是有FENPIN模塊通過對時鐘信號分頻得到的,當在模塊FRIST選中某一</p><p>  進行加數(shù)初始化是,VIEW就可以在時鐘screen在為1是正常輸出able所指的那位,</p><p>  當screen為0時,able所指的那位不能對應輸出,這樣就能達到讓相應的數(shù)碼管閃爍</p><p><b>  的效果。<

29、/b></p><p><b>  波形圖:</b></p><p> ?。?程序代碼見附頁)</p><p><b>  四.硬件實驗</b></p><p><b>  管腳設置</b></p><p>  注釋:Clk1:選用的是1Khz的信

30、號;</p><p>  Clk2,Move,Rest,Testt:選用的是按鈕信號;</p><p>  Startt:使用的是開關信號;</p><p>  Lighto:LED輸出;</p><p><b>  五、心得體會</b></p><p>  這次我獨立完成了一次完整的程序設計,在

31、整個的設計過程中我感覺我的動手能力得到了比較高的提高吧,學了的東西如果連這么一個比較簡單的課設都不能完成的話我感覺是比較羞愧的一件事情。</p><p>  在整個的設計過程中現(xiàn)在回頭好好回想一下我覺得還是有很多不足的,做任何事情起步的時候就應該有一個全局觀,但是剛開始由于我沒有考慮完全,在FIRST模塊種設計了有四個按鍵控制的初始化程序,之后發(fā)現(xiàn)這樣不僅程序非常的繁瑣,而且這種課設應該和實際好好聯(lián)系一下,有誰家

32、的微波爐就光是剛開始設定初值都有這么多按鈕,那么不僅難看而且比較耗資源,使用也不是最方便的,所以之后經(jīng)過分析后選擇了現(xiàn)在使用的由兩個按鈕就能事先數(shù)據(jù)初始化的功能。因此在以后的設計工作中也要學會有大局觀。</p><p>  同是在編寫復位和測試兩個按鍵的功能是遇到了比較大的麻煩,總是輸出一些莫名其妙的數(shù)據(jù),之后發(fā)現(xiàn)是由于在JIANJISHU模塊的中的中間信號沒有清零而導致的,這樣的一個遇到困難然后去解決這個問題的

33、過程讓我對中間信號有了比較深刻的理解。</p><p>  在完成大半個程序之后,我發(fā)現(xiàn)在初始化數(shù)據(jù)的時候沒有任何的提示是在對哪以為進行加,所以就去請教了老師,以老師的方案就是用一個時間較長的時鐘信號對輸出數(shù)碼管的管腳進行或操作(數(shù)碼管是共陰),當時我嫌這么方法寫的代碼比較長,所以我就嘗試了一下在輸出數(shù)碼管的位選上做文章,用這個較長的時鐘信號和位信號進行位操作,這樣可以實現(xiàn)閃爍,但是在時鐘信號為’1’時輸入的位信

34、號是“111”,由于實驗箱上的數(shù)碼管都進行了引腳的鎖定,所以會讓第8個數(shù)碼管點亮,所以這個方案宣告失敗,最后就采用了現(xiàn)程序使用的方法,和老師的差不多,寫起來也比較方便。</p><p>  總的來說這樣的課程設計比上課有意思多了,在實際中還是有很多不是在課本上能學的到的東西,這個需要自己去理解,去總結的。</p><p><b>  附頁:</b></p>

35、<p>  ————————————微波爐定時控制器程序代碼————————————</p><p>  第一部分:TOP(頂層文件)</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsig

36、ned.all;</p><p>  entity top is</p><p>  port(rest,clk1,clk2,move,startt,testt:in std_logic;</p><p>  lighto:out std_logic;</p><p>  sel:out std_logic_vector(2 downto 0

37、);</p><p>  seg:out std_logic_vector(7 downto 0));</p><p><b>  end;</b></p><p>  architecture three of top is</p><p>  component fenpin is</p><p&

38、gt;  port(clk:in std_logic; 分頻</p><p>  outclk,screen:out std_logic);</p><p>  end component;</p><p>  component first is</p><p>  port(clk,able,res,tes

39、t:in std_logic; 初始化數(shù)據(jù)</p><p>  o1,o2,o3,o4,o5:out std_logic_vector(3 downto 0));</p><p>  end component;</p><p>  component jianjishu is</p><p>  

40、port(clks,start,res,test:in std_logic;</p><p>  in1,in2,in3,in4:in std_logic_vector(3 downto 0); 減計數(shù)</p><p>  light:out std_logic;</p><p>  out1,out2,out3,out4:out std_logi

41、c_vector(3 downto 0));</p><p>  end component;</p><p>  component choice is</p><p>  port(clk:std_logic;</p><p>  f1,f2,f3,f4:in std_logic_vector(3 downto 0);</p>

42、<p>  o1:out std_logic_vector(1 downto 0); 位選</p><p>  o2:out std_logic_vector(3 downto 0));</p><p>  end component;</p><p>  component view is</p><p&g

43、t;  port(screen:in std_logic;</p><p>  f1:in std_logic_vector(1 downto 0);</p><p>  f2,able:in std_logic_vector(3 downto 0); 顯示輸出</p><p>  segout:out std_logic_vector(7 down

44、to 0);</p><p>  selout:out std_logic_vector(2 downto 0));</p><p>  end component;</p><p>  signal b,c,d,e,f,g,h,i,j:std_logic_vector(3 downto 0);</p><p>  signal a,k:st

45、d_logic;</p><p>  signal q:std_logic_vector(1 downto 0);</p><p>  signal p:std_logic_vector(3 downto 0);</p><p><b>  begin</b></p><p>  u1: fenpin port map

46、(clk=>clk1,outclk=>a,screen=>k);</p><p>  u2: first port map (clk=>clk2,res=>rest,test=>testt,able=>move,</p><p>  o1=>b,o2=>c,o3=>d,o4=>e,o5=>j);</p>

47、<p>  u3:jianjishu port map (clks=>a,start=>startt,res=>rest,test=>testt,in1=>b,in2=>c,</p><p>  in3=>d,in4=>e,light=>lighto,out1=>f,out2=>g,out3=>h,out4=>i);<

48、/p><p>  u4:choice port map (clk=>clk1,f1=>f,f2=>g,f3=>h,f4=>i,o1=>q,o2=>p);</p><p>  u5:view port map (able=>j,screen=>k,f1=>q,f2=>p,segout=>seg,selout=>

49、sel);</p><p><b>  end;</b></p><p>  ————————————————————————————————————</p><p>  第二部分:FENPIN(時鐘分頻)</p><p>  library ieee;</p><p>  use ieee.st

50、d_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity fenpin is</p><p>  port(clk:in std_logic;</p><p>  outclk,screen:out std_logic);</p>

51、<p><b>  end;</b></p><p>  architecture first of fenpin is</p><p>  signal Q1,Q2:std_logic;</p><p><b>  begin</b></p><p>  one:process(clk)

52、</p><p>  variable count1:integer range 0 to 1002;</p><p><b>  begin</b></p><p><b>  Q1<='0';</b></p><p>  if count1>1000 then Q1&

53、lt;='1';count1:=0;</p><p>  elsif clk'event and clk='1' then count1:=count1+1; 分出1秒信號</p><p><b>  end if;</b></p><p>  end process;</p>

54、<p>  two:process(clk)</p><p>  variable count2:integer range 0 to 500;</p><p><b>  begin</b></p><p>  if clk'event and clk='1' then </p><p&

55、gt;  if count2<250 then Q2<='1';count2:=count2+1;</p><p>  else Q2<='0';count2:=count2+1; 閃爍信號</p><p><b>  end if;</b></p><p><

56、;b>  end if;</b></p><p>  if count2>499 then count2:=0;</p><p><b>  end if;</b></p><p>  end process;</p><p>  outclk<=Q1;</p><p&g

57、t;  screen<=Q2;</p><p><b>  end; </b></p><p>  第三部分:FIRST(數(shù)據(jù)初始化)</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use

58、 ieee.std_logic_unsigned.all;</p><p>  entity first is</p><p>  port(clk,able,res,test:in std_logic;</p><p>  o1,o2,o3,o4,o5:out std_logic_vector(3 downto 0));</p><p>&

59、lt;b>  end;</b></p><p>  architecture two of first is</p><p>  signal q1,q2,q3,q4,q5:std_logic_vector(3 downto 0);</p><p><b>  begin</b></p><p>  p

60、rocess(able)</p><p><b>  begin</b></p><p>  if able'event and able='1' then </p><p>  if q5<4 then q5<=q5+1; 位選信號,選擇相應的位進行初始</p><p&g

61、t;  else q5<="0000"; 化,其中“0000”為空位。</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process; </p><p>  p

62、rocess(clk,res,test,q4)</p><p><b>  begin</b></p><p>  if res='0' then q1<="0000";q2<="0000";q3<="0000";q4<="0000"; --復位

63、鍵</p><p>  elsif test='0' then q1<="1000";q2<="1000";q3<="1000";q4<="1000"; --測試鍵</p><p>  elsif clk'event and clk='1' th

64、en </p><p>  case q5 is</p><p>  when "0001"=> if q1<9 then q1<=q1+1;</p><p>  else q1<="0000"; 秒位加數(shù)</p><p><b>  end if;&

65、lt;/b></p><p>  when "0010"=> if q2<5 then q2<=q2+1;</p><p>  else q2<="0000"; 十秒位加數(shù)</p><p><b>  end if;</b></p><p&

66、gt;  when "0011"=> if q3<9 then q3<=q3+1;</p><p>  else q3<="0000"; 分位加數(shù)</p><p><b>  end if;</b></p><p>  when "0100"=&

67、gt; if q4<5 then q4<=q4+1;</p><p>  else q4<="0000"; 十分位加數(shù)</p><p><b>  end if;</b></p><p>  when others=>null;</p><p><b>

68、;  end case;</b></p><p><b>  end if;</b></p><p>  end process;</p><p><b>  o1<=q1;</b></p><p><b>  o2<=q2;</b></p>

69、<p><b>  o3<=q3;</b></p><p><b>  o4<=q4;</b></p><p>  o5<=q5; --在VIEW模塊中選擇閃爍位</p><p><b>  end;</b>

70、;</p><p>  ————————————————————————————————————</p><p>  第四部分:JIANJISHU(數(shù)據(jù)按秒倒計時)</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use

71、ieee.std_logic_unsigned.all;</p><p>  entity jianjishu is</p><p>  port(clks,start,res,test:in std_logic;</p><p>  in1,in2,in3,in4:in std_logic_vector(3 downto 0);</p><p&

72、gt;  light:out std_logic;</p><p>  out1,out2,out3,out4:out std_logic_vector(3 downto 0));</p><p><b>  end;</b></p><p>  architecture one of jianjishu is</p><p

73、>  signal q1,q2,q3,q4:std_logic_vector(3 downto 0);</p><p><b>  begin</b></p><p>  process(start,clks,res,test,q4)</p><p>  variable a:std_logic_vector(1 downto 0);

74、</p><p><b>  begin</b></p><p>  if res='0' or test='0' then q1<="0000";q2<="0000";q3<="0000";q4<="0000";</p&

75、gt;<p>  --對信號都清零設置</p><p>  elsif q4=(in4-15) or start='0' then a:="00";light<='0'; </p><p>  --當q4=15或start=0時不進行減計數(shù),同時LED不亮</p><p>  elsif

76、start='1' then a:="11";light<='1';</p><p>  --當start=1時LED點亮同時開始倒計時</p><p><b>  case a is</b></p><p>  when "11"=>if clks'e

77、vent and clks='1' then</p><p>  if (in1-q1)=0 then q1<=(in1-9);q2<=q2+1;</p><p>  else q1<=q1+1;</p><p><b>  end if;</b></p><p>  --q1開始為0,

78、當q1=in1時,對q1賦值為(in1-9),為負數(shù),</p><p>  同時對q2進行加1,那么(in2-q2)就可以視線減1,若不是那么q1<=q1+1,可以實現(xiàn)</p><p> ?。╥n1-q1)從9開始的倒計數(shù)</p><p>  if (in2-q2)=0 and (in1-q1)=0 then </p><p>  q3

79、<=q3+1;q2<=(in2-5);q1<=(in1-9);</p><p><b>  end if;</b></p><p>  --當輸出out1=0和out2=0時進位減1,同時out1=9,out2=5;</p><p>  if (in3-q3)=0 and (in2-q2)=0 and (in1-q1)=0 t

80、hen</p><p>  q4<=q4+1;q3<=(in3-9);q2<=(in2-5);q1<=(in1-9);</p><p><b>  end if;</b></p><p>  if (in4-q4)=0 and (in3-q3)=0 and (in2-q2)=0 and (in1-q1)=0 </p

81、><p>  thenq4<=(in4-15);q3<=(in3-14);q2<=(in2-13);q1<=(in1-12);</p><p><b>  end if;</b></p><p>  --當所有計數(shù)完畢(都為0)時,實現(xiàn)輸出FEDC;</p><p><b>  end i

82、f;</b></p><p>  when others=>null;</p><p><b>  end case;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  out1&l

83、t;=(in1-q1);</p><p>  out2<=(in2-q2);</p><p>  out3<=(in3-q3);</p><p>  out4<=(in4-q4);</p><p><b>  end;</b></p><p>  ————————————————

84、————————————————————</p><p>  第五部分:CHOICE(數(shù)據(jù)選擇模塊)</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><

85、p>  entity choice is</p><p>  port(clk:std_logic;</p><p>  f1,f2,f3,f4:in std_logic_vector(3 downto 0);</p><p>  o1:out std_logic_vector(1 downto 0);</p><p>  o2:out

86、 std_logic_vector(3 downto 0));</p><p><b>  end;</b></p><p>  architecture one of choice is</p><p>  signal q:std_logic_vector(1 downto 0);</p><p><b>

87、  begin</b></p><p>  process(clk)</p><p><b>  begin</b></p><p>  if clk'event and clk='1' then q<=q+1;</p><p><b>  end if;</b&

88、gt;</p><p><b>  case q is</b></p><p>  when "00" => o2<=f1; </p><p>  when "01" => o2<=f2;</p><p>  when "10" =&g

89、t; o2<=f3; 選擇輸出數(shù)據(jù)</p><p>  when "11" => o2<=f4; </p><p>  when others=> null;</p><p><b>  end case;</b></p><p>  end process

90、;</p><p>  o1<=q; --位選信號</p><p><b>  end;</b></p><p>  ————————————————————————————————————</p><p>  第六部分:VIEW(顯示模塊)</p><p&

91、gt;  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity view is</p><p>  port(screen:in std_logic;</p>

92、<p>  f1:in std_logic_vector(1 downto 0);</p><p>  f2,able:in std_logic_vector(3 downto 0);</p><p>  segout:out std_logic_vector(7 downto 0);</p><p>  selout:out std_logic_vec

93、tor(2 downto 0));</p><p><b>  end;</b></p><p>  architecture one of view is</p><p>  signal seg:std_logic_vector(6 downto 0);</p><p>  signal sel:std_logic

94、_vector(2 downto 0);</p><p><b>  begin</b></p><p>  selout<=sel;</p><p>  segout(6 downto 0)<=seg;</p><p>  sel<="000" when f1=0 else<

95、/p><p>  "001" when f1=1 else</p><p>  "010" when f1=2 else 相應的數(shù)據(jù)選擇對應的位進行輸出</p><p>  "011" when f1=3 else</p><p><b>  "000&quo

96、t;;</b></p><p>  segout(7)<='1' when f1=2 else '0'; --在第三個數(shù)碼管輸出小數(shù)點</p><p>  process(f2,able,sel)</p><p><b>  begin</b></p><p>

97、;  if (able="0001" and sel="000") or (able="0010" and sel="001") or </p><p>  (able="0011" and sel="010") or (able="0100" and sel="0

98、11") then</p><p>  if screen='1' then seg<="0000000"; --無輸出</p><p><b>  else</b></p><p>  case f2 is</p><p>  when "0000&qu

99、ot; => seg<="0111111";</p><p>  when "0001" => seg<="0000110";</p><p>  when "0010" => seg<="1011011";</p><p>  w

100、hen "0011" => seg<="1001111";</p><p>  when "0100" => seg<="1100110";</p><p>  when "0101" => seg<="1101101";</p&

101、gt;<p>  when "0110" => seg<="1111101";</p><p>  when "0111" => seg<="0000111";</p><p>  when "1000" => seg<="1111

102、111";</p><p>  when "1001" => seg<="1101111";</p><p>  when "1010" => seg<="1110111";</p><p>  when "1011" => s

103、eg<="1111100";</p><p>  when "1100" => seg<="0111001";</p><p>  when "1101" => seg<="1011110";</p><p>  when "1

104、110" => seg<="1111001";</p><p>  when "1111" => seg<="1110001";</p><p>  when others=>null;</p><p>  end case; --有

105、輸出</p><p>  end if; --實現(xiàn)閃爍</p><p><b>  else</b></p><p>  case f2 is</p><p>  when "0000" => seg<="0111111";<

106、/p><p>  when "0001" => seg<="0000110";</p><p>  when "0010" => seg<="1011011";</p><p>  when "0011" => seg<="1

107、001111";</p><p>  when "0100" => seg<="1100110";</p><p>  when "0101" => seg<="1101101";</p><p>  when "0110" =>

108、; seg<="1111101";</p><p>  when "0111" => seg<="0000111";</p><p>  when "1000" => seg<="1111111";</p><p>  when &quo

109、t;1001" => seg<="1101111";</p><p>  when "1010" => seg<="1110111";</p><p>  when "1011" => seg<="1111100";</p><

110、;p>  when "1100" => seg<="0111001";</p><p>  when "1101" => seg<="1011110";</p><p>  when "1110" => seg<="1111001"

111、;;</p><p>  when "1111" => seg<="1110001";</p><p>  when others=>null;</p><p>  end case; --在沒選中的位正常輸出</p><p><b>  end if;</b>

溫馨提示

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

評論

0/150

提交評論