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

下載本文檔

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

文檔簡介

1、<p><b>  1 緒論</b></p><p><b>  1.1設計目的</b></p><p>  本次設計的目的就是在掌握EDA實驗開發(fā)系統(tǒng)的初步使用基礎上,了解EDA技術,加深對計算機體系結構的理解。通過學習的VHDL語言結合電子電路的設計知識理論聯(lián)系實際,掌握所學的課程知識,學習VHDL基本單元電路的綜合設計應用。通過對

2、實用數(shù)字鐘的設計,鞏固和綜合運用計算機原理的基本理論和方法,理論聯(lián)系實際,提高設計、分析、解決計算機技術實際問題的獨立工作能力。</p><p><b>  1.2設計要求</b></p><p> ?。?)熟練掌握VHDL語言的結構特點并能運用到具體實際中。</p><p> ?。?)學會利用復雜的可編程邏輯器件進行簡單的電子系統(tǒng)設計。<

3、;/p><p> ?。?)熟悉并掌握基于EDA實驗開發(fā)系統(tǒng)設計實際問題的方法和步驟。</p><p>  (4)通過設計過程提高自己運用所學知識來分析解決問題的能力。</p><p><b>  1.3設計內容</b></p><p>  本課程設計中使用Altera公司的EP2C35系列的FPGA芯片,利用SOPC-NIO

4、SII-EP2C35開發(fā)板上的資源和QuartusII軟件,實現(xiàn)一個多功能數(shù)字時鐘。本設計的任務要求顯示格式為 小時-分鐘-秒鐘,整點報時,報時時間為10秒,即從整點前10秒鐘開始進行報時提示,喇叭開始發(fā)聲,直到過整點時,在 5秒LED開始閃爍,過整點后,停止閃爍。系統(tǒng)時鐘選擇時鐘模塊的10KHz,要得到1Hz時鐘信號,必須對系統(tǒng)時鐘進行10,000次分頻。調整時間的的按鍵用按鍵模塊的S1和S2,S1調節(jié)小時,每按下一次,小時增加一個小

5、時,S2調整分鐘,每按下一次,分鐘增加一分鐘。另外用S8按鍵作為系統(tǒng)時鐘復位,復位后全部顯示00-00-00。擴展內容:用16*16點陣顯示實現(xiàn)日期的動態(tài)顯示用4×4鍵盤陣列鍵盤替換按鍵實現(xiàn)日期、時鐘的調整,用液晶顯示模塊日期、時間的顯示。</p><p><b>  1.4設計環(huán)境</b></p><p>  本次課題設計方要用到的開發(fā)環(huán)境是Altera公

6、司的EDA設計工具軟件QuartusII。</p><p>  Altera公司的工作與EDA廠家緊密結合,使QuartusII軟件可以與其它工業(yè)標準的設計輸入、綜合和校驗工具相連接。設計者可以使用Altera或標準EDA輸入工具進行設計,使用QuartusII編譯器對Altera器件的設計進行編譯,并使用Altera或其它EDA校驗工具進行仿真。目前,QuartusII支持與Cadence,Mentor Gra

7、phics, Synopsys, Viewlogic等EDA工具接口。</p><p>  QuartusII的設計輸入、處理和校驗功能都集中在統(tǒng)一的開發(fā)環(huán)境下,這樣可以加快動態(tài)調試,縮短開發(fā)周期。</p><p>  QuartusII軟件支持多種硬件描述語言設計輸入,包括VHDL,Verilog HDL和Altera自己的硬件描述語言AHDL。</p><p>

8、  QuartusII軟件提供豐富的庫單元供設計調用,其中包括74系列的全部器件和一些基本的邏輯門,多種特殊的邏輯宏功能(Macro-Function)以及新型的參數(shù)化的兆功能(Mage-Function).調用庫單元進行設計,可以大大減輕工作量。</p><p>  2 VHDL簡介 </p><p>  2.1VHDL硬件描述語言簡介</p>

9、<p>  模塊是VHDL的基本描述單位,用于描述某個設計的功能或結構及其與其他模塊通信的外部端口。一個設計的結構可使用開關級原語、門級原語和用戶定義的原語方式描述; 設計的數(shù)據流行為使用連續(xù)賦值語句進行描述; 時序行為使用過程結構描述。一個模塊可以在另一個模塊中使用。</p><p>  說明部分用于定義不同的項,例如模塊描述中使用的寄存器和參數(shù)。語句定義設計的功能和結構。說明部分和語句可以散布在模

10、塊中的任何地方;但是變量、寄存器、線網和參數(shù)等的說明部分必須在使用前出現(xiàn)。為了使模塊描述清晰和具有良好的可讀性, 最好將所有的說明部分放在語句前。本書中的所有實例都遵守這一規(guī)范。</p><p>  在模塊中,可用下述方式描述一個設計:</p><p>  (1) 數(shù)據流方式;</p><p><b>  (2) 行為方式;</b></p

11、><p><b>  (3) 結構方式;</b></p><p>  (4) 上述描述方式的混合。</p><p>  VHDL模型中的所有時延都根據時間單位定義。 </p><p>  在順序過程中出現(xiàn)的語句是過程賦值模塊化的實例。模塊化過程賦值在下一條語句執(zhí)行前完成執(zhí)行。過程賦值可以有一個可選的時延。</p>

12、<p>  時延可以細分為兩種類型:</p><p>  (1) 語句間時延: 這是時延語句執(zhí)行的時延。</p><p>  (2) 語句內時延: 這是右邊表達式數(shù)值計算與左邊表達式賦值間的時延。</p><p>  在VHDL中可使用如下方式描述結構:</p><p>  (1) 內置門原語(在門級);</p>

13、<p>  (2) 開關級原語(在晶體管級);</p><p>  (3) 用戶定義的原語(在門級);</p><p>  (4) 模塊實例 (創(chuàng)建層次結構)。</p><p>  3 各模塊電路及其簡介</p><p><b>  3.1 分頻器模塊</b></p><p>  圖3.

14、1 分頻器模塊</p><p>  因為本實驗選用頻率為10KHZ,對于秒表的計時和進行數(shù)碼管的動態(tài)掃描來說,頻率都太大了,因此要將10KHz進行分頻處理,本次設計將分成1Hz頻率。</p><p>  3.2 控制調節(jié)模塊</p><p>  圖3.2 控制調節(jié)模塊</p><p>  本模塊用于時間與日期的切換與時間的調節(jié)、日期的調節(jié)以及

15、復位調節(jié),其中K1用于時間與日期的切換,S1、S2用于時間的調節(jié),S3、S4、S5用于日期的調節(jié),最后S8為復位按鍵。</p><p><b>  3.3 報警模塊</b></p><p><b>  圖3.3 報警模塊</b></p><p>  報警模塊中有兩個報警輸出,其一為蜂鳴器,在整點前十秒開始發(fā)聲;其二為LED

16、燈顯示輸出,在最后5秒按照一定的規(guī)律亮燈。本模塊受到前一模塊輸出分、秒的控制。</p><p>  3.4 數(shù)碼管顯示模塊</p><p>  圖3.4 數(shù)碼管顯示模塊</p><p>  很顯然,此模塊是用來進行數(shù)碼管顯示的,先進行動態(tài)掃描,然后將程序中要求輸出的部分通過7段數(shù)碼管顯示出來。其中K1用于控制顯示部分是日期還是時間。比之于靜態(tài)顯示,動態(tài)顯示有著不可替

17、代的優(yōu)點:占用數(shù)據線少,功耗</p><p><b>  小。</b></p><p>  3.5 16*16點陣控制模塊</p><p>  圖3.5 16*16點陣控制模塊</p><p>  本模塊用于控制后面的16*16點陣顯示模塊,其中keyc用于控制點陣的行掃描,S為4根數(shù)據總線,用于控制點陣數(shù)據的動態(tài)顯示。

18、</p><p>  3.6 16*16點陣顯示模塊</p><p>  圖3.6 16*16點陣顯示模塊</p><p>  該模塊用于滿足實驗內容中用16*16點陣動態(tài)顯示日期的要求。可以看出,輸出為每一行的數(shù)據,通過動態(tài)掃描之后就可以動態(tài)的顯示所有的16行數(shù)據。</p><p><b>  4 設計步驟</b>&l

19、t;/p><p><b>  4.1新建一個工程</b></p><p>  (1)打開Quartus II 12.1sp1仿真軟件,點擊File=>New Project Wizard按鈕創(chuàng)建一個新的工程。彈出如圖所示對話框:</p><p> ?。?)再點擊Next按鈕出現(xiàn)下一對話框并將工程名和文件名都命名為zjh:</p>

20、<p> ?。?)然后再點擊Next按鈕出現(xiàn)下一對話框將Family設置為cycloneIII,將Package設置為FBGA,將Picount設置為780,將Speed grade設置為8并選擇EP3C80F780C8器件,如圖所示:</p><p>  (4)最后點擊Next=>Finish按鈕完成新工程的創(chuàng)建。</p><p>  4.2新建一個VHDL文件<

21、/p><p>  點擊File=>New按鈕出現(xiàn)如圖所示對話框:</p><p>  選擇VHDL File完成文件創(chuàng)建,創(chuàng)建完成后如圖所示:</p><p>  4.3VHDL程序的編譯及仿真</p><p>  4.3.1VHDL程序的編譯</p><p>  將編寫好的符合實驗要求的VHDL程序復制在上圖所示的

22、對話框內,然后點擊Processing=>Start Compilation按鈕開始進行編譯,編譯完成并確保程序無誤后開始進行管腳分配。</p><p><b>  4.3.2管腳分配</b></p><p> ?。?)點擊Assignments=>Assignments Editor按鈕出現(xiàn)如圖所示對話框:</p><p>  再

23、點擊List、>>、OK按鈕出現(xiàn)如圖所示管腳分配對話框:</p><p>  然后按如下表所示的管腳順序進行分配:</p><p>  分配完成后再進行一次編譯以使管腳分配生效。</p><p>  4.3.3下載與仿真</p><p>  用下載線將電腦USB接口和試驗箱VGA接口相連接,點擊Tools=>Programm

24、er按鈕將Output File內的文件添加進去,再點擊Start按鈕將結果下載到試驗箱內。</p><p>  觀察并操作試驗箱看仿真結果能否滿足數(shù)字時鐘的設計需求。</p><p><b>  5 心得與體會</b></p><p>  這次的EDA課程設計是我大學的第三次課程設計,由于剛開始設計思路不清晰,對Quartus II 12.1

25、sp1仿真軟件的運用也不熟練而且相關的知識準備也不充分,所以拿到設計題目后感覺不知所措,不知道如何開始。但是通過一段時間的查閱資料和請教同學老師我發(fā)現(xiàn)設計多功能數(shù)字時鐘也并不十分困難,在他們的幫助與指導下我的課程設計也就順利的一步步展開。</p><p>  通過這次課程設計讓我體會到在實際的操作過程中,要把理論中所學的知識靈活地運用起來,在程序調試中會遇到各種各樣的問題,而耐心就是我們最好的幫手,遇事不能急、不

26、能慌,慢慢分析才能解決問題。這次課程設計提高了我解決問題的能力,使我學會了在設計中怎樣去查找問題,然后怎樣解決問題。</p><p>  這次課程設計讓我可以熟練的掌握了Quartus II 12.1sp1仿真軟件的操作,也了解了如何運用VHDL語言和FPGA芯片去解決實際問題,總之通過這次課程設計自己還是有了不小的收獲與提高。</p><p><b>  6 參考文獻</

27、b></p><p>  1 《SOPCIIEDA實驗指導書》(第二版)</p><p>  2 《SOPCII使用手冊》(第二版)</p><p>  3 http://jpkc.hdu.edu.cn/elec/eda/edanew_m/</p><p>  4 《EDA技術基礎》. 譚會生編著. 湖南大學出版社,2004<

28、/p><p>  5 《EDA技術實用教程》(第三版),潘松、黃繼業(yè)編著 ,科學出版社 ,2010</p><p><b>  7附錄</b></p><p>  附錄一 VHDL程序清單</p><p>  library ieee;</p><p>  use ieee.std_logic_116

29、4.all;</p><p>  use ieee.std_logic_arith.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  --------------------------------------------------------------------</p><

30、p>  entity zjh is</p><p>  port( Clk : in std_logic; --時鐘輸入</p><p>  S8 : in std_logic; --復位輸入</p><p>  S1,S2 : in std_logic; --Change Hour, Minut

31、e</p><p>  S3,S4,S5 : in std_logic; --Change Year, Month and Day</p><p>  spk : out std_logic; --蜂鳴器</p><p>  led : out std_logic_vector(3 downto 0); --整點輸

32、報時輸出</p><p>  Display : out std_logic_vector(7 downto 0); --七段碼管顯示輸出</p><p>  SEG_SEL : buffer std_logic_vector(2 downto 0); --七段碼管掃描驅動</p><p>  keyc : out std_l

33、ogic_vector(3 downto 0);</p><p>  keyr : out std_logic_vector(15 downto 0);</p><p>  K1 : in std_logic --顯示切換</p><p><b>  ); </b></p>&l

34、t;p><b>  end zjh;</b></p><p>  --------------------------------------------------------------------</p><p>  architecture behave of zjh is</p><p>  signal Disp_Temp

35、 : integer range 0 to 15;</p><p>  signal Disp_Decode : std_logic_vector(7 downto 0);</p><p>  signal SEC1,SEC10 : integer range 0 to 9; </p><p>  signal MIN1,MIN10 : inte

36、ger range 0 to 9;</p><p>  signal HOUR1,HOUR10 : integer range 0 to 9;</p><p>  signal Year1,Year10 : integer range 0 to 9;</p><p>  signal Month1,Month10: integer range 0 to 9;&l

37、t;/p><p>  signal Day1,Day10 : integer range 0 to 9;</p><p>  signal Music_Count : std_logic_vector(2 downto 0);</p><p>  signal Clk_Count1 : std_logic_vector(13 downto 0); -

38、-產生1Hz時鐘的分頻計數(shù)器</p><p>  signal Clk1Hz : std_logic;</p><p>  signal led_count : std_logic_vector(2 downto 0);</p><p>  signal led_display : std_logic_vector(3 downto 0);&l

39、t;/p><p>  signal cdount : std_logic_vector(3 downto 0);</p><p>  signal dount : std_logic_vector(12 downto 0);</p><p>  signal s : std_logic_vector(3 downto

40、 0);</p><p>  signal m,d,y : integer range 0 to 31;</p><p><b>  begin</b></p><p>  process(Clk) </p><p><b>  begin</b></p><p

41、>  if(Clk'event and Clk='1') then</p><p>  if(Clk_Count1<10000) then</p><p>  Clk_Count1<=Clk_Count1+1;</p><p><b>  else </b></p><p>  

42、Clk_Count1<="00000000000001";</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  Clk1Hz<=Clk_Count1(

43、13);</p><p>  process(Clk1Hz,S8)</p><p><b>  begin</b></p><p>  if(S8='0') then --系統(tǒng)復位</p><p><b>  SEC1<=0;</b></p><p&g

44、t;<b>  SEC10<=0;</b></p><p><b>  MIN1<=0;</b></p><p><b>  MIN10<=0;</b></p><p><b>  HOUR1<=0;</b></p><p>  H

45、OUR10<=0;</p><p>  Year10 <= 1;</p><p>  Year1 <= 3;</p><p>  Month10 <= 0;</p><p>  Month1 <= 1;</p><p>  Day10 <= 0;</p><p&g

46、t;  Day1 <= 1;</p><p>  elsif(Clk1Hz'event and Clk1Hz='1') then --正常運行 </p><p>  if (K1= '1') then</p><p>  if(S3='0') then --調節(jié)年&

47、lt;/p><p>  if(Year1=9) then</p><p><b>  Year1<=0;</b></p><p>  Year10<=Year10+1;</p><p>  elsif(Year10=9 and Year1=9) then</p><p><b>

48、  Year1<=0;</b></p><p>  Year10<=0;</p><p><b>  else </b></p><p>  Year1<=Year1+1;</p><p><b>  end if;</b></p><p>&l

49、t;b>  end if;</b></p><p>  if(S4='0') then --調節(jié)月</p><p>  if(Month1=9) then</p><p>  Month1<=0;</p><p>  Month10<=Month10+1;</p><p&g

50、t;  elsif(Month10=1 and Month1=2) then</p><p>  Month1<=0;</p><p>  Month10<=0;</p><p>  Year1<=Year1+1;</p><p><b>  else </b></p><p>

51、  Month1<=Month1+1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  if(S5='0') then --調節(jié)日</p><p>  if(Day1=9) then</p&g

52、t;<p><b>  Day1<=0;</b></p><p>  Day10<=Day10+1;</p><p>  elsif(Day10=3 and Day1=1) then</p><p><b>  Day1<=0;</b></p><p><b&g

53、t;  Day10<=0;</b></p><p>  Month1<=Month1+1;</p><p><b>  else </b></p><p>  Day1<=Day1+1;</p><p><b>  end if;</b></p><

54、p><b>  end if;</b></p><p>  elsif (K1 = '0') then</p><p>  if(S1='0') then --調節(jié)小時</p><p>  if(HOUR1=9) then</p><p><b>  HOUR1<

55、=0;</b></p><p>  HOUR10<=HOUR10+1;</p><p>  elsif(HOUR10=2 and HOUR1=3) then</p><p><b>  HOUR1<=0;</b></p><p>  HOUR10<=0;</p><p&g

56、t;  Day1<=Day1+1;</p><p><b>  else </b></p><p>  HOUR1<=HOUR1+1;</p><p><b>  end if;</b></p><p>  elsif(S2='0') then --調節(jié)分鐘</p

57、><p>  if(MIN1=9) then</p><p><b>  MIN1<=0;</b></p><p>  if(MIN10=5) then</p><p><b>  MIN10<=0;</b></p><p>  HOUR1<=HOUR1+1;&

58、lt;/p><p><b>  else </b></p><p>  MIN10<=MIN10+1;</p><p><b>  end if;</b></p><p><b>  else</b></p><p>  MIN1<=MIN1+1

59、;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  if(SEC1=9) then</p><p><b>  SE

60、C1<=0;</b></p><p>  if(SEC10=5) then</p><p><b>  SEC10<=0;</b></p><p>  if(MIN1=9) then</p><p><b>  MIN1<=0;</b></p><p

61、>  if(MIN10=5) then</p><p><b>  MIN10<=0;</b></p><p>  if (HOUR10 >= 2 and HOUR1 >= 3) then</p><p>  HOUR10 <= 0;</p><p>  HOUR1 <= 0;<

62、/p><p>  -- Day += 1;</p><p>  if (Day10 = 3 and Day1 = 0) then</p><p>  Day10 <= 0;</p><p>  Day1 <= 1;</p><p>  -- Month += 1;</p><p>  i

63、f (Month10 = 1 and Month1 = 2) then</p><p>  Month10 <= 0;</p><p>  Month1 <= 1;</p><p>  -- Year += 1;</p><p>  if (Year10 = 9 and Year1 = 9) then</p><

64、;p>  Year10 <= 0; </p><p>  Year1 <= 0;</p><p><b>  end if;</b></p><p>  if (Year1 < 9) then</p><p>  Year1 <= Year1 + 1;</p><p>

65、;  elsif (Year1 = 9) then</p><p>  Year10 <= Year10 + 1;</p><p>  Year1 <= 0;</p><p><b>  end if;</b></p><p><b>  end if;</b></p>&

66、lt;p>  if (Month1 < 9) then</p><p>  Month1 <= Month1 + 1;</p><p>  elsif (Month1 = 9) then</p><p>  Month10 <= Month10 + 1;</p><p>  Month1 <= 0;</p&

67、gt;<p><b>  end if;</b></p><p><b>  end if;</b></p><p>  if (Day1 < 9) then</p><p>  Day1 <= Day1 + 1;</p><p>  elsif (Day1 = 9) th

68、en</p><p>  Day10 <= Day10 + 1;</p><p>  Day1 <= 0;</p><p><b>  end if;</b></p><p>  elsif (HOUR1 < 9) then</p><p>  HOUR1 <= HOUR1

69、 + 1;</p><p>  elsif (HOUR1 = 9) then</p><p>  HOUR1 <= 0;</p><p>  HOUR10 <= HOUR10 + 1;</p><p><b>  end if;</b></p><p><b>  else

70、</b></p><p>  MIN10<=MIN10+1;</p><p><b>  end if;</b></p><p><b>  else</b></p><p>  MIN1<=MIN1+1;</p><p><b>  end

71、 if;</b></p><p><b>  else</b></p><p>  SEC10<=SEC10+1;</p><p><b>  end if;</b></p><p><b>  else </b></p><p>  

72、SEC1<=SEC1+1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process; </p><p>  process(Clk)</p><p><b>  beg

73、in</b></p><p>  if(Clk'event and Clk='1') then</p><p>  Music_Count<=Music_Count+1; </p><p>  if(MIN10=5 and MIN1=9 and SEC10=5 and SEC1=0) then --在59分50

74、秒開始提示</p><p>  if((SEC1 MOD 2)=0) then --在偶數(shù)秒開始發(fā)聲</p><p>  SPK<=Music_Count(2); --嘀</p><p><b>  else</b></p><p><b>  SPK<='0&#

75、39;;</b></p><p><b>  end if;</b></p><p>  elsif(MIN10=0 and MIN1=0 and SEC10=0 and SEC1=0) then</p><p>  SPK<=Music_Count(1); --嗒</p><p>

76、<b>  else</b></p><p><b>  SPK<='0';</b></p><p><b>  end if;</b></p><p><b>  end if; </b></p><p>  end proces

77、s;</p><p>  process(Clk)</p><p><b>  begin</b></p><p>  if(Clk1hz'event and Clk1hz='1') then</p><p>  if(MIN10=5 and MIN1=9 and SEC10=5 and SE

78、C1>4) then --在59分55秒開始提示</p><p>  led_Count<=led_Count+1; </p><p><b>  else</b></p><p>  led_count<="000";</p><p><b>  end if;&l

79、t;/b></p><p><b>  end if; </b></p><p>  end process;</p><p>  process(led_count)</p><p><b>  begin</b></p><p>  case (led_count

80、) is</p><p>  when "000"=>led_display<="0000";</p><p>  when "001"=>led_display<="1001";</p><p>  when "010"=>led_di

81、splay<="0110";</p><p>  when "011"=>led_display<="1010";</p><p>  when "100"=>led_display<="0101";</p><p>  when &qu

82、ot;101"=>led_display<="1111";</p><p>  when others=>led_display<="0000";</p><p>  end case; </p><p>  led<=led_display;</p><p>

83、  end process;</p><p>  process(SEG_SEL) </p><p><b>  begin</b></p><p>  if (K1 = '1') then</p><p>  case (SEG_SEL+1) is</p><p>  

84、when "000"=>Disp_Temp<=Year10;</p><p>  when "001"=>Disp_Temp<=Year1;</p><p>  when "010"=>Disp_Temp<=10;</p><p>  when "011&quo

85、t;=>Disp_Temp<=Month10;</p><p>  when "100"=>Disp_Temp<=Month1;</p><p>  when "101"=>Disp_Temp<=10;</p><p>  when "110"=>Disp_Temp

86、<=Day10;</p><p>  when "111"=>Disp_Temp<=Day1;</p><p><b>  end case;</b></p><p>  elsif (K1 = '0') then</p><p>  case (SEG_SEL+1)

87、 is</p><p>  when "000"=>Disp_Temp<=HOUR10;</p><p>  when "001"=>Disp_Temp<=HOUR1;</p><p>  when "010"=>Disp_Temp<=10;</p><

88、;p>  when "011"=>Disp_Temp<=MIN10;</p><p>  when "100"=>Disp_Temp<=MIN1;</p><p>  when "101"=>Disp_Temp<=10;</p><p>  when "1

89、10"=>Disp_Temp<=SEC10;</p><p>  when "111"=>Disp_Temp<=SEC1;</p><p><b>  end case;</b></p><p><b>  end if;</b></p><p>

90、;  end process;</p><p>  process(Clk)</p><p><b>  begin</b></p><p>  if(Clk'event and Clk='1') then --掃描累加 </p><p>  SEG_SEL<=SEG_SEL+1;&l

91、t;/p><p>  Display<=Disp_Decode;</p><p><b>  end if;</b></p><p>  end process;</p><p>  process(Disp_Temp) --顯示轉換</p><p><b>  begin&

92、lt;/b></p><p>  case Disp_Temp is</p><p>  when 0=>Disp_Decode<="00111111"; --0</p><p>  when 1=>Disp_Decode<="00000110"; --1</p><p

93、>  when 2=>Disp_Decode<="01011011"; --2</p><p>  when 3=>Disp_Decode<="01001111"; --3</p><p>  when 4=>Disp_Decode<="01100110"; --4</p

94、><p>  when 5=>Disp_Decode<="01101101"; --5</p><p>  when 6=>Disp_Decode<="01111101"; --6</p><p>  when 7=>Disp_Decode<="00000111";

95、 --7</p><p>  when 8=>Disp_Decode<="01111111"; --8</p><p>  when 9=>Disp_Decode<="01101111"; --9</p><p>  when 10=>Disp_Decode<="0100

96、0000"; ---</p><p>  when others=>Disp_Decode<="00000000"; --全滅</p><p><b>  end case;</b></p><p>  end process; </p><p>  process(cl

97、k) --顯示時序控制 </p><p><b>  begin</b></p><p>  if clk'event and clk='1' then</p><p>  dount<=dount+1;</p><p>  if dount=8191 then<

98、;/p><p>  dount<="0000000000000";</p><p>  if S=15 then</p><p>  S<="0000";</p><p><b>  else</b></p><p><b>  s&l

99、t;=S+1;</b></p><p><b>  end if;</b></p><p><b>  s<=s+1;</b></p><p><b>  else</b></p><p><b>  s<=S;</b></

100、p><p><b>  end if;</b></p><p>  if cdount<15 then</p><p>  cdount<=cdount+1;</p><p><b>  else</b></p><p>  cdount<="

101、0000";</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  keyc<=cdount;</p><p>  end process;</p><p>  process(s,c

102、dount) </p><p><b>  begin</b></p><p>  m<=Month10*10+Month1;</p><p>  d<=Day10*10+Day1;</p><p>  y<=year10*10+year1; &

103、lt;/p><p>  if s="0000" then</p><p>  case cdount is</p><p>  when "0000"=>keyr<="1111111111111111";--20</p><p>  when "0001&quo

104、t;=>keyr<="1100111110011111";</p><p>  when "0010"=>keyr<="1101011111101111";</p><p>  when "0011"=>keyr<="1101101111110111";&

105、lt;/p><p>  when "0100"=>keyr<="1101110111110111";</p><p>  when "0101"=>keyr<="1101111011101111";</p><p>  when "0110"=&g

106、t;keyr<="1101111100011111";</p><p>  when "0111"=>keyr<="1111111111111111";</p><p>  when "1000"=>keyr<="1111111111111111"; </

107、p><p>  when "1001"=>keyr<="1111000000011111";</p><p>  when "1010"=>keyr<="1110111111101111";</p><p>  when "1011"=>ke

108、yr<="1101111111110111";</p><p>  when "1100"=>keyr<="1101111111110111";</p><p>  when "1101"=>keyr<="1101111111110111";</p>

109、<p>  when "1110"=>keyr<="1110111111101111";</p><p>  when "1111"=>keyr<="1111000000011111";</p><p>  when others=>keyr<="11

110、11111111111111";</p><p><b>  end case;</b></p><p>  elsif s="0001" then</p><p><b>  case y is</b></p><p><b>  when 13=&g

111、t;</b></p><p>  case cdount is</p><p>  when "0000"=>keyr<="1111111111111111";--13</p><p>  when "0001"=>keyr<="1111111111011111

112、";</p><p>  when "0010"=>keyr<="1111111111001111";</p><p>  when "0011"=>keyr<="1100000000000111";</p><p>  when "0100&

113、quot;=>keyr<="1111111111111111";</p><p>  when "0101"=>keyr<="1111111111111111";</p><p>  when "0110"=>keyr<="1111111111111111"

114、;;</p><p>  when "0111"=>keyr<="1111111111111111";</p><p>  when "1000"=>keyr<="1111111111111111";</p><p>  when "1001"

115、=>keyr<="1110011111001111";</p><p>  when "1010"=>keyr<="1101111111110111";</p><p>  when "1011"=>keyr<="1101111111110111";<

116、;/p><p>  when "1100"=>keyr<="1101111011110111";</p><p>  when "1101"=>keyr<="1101111011110111";</p><p>  when "1110"=>

117、keyr<="1110000100001111";</p><p>  when "1111"=>keyr<="1111111111111111";</p><p>  when others=>keyr<="1111111111111111";</p><p&

118、gt;<b>  end case;</b></p><p><b>  when 14=></b></p><p>  case cdount is</p><p>  when "0000"=>keyr<="1111111111111111";--14</

119、p><p>  when "0001"=>keyr<="1111111111011111";</p><p>  when "0010"=>keyr<="1111111111001111";</p><p>  when "0011"=>ke

120、yr<="1100000000000111";</p><p>  when "0100"=>keyr<="1111111111111111";</p><p>  when "0101"=>keyr<="1111111111111111";</p>

121、<p>  when "0110"=>keyr<="1111111111111111";</p><p>  when "0111"=>keyr<="1111111111111111";</p><p>  when "1000"=>keyr<

122、;="1111111111111111";</p><p>  when "1001"=>keyr<="1111100111111111";</p><p>  when "1010"=>keyr<="1111101011111111";</p><

123、;p>  when "1011"=>keyr<="1111101100111111";</p><p>  when "1100"=>keyr<="1111101111011111";</p><p>  when "1101"=>keyr<=&qu

124、ot;1111101111101111";</p><p>  when "1110"=>keyr<="1100000000000111";</p><p>  when "1111"=>keyr<="1111101111111111";</p><p>

125、;  when others=>keyr<="1111111111111111";</p><p><b>  end case;</b></p><p><b>  when 15=></b></p><p>  case cdount is</p><p>

126、  when "0000"=>keyr<="1111111111111111";--15</p><p>  when "0001"=>keyr<="1111111111011111";</p><p>  when "0010"=>keyr<="

127、;1111111111001111";</p><p>  when "0011"=>keyr<="1100000000000111";</p><p>  when "0100"=>keyr<="1111111111111111";</p><p> 

128、 when "0101"=>keyr<="1111111111111111";</p><p>  when "0110"=>keyr<="1111111111111111";</p><p>  when "0111"=>keyr<="1111

129、111111111111";</p><p>  when "1000"=>keyr<="1111111111111111";</p><p>  when "1001"=>keyr<="1110011100000111";</p><p>  when

130、 "1010"=>keyr<="1101111110110111";</p><p>  when "1011"=>keyr<="1101111110110111";</p><p>  when "1100"=>keyr<="110111111

131、0110111";</p><p>  when "1101"=>keyr<="1101111110110111";</p><p>  when "1110"=>keyr<="1110000001110111";</p><p>  when &quo

132、t;1111"=>keyr<="1111111111111111";</p><p>  when others=>keyr<="1111111111111111";</p><p><b>  end case;</b></p><p><b>  when

133、16=></b></p><p>  case cdount is</p><p>  when "0000"=>keyr<="1111111111111111";--16</p><p>  when "0001"=>keyr<="11111111110

134、11111";</p><p>  when "0010"=>keyr<="1111111111001111";</p><p>  when "0011"=>keyr<="1100000000000111";</p><p>  when "

135、0100"=>keyr<="1111111111111111";</p><p>  when "0101"=>keyr<="1111111111111111";</p><p>  when "0110"=>keyr<="1111111111111111

136、";</p><p>  when "0111"=>keyr<="1111111111111111";</p><p>  when "1000"=>keyr<="1111111111111111";</p><p>  when "1001&

137、quot;=>keyr<="1111000000011111";</p><p>  when "1010"=>keyr<="1110111011101111";</p><p>  when "1011"=>keyr<="1101111101110111"

138、;;</p><p>  when "1100"=>keyr<="1101111101110111";</p><p>  when "1101"=>keyr<="1101111101110111";</p><p>  when "1110"

139、=>keyr<="1110000011001111";</p><p>  when "1111"=>keyr<="1111111111111111";</p><p>  when others=>keyr<="1111111111111111";</p>&

140、lt;p><b>  end case;</b></p><p><b>  when 17=></b></p><p>  case cdount is</p><p>  when "0000"=>keyr<="1111111111111111";--17

141、</p><p>  when "0001"=>keyr<="1111111111011111";</p><p>  when "0010"=>keyr<="1111111111001111";</p><p>  when "0011"=&

142、gt;keyr<="1100000000000111";</p><p>  when "0100"=>keyr<="1111111111111111";</p><p>  when "0101"=>keyr<="1111111111111111";</

143、p><p>  when "0110"=>keyr<="1111111111111111";</p><p>  when "0111"=>keyr<="1111111111111111";</p><p>  when "1000"=>ke

144、yr<="1111111111111111";</p><p>  when "1001"=>keyr<="1111111111110111";</p><p>  when "1010"=>keyr<="1111111111110111";</p>

溫馨提示

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

評論

0/150

提交評論