sopceda綜合課程設計---1616的點陣顯示設計_第1頁
已閱讀1頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  SOPC/EDA綜合課程設計報告</p><p>  設計題目: 16*16的點陣顯示設計</p><p>  設 計 者: </p><p><b>  學 號: </b></p><p>  班 級: </p><p>  指導老師:

2、 </p><p><b>  完成時間: </b></p><p><b>  目錄</b></p><p><b>  緒 論1</b></p><p>  第一章 設計項目與分析2</p><p>  1.1 設計要求:2</p&g

3、t;<p>  1.2 設計原理2</p><p><b>  1.3設計框圖3</b></p><p>  1.4頂層文件設計3</p><p>  第二章 一屏一屏亮燈顯示5</p><p>  2.1 時序控制模塊設計5</p><p>  2.2 掃描控制模塊設計

4、6</p><p>  2.3顯示控制模塊設計7</p><p>  2.4顯示控制模塊仿真15</p><p>  第三章 暗燈顯示16</p><p>  3.1 暗燈控制模塊設計16</p><p>  3.2 掃描控制模塊設計17</p><p>  3.3暗燈顯示控制模塊設計

5、18</p><p>  第四章 心得體會27</p><p><b>  參考文獻28</b></p><p><b>  緒 論</b></p><p>  1 在信息產業(yè)中EDA產生的影響</p><p>  隨著大規(guī)模集成電路技術和計算機技術的不斷發(fā)展, 在設

6、計通信,國防,航天醫(yī)學 工業(yè)自動化 計算機應用 儀器儀表等領域的電子系統(tǒng)設計工作中,EDA技術的含量正以驚人的 速度上升;電子類的高新技術項目的開發(fā)也逾益依賴于EDA技術的應用,即使是普通的電子產品的開發(fā),EDA技術常常使一些原來的技術瓶頸得以輕松突破,從而使得產品的開發(fā)周期大為縮短,性能價格大幅度提高。不言而喻。EDA技術將迅速成為電子設計領域中的極其重要的組成部分。</p><p>  2 中國國內EDZ發(fā)

7、展情況</p><p>  從目前的EDA技術來看,其發(fā)展趨勢是政府重視 使用普及 應用廣泛 工具多樣 軟件功能強大。</p><p>  中國EDA市場已漸趨成熟,不過大部分設計工程師面向的是PC主板的小型ASIC領域,僅有小部分的設計人工發(fā)復雜片上系統(tǒng)器件,為了與臺灣和美國的設計工程師形成更有力的競爭,中國的設計隊伍有必要購入一些最新的EDA技術。</p><p&g

8、t;  在信息通信領域,優(yōu)先發(fā)展高速寬帶信息網,深亞微米集成電路,新型元器件,計算機及軟件技術,第三代移動通信技術。信息管理,信息安全技術,積極開拓以數字技術,網絡技術為基礎的新一代產品,發(fā)展新興產業(yè),培育新的經濟增長點。要大力推進制造業(yè)信息化,積極開展計算機輔助設計(CAD),計算機輔助工程(CAE),計算機輔助工藝(CAPP),j計算機輔助制造(CAM),產品數據管理(PDM),制造資源計劃(MRPII),以及企業(yè)管理資源(ERP)

9、等。有條件的企業(yè)可開展“網絡制造”,便于合作設計 合作制造 參與國內和國際競爭。開展“數控化”工程和“數字化”工程。自動化儀表的技術發(fā)展趨勢的測試技術,控制技術與計算機技術,通信技術進一步融合,形成測量,控制,通信與計算機結構。在ASIC和PLD設計反面,向超高速高密度低功耗低電壓方向發(fā)展。</p><p>  3 課程對多功能數字時鐘的設計加深對EDA課程的理解</p><p> ?。?

10、)加深VHDL語言設計的理解。</p><p>  (2)通過功能數字時鐘的設計了解簡易集成電路的設計思路</p><p> ?。?)通過對多設計目的</p><p>  (4)屬性MAX+PLUS II仿真軟件的工作方法以及應用技術</p><p>  第一章 設計項目與分析</p><p><b>  1

11、.1 設計要求:</b></p><p>  使用FPGA設計一個16*16的點陣顯示的控制器,使點陣能夠按照自定義的花樣顯示文字或者數字。要求至少實現兩種花樣顯示“江西理工大學應用科學學院歡迎您”。其他功能可以自行設計增加!</p><p><b>  1.2 設計原理</b></p><p>  本設計是針對一個16*16的點陣

12、,使用逐列循環(huán)掃描的方式來一屏一屏地顯示和滾動地顯示“江西理工大學應用科學學院歡迎您”15個漢字。</p><p>  由于顯示器為列共陽,行共陰的結構,因此不可能在同一時刻顯示出整個漢字。為了顯示出整個漢字,首先分布好漢字信息;然后以不低于50Hz頻率的時序逐一點亮每一列,即每列逐一加高電位,同時行給漢字信息,根據人眼的視覺殘留特性使之形成整個漢字的顯示。</p><p>  實驗箱上為

13、我們提供了16*16的點陣顯示模塊。通過觀察,我們可以看到,此點陣顯示屏即為16行、16列的LED顯示燈。那么控制這些燈的亮暗分布,就能達到字符顯示的目的。首先我們設計要正確顯示“江西理工大學應用科學學院歡迎您”。顯示屏上的燈亮暗的情況如何。</p><p><b>  方案一</b></p><p>  如第一個漢字“江”。</p><p>

14、  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0</p><p>  0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0</p><p>  0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0</p><p>  0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0</p><p>  0

15、0 0 0 1 1 0 0 0 0 1 1 0 0 0 0</p><p>  0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0</p><p>  0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0</p><p>  0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0</p><p>  0 0 0

16、0 1 1 0 0 0 0 1 1 0 0 0 0</p><p>  0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0</p><p>  0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0</p><p>  0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0</p><p>  0 0 0 1 1

17、0 0 0 0 0 1 1 0 0 0 0</p><p>  0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 0</p><p>  0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0</p><p>  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0</p><p>  第一種花樣是用亮著的燈組合所

18、要顯示的字。高電平“1”代表燈是亮的,低電平“0”代表燈是暗的,上面我們看到的就是“江”字。依此類推,我們就可以設計出要顯示的“江西理工大學應用科學學院歡迎您”一屏一屏地顯示漢字“江西理工大學應用科學學院歡迎您”15個漢字。</p><p><b>  方案二</b></p><p>  第二種花樣是用暗著的燈組合所要顯示的字。高電平“1”代表燈是亮的,低電平“0”代

19、表燈是暗的,上面我們看到的就是“江”字。依此類推,我們就可以設計出要顯示的“江西理工大學應用科學學院歡迎您”一屏一屏地顯示漢字“江西理工大學應用科學學院歡迎您”15個漢字。</p><p>  在顯示漢字的基礎上加一個gs信號作為計數器,當gs為0000第一個漢字;當gs為0001時顯示第二個漢字;當gs為0010……當gs為1110時顯示第十五個漢字;用時鐘信號clk控制gs的計數,就可以一屏一屏地顯示漢字。&

20、lt;/p><p><b>  1.3設計框圖</b></p><p><b>  圖1.1</b></p><p><b>  1.4頂層文件設計</b></p><p>  頂層文件來實現循環(huán)顯示各個漢字的功能。它由時序控制模塊,掃描模塊和漢字顯示控制模塊組成。時序控制模塊利用

21、脈沖來控制每個漢字的顯示時間。掃描控制模塊利用列掃描脈沖產生列掃描信號。而漢字顯示控制模塊用時序控制模塊和掃描控制模塊所提供的脈沖信號來點亮各個漢字模型中相應的燈。在時序模塊的控制下(此設計中每15個漢字為一個循環(huán))實現了各個漢字循環(huán)顯示的功能。</p><p>  實現顯示“江西理工大學應用科學學院歡迎您”,結合實際,模塊LICHAO01,LICHAO02, LICHAO03分別實現時序控制模塊,掃描模塊和漢字

22、顯示控制模塊。具體電路的 頂層文件設計如下圖</p><p>  圖 1.2 頂層電路圖</p><p>  第二章 一屏一屏亮燈顯示</p><p>  2.1 時序控制模塊設計</p><p>  為使?jié)h字不斷地循環(huán)顯示,并且使每個字之間有停頓,就需要在中間加一定的延時和循環(huán)環(huán)節(jié)。當計數滿4個脈沖時cnt自動清零,每個漢字顯示4個脈沖的

23、時間;一共有15個漢字,當tmp=1110時,tmp自動清零,進入下一個循環(huán),不停的循環(huán)顯示每個漢字。</p><p>  圖 2.1 時序控制模塊</p><p><b>  其實現程序為:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.

24、all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity LICHAO01 is </p><p>  port(clk:in std_logic;</p><p>  q:out std_logic_vector(3 downto 0));</p>&l

25、t;p>  end LICHAO01;</p><p>  architecture one of LICHAO01 is </p><p><b>  begin</b></p><p>  process(clk)</p><p>  variable cnt:integer;</p><p

26、>  variable tmp:std_logic_vector(3 downto 0);</p><p><b>  begin</b></p><p>  if clk'event and clk='1'then </p><p>  if cnt<4 then </p><

27、;p>  cnt:=cnt+1; </p><p><b>  else</b></p><p>  cnt:=0; </p><p>  if tmp="1110"then </p><p>  tmp:="0000";</p>&l

28、t;p><b>  else</b></p><p>  tmp:=tmp+1; </p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if ;</b><

29、;/p><p>  q<=tmp; </p><p>  end process;</p><p><b>  end ;</b></p><p><b>  時序控制模塊仿真圖</b></p><p>  2.2 掃描控制模塊設計</p&g

30、t;<p>  此模塊用來實現列掃描控制,每掃描完16列,tmp自動清零,這樣就提供了一個列循環(huán)掃描的功能,這樣就可以循環(huán)的顯示各個漢字了。</p><p>  圖2.2 掃描控制模塊</p><p><b>  其實現程序為:</b></p><p>  library ieee;</p><p>  

31、use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity LICHAO02 is </p><p>  port (clk:in std_logic; </p><p>  so:out std_logic_ve

32、ctor(3 downto 0)); </p><p>  end LICHAO02;</p><p>  architecture one of LICHAO02 is </p><p><b>  begin</b></p><p>  process(clk)</p><p>  varia

33、ble tmp:std_logic_vector(3 downto 0);</p><p><b>  begin</b></p><p>  if clk'event and clk='1'then </p><p>  if tmp="1111"then </p><p

34、>  tmp:="0000"; </p><p><b>  else</b></p><p>  tmp:=tmp+1; </p><p><b>  end if;</b></p><p><b>  end if;</b

35、></p><p>  so<=tmp-1;</p><p>  end process;</p><p><b>  end ;</b></p><p>  圖3.2掃描控制模塊仿真圖</p><p>  2.3顯示控制模塊設計</p><p>  此模塊用來

36、實現顯示出相應的漢字。gs控制漢字的個數,hs控制掃描的行數。使對應列選擇信號輸出每一列對應的數據,點量相應的燈。</p><p>  圖2.3 顯示控制模塊</p><p><b>  其實現程序為:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_

37、1164.all;</p><p>  entity LICHAO03 is </p><p>  port(hs:in std_logic_vector(3 downto 0);</p><p>  gs:in std_logic_vector(3 downto 0);</p><p>  qo: out std_logic_vector(

38、15 downto 0));</p><p>  end LICHAO03;</p><p>  architecture one of LICHAO03 is </p><p><b>  begin </b></p><p>  process(hs,gs)</p><p><b>

39、  begin</b></p><p>  case gs is</p><p>  when"0000"=></p><p>  case hs is</p><p>  when"0000"=>qo<="0000000000000000";</

40、p><p>  when"0001"=>qo<="0110000011111100";</p><p>  when"0010"=>qo<="0011000011111100";</p><p>  when"0011"=>qo<=&q

41、uot;0001100000110000";</p><p>  when"0100"=>qo<="0000110000110000";</p><p>  when"0101"=>qo<="0110000000110000";</p><p>  wh

42、en"0110"=>qo<="0011000000110000";</p><p>  when"0111"=>qo<="0001100000110000";</p><p>  when"1000"=>qo<="0000110000110000

43、";</p><p>  when"1001"=>qo<="0000000000110000";</p><p>  when"1010"=>qo<="0000011000110000";</p><p>  when"1011"=&

44、gt;qo<="0000110000110000";</p><p>  when"1100"=>qo<="0001100000110000";</p><p>  when"1101"=>qo<="0011000111111110";</p>&

45、lt;p>  when"1110"=>qo<="0110000111111110";</p><p>  when"1111"=>qo<="0000000000000000";</p><p>  when others=>null;</p><p>

46、<b>  end case;</b></p><p>  when"0001"=></p><p>  case hs is</p><p>  when"0000"=>qo<="0000000000000000";</p><p>  wh

47、en"0001"=>qo<="0011111111111100";</p><p>  when"0010"=>qo<="0011111111111100";</p><p>  when"0011"=>qo<="0000001101100000

48、";</p><p>  when"0100"=>qo<="0000001101100000";</p><p>  when"0101"=>qo<="0000001101100000";</p><p>  when"0110"=&

49、gt;qo<="0111111111111110";</p><p>  when"0111"=>qo<="0111111111111110";</p><p>  when"1000"=>qo<="0110001101100110";</p>&

50、lt;p>  when"1001"=>qo<="0110001101100110";</p><p>  when"1010"=>qo<="0110011001111110";</p><p>  when"1011"=>qo<="0110

51、110000000110";</p><p>  when"1100"=>qo<="0111100000000110";</p><p>  when"1101"=>qo<="0111111111111110";</p><p>  when"

52、1110"=>qo<="0111111111111110";</p><p>  when"1111"=>qo<="0000000000000000";</p><p>  when others=>null;</p><p><b>  end case;

53、</b></p><p>  when"0010"=></p><p>  case hs is </p><p>  when"0000"=>qo<="0000000000000000";</p><p>  when"0001"=

54、>qo<="0000000111111110";</p><p>  when"0010"=>qo<="1111110111111110";</p><p>  when"0011"=>qo<="1111110110110110";</p>

55、<p>  when"0100"=>qo<="0011000111111110";</p><p>  when"0101"=>qo<="0011000111111110";</p><p>  when"0110"=>qo<="000

56、0000110110110";</p><p>  when"0111"=>qo<="1111110111111110";</p><p>  when"1000"=>qo<="1111110111111110";</p><p>  when"

57、;1001"=>qo<="0011000000110000";</p><p>  when"1010"=>qo<="0011000111111110";</p><p>  when"1011"=>qo<="0011000111111110";

58、</p><p>  when"1100"=>qo<="0011000000110000";</p><p>  when"1101"=>qo<="1111110000110000";</p><p>  when"1110"=>qo&l

59、t;="1111111111111111";</p><p>  when"1111"=>qo<="0000001111111111";</p><p>  when others=>null;</p><p><b>  end case;</b></p>

60、;<p>  when"0011"=></p><p>  case hs is</p><p>  when"0000"=>qo<="0000000000000000";</p><p>  when"0001"=>qo<="001

61、1111111111100";</p><p>  when"0010"=>qo<="0011111111111100";</p><p>  when"0011"=>qo<="0000000110000000";</p><p>  when"

62、;0100"=>qo<="0000000110000000";</p><p>  when"0101"=>qo<="0000000110000000";</p><p>  when"0110"=>qo<="0000000110000000";

63、</p><p>  when"0111"=>qo<="0000000110000000";</p><p>  when"1000"=>qo<="0000000110000000";</p><p>  when"1001"=>qo&l

64、t;="0000000110000000";</p><p>  when"1010"=>qo<="0000000110000000";</p><p>  when"1011"=>qo<="0000000110000000";</p><p>

65、;  when"1100"=>qo<="0000000110000000";</p><p>  when"1101"=>qo<="0111111111111110";</p><p>  when"1110"=>qo<="01111111111

66、11110";</p><p>  when"1111"=>qo<="0000000000000000";</p><p>  when others=>null;</p><p><b>  end case;</b></p><p>  when&q

67、uot;0100"=></p><p>  case hs is</p><p>  when"0000"=>qo<="0000000000000000";</p><p>  when"0001"=>qo<="0000000110000000";

68、</p><p>  when"0010"=>qo<="0000000110000000";</p><p>  when"0011"=>qo<="0000000110000000";</p><p>  when"0100"=>qo&l

69、t;="0111111111111110";</p><p>  when"0101"=>qo<="0111111111111110";</p><p>  when"0110"=>qo<="0000000110000000";</p><p>

70、;  when"0111"=>qo<="0000000110000000";</p><p>  when"1000"=>qo<="0000001111000000";</p><p>  when"1001"=>qo<="00000110011

71、00000";</p><p>  when"1010"=>qo<="0000110000110000";</p><p>  when"1011"=>qo<="0001100000011000";</p><p>  when"1100&qu

72、ot;=>qo<="0011000000001100";</p><p>  when"1101"=>qo<="0110000000000110";</p><p>  when"1110"=>qo<="1100000000000011";</p&g

73、t;<p>  when"1111"=>qo<="0000000000000000";</p><p>  when others=>null;</p><p><b>  end case;</b></p><p>  when"0101"=>&

74、lt;/p><p>  case hs is </p><p>  when"0000"=>qo<="0000000000000000";</p><p>  when"0001"=>qo<="0110011000000110";</p><p&g

75、t;  when"0010"=>qo<="0011001100001100";</p><p>  when"0011"=>qo<="1111111111111111";</p><p>  when"0100"=>qo<="1111111111

76、111111";</p><p>  when"0101"=>qo<="1100000000000011";</p><p>  when"0110"=>qo<="1101111111110110";</p><p>  when"0111&q

77、uot;=>qo<="0001111111110000";</p><p>  when"1000"=>qo<="0000000001100000";</p><p>  when"1001"=>qo<="0000000011000000";</p&

78、gt;<p>  when"1010"=>qo<="0111111111111110";</p><p>  when"1011"=>qo<="0111111111111110";</p><p>  when"1100"=>qo<=&quo

79、t;0000000110000000";</p><p>  when"1101"=>qo<="0000000110000000";</p><p>  when"1110"=>qo<="0000011110000000";</p><p>  when

80、"1111"=>qo<="0000011110000000";</p><p>  when others=>null;</p><p><b>  end case;</b></p><p>  when"0110"=></p><p>

81、;  case hs is</p><p>  when"0000"=>qo<="0000000000000000";</p><p>  when"0001"=>qo<="0000001100000000";</p><p>  when"0010&q

82、uot;=>qo<="0000000110000000";</p><p>  when"0011"=>qo<="0001111111111110";</p><p>  when"0100"=>qo<="0001111111111110";</p&

83、gt;<p>  when"0101"=>qo<="0001100000000000";</p><p>  when"0110"=>qo<="0001100000000000";</p><p>  when"0111"=>qo<=&quo

84、t;0001100011000011";</p><p>  when"1000"=>qo<="0001101101100011";</p><p>  when"1001"=>qo<="0001101101100110";</p><p>  when

85、"1010"=>qo<="0011000110110110";</p><p>  when"1011"=>qo<="0011000110001100";</p><p>  when"1100"=>qo<="0110000000000000&q

86、uot;;</p><p>  when"1101"=>qo<="0110111111111111";</p><p>  when"1110"=>qo<="1100111111111111";</p><p>  when"1111"=>

87、;qo<="0000000000000000";</p><p>  when others=>null;</p><p><b>  end case;</b></p><p>  when"0111"=></p><p>  case hs is</p&

88、gt;<p>  when"0000"=>qo<="0000000000000000";</p><p>  when"0001"=>qo<="0001111111111111";</p><p>  when"0010"=>qo<=&quo

89、t;0001111111111111";</p><p>  when"0011"=>qo<="0001100011000110";</p><p>  when"0100"=>qo<="0001100011000110";</p><p>  when

90、"0101"=>qo<="0001111111111110";</p><p>  when"0110"=>qo<="0001111111111110";</p><p>  when"0111"=>qo<="0001100011000110&q

91、uot;;</p><p>  when"1000"=>qo<="0001100011000110";</p><p>  when"1001"=>qo<="0001111111111110";</p><p>  when"1010"=>

92、;qo<="0001111111111110";</p><p>  when"1011"=>qo<="0001100011000110";</p><p>  when"1100"=>qo<="0011000011000110";</p><

93、;p>  when"1101"=>qo<="0110000011011110";</p><p>  when"1110"=>qo<="1100000011001110";</p><p>  when"1111"=>qo<="000000

94、0000000000";</p><p>  when others=>null;</p><p><b>  end case;</b></p><p>  when"1000"=></p><p>  case hs is </p><p>  whe

95、n"0000"=>qo<="0000000000000000";</p><p>  when"0001"=>qo<="0000011000001100";</p><p>  when"0010"=>qo<="0000110110001100&

96、quot;;</p><p>  when"0011"=>qo<="0011000011001100";</p><p>  when"0100"=>qo<="1101101101101100";</p><p>  when"0101"=&g

97、t;qo<="0001100110001100";</p><p>  when"0110"=>qo<="1111111101101100";</p><p>  when"0111"=>qo<="1111111100001100";</p>&l

98、t;p>  when"1000"=>qo<="0011110011111111";</p><p>  when"1001"=>qo<="0011110011111111";</p><p>  when"1010"=>qo<="01111

99、01100001100";</p><p>  when"1011"=>qo<="1101100000001100";</p><p>  when"1100"=>qo<="0001100000001100";</p><p>  when"1

100、101"=>qo<="0001100000001100";</p><p>  when"1110"=>qo<="0001100000001100";</p><p>  when"1111"=>qo<="0000000000000000";&l

101、t;/p><p>  when others=>null;</p><p><b>  end case;</b></p><p>  when"1001"=></p><p>  case hs is</p><p>  when"0000"=&g

102、t;qo<="0000000000000000";</p><p>  when"0001"=>qo<="0110011000000110";</p><p>  when"0010"=>qo<="0011001100001100";</p>&l

103、t;p>  when"0011"=>qo<="1111111111111111";</p><p>  when"0100"=>qo<="1111111111111111";</p><p>  when"0101"=>qo<="11000

104、00000000011";</p><p>  when"0110"=>qo<="1101111111110110";</p><p>  when"0111"=>qo<="0001111111110000";</p><p>  when"1

105、000"=>qo<="0000000001100000";</p><p>  when"1001"=>qo<="0000000011000000";</p><p>  when"1010"=>qo<="0111111111111110";&l

106、t;/p><p>  when"1011"=>qo<="0111111111111110";</p><p>  when"1100"=>qo<="0000000110000000";</p><p>  when"1101"=>qo<

107、="0000000110000000";</p><p>  when"1110"=>qo<="0000011110000000";</p><p>  when"1111"=>qo<="0000011110000000";</p><p> 

108、 when others=>null;</p><p><b>  end case;</b></p><p>  when"1010"=></p><p>  case hs is</p><p>  when"0000"=>qo<="00000

109、00000000000";</p><p>  when"0001"=>qo<="0110011000000110";</p><p>  when"0010"=>qo<="0011001100001100";</p><p>  when"0

110、011"=>qo<="1111111111111111";</p><p>  when"0100"=>qo<="1111111111111111";</p><p>  when"0101"=>qo<="1100000000000011";&l

111、t;/p><p>  when"0110"=>qo<="1101111111110110";</p><p>  when"0111"=>qo<="0001111111110000";</p><p>  when"1000"=>qo<

112、="0000000001100000";</p><p>  when"1001"=>qo<="0000000011000000";</p><p>  when"1010"=>qo<="0111111111111110";</p><p> 

113、 when"1011"=>qo<="0111111111111110";</p><p>  when"1100"=>qo<="0000000110000000";</p><p>  when"1101"=>qo<="0000000110000

114、000";</p><p>  when"1110"=>qo<="0000011110000000";</p><p>  when"1111"=>qo<="0000011110000000";</p><p>  when others=>nul

115、l;</p><p><b>  end case;</b></p><p>  when"1011"=></p><p>  case hs is </p><p>  when"0000"=>qo<="0000000000000000";&

116、lt;/p><p>  when"0001"=>qo<="1111110001100000";</p><p>  when"0010"=>qo<="1111110000110000";</p><p>  when"0011"=>qo<

117、;="1100111111111111";</p><p>  when"0100"=>qo<="1101111111111111";</p><p>  when"0101"=>qo<="1111001100000011";</p><p>

118、  when"0110"=>qo<="1101101100000110";</p><p>  when"0111"=>qo<="1100110011111000";</p><p>  when"1000"=>qo<="110001101111

119、1000";</p><p>  when"1001"=>qo<="1101110000000000";</p><p>  when"1010"=>qo<="1100001111111110";</p><p>  when"1011&quo

120、t;=>qo<="1100001111111110";</p><p>  when"1100"=>qo<="1100000011011000";</p><p>  when"1101"=>qo<="1100000110011000";</p>

121、;<p>  when"1110"=>qo<="1100001100011011";</p><p>  when"1111"=>qo<="1100011000011111";</p><p>  when others=>null;</p><p

122、><b>  end case;</b></p><p>  when"1100"=></p><p>  case hs is</p><p>  when"0000"=>qo<="0000000000000000";</p><p>

123、  when"0001"=>qo<="0000000000110000";</p><p>  when"0010"=>qo<="0000000001100000";</p><p>  when"0011"=>qo<="111111100111

124、1111";</p><p>  when"0100"=>qo<="1000011011000011";</p><p>  when"0101"=>qo<="1100011110110110";</p><p>  when"0110&quo

125、t;=>qo<="0110110000110000";</p><p>  when"0111"=>qo<="0011110000110000";</p><p>  when"1000"=>qo<="0001110000110000";</p>

126、;<p>  when"1001"=>qo<="0001111000111000";</p><p>  when"1010"=>qo<="0011001100111000";</p><p>  when"1011"=>qo<="

127、0011000001101100";</p><p>  when"1100"=>qo<="0110000011000110";</p><p>  when"1101"=>qo<="1100001110000011";</p><p>  when&q

128、uot;1110"=>qo<="0001111000000000";</p><p>  when"1111"=>qo<="0000000000000000";</p><p>  when others=>null;</p><p><b>  end c

129、ase;</b></p><p>  when"1101"=></p><p>  case hs is </p><p>  when"0000"=>qo<="0000000000000000";</p><p>  when"0001&qu

130、ot;=>qo<="0110000111000000";</p><p>  when"0010"=>qo<="0011001100111111";</p><p>  when"0011"=>qo<="0000011000110011";</p&g

131、t;<p>  when"0100"=>qo<="1111011000110011";</p><p>  when"0101"=>qo<="1111011000110011";</p><p>  when"0110"=>qo<="

132、;0011011000110011";</p><p>  when"0111"=>qo<="0011011011110011";</p><p>  when"1000"=>qo<="0011011110110111";</p><p>  when&

133、quot;1001"=>qo<="0011000000110000";</p><p>  when"1010"=>qo<="0011000000110000";</p><p>  when"1011"=>qo<="0011000000110000&qu

134、ot;;</p><p>  when"1100"=>qo<="0011110000000000";</p><p>  when"1101"=>qo<="0110111111111111";</p><p>  when"1110"=>

135、qo<="1100111111111111";</p><p>  when"1111"=>qo<="0000000000000000";</p><p>  when others=>null;</p><p><b>  end case;</b></

136、p><p>  when"1110"=></p><p>  case hs is</p><p>  when"0000"=>qo<="0000011001100000";</p><p>  when"0001"=>qo<="

137、;0000110011111111";</p><p>  when"0010"=>qo<="0001100111111111";</p><p>  when"0011"=>qo<="0011101100110011";</p><p>  when&

138、quot;0100"=>qo<="0111100000110000";</p><p>  when"0101"=>qo<="1101100110110110";</p><p>  when"0110"=>qo<="0001100110110011&qu

139、ot;;</p><p>  when"0111"=>qo<="0001101100110000";</p><p>  when"1000"=>qo<="0001100110110000";</p><p>  when"1001"=>

140、qo<="0001100011110000";</p><p>  when"1010"=>qo<="0000000000000000";</p><p>  when"1011"=>qo<="0110110110011011";</p><

141、p>  when"1100"=>qo<="0110110011011011";</p><p>  when"1101"=>qo<="1100011111111000";</p><p>  when"1110"=>qo<="1100011

142、111111000";</p><p>  when"1111"=>qo<="0000000000000000";</p><p>  when others=>null;</p><p><b>  end case;</b></p><p>  wh

143、en others=>null;</p><p><b>  end case;</b></p><p>  end process;</p><p><b>  end ;</b></p><p>  2.4顯示控制模塊仿真</p><p>  亮燈顯示控制模塊仿真圖

144、</p><p><b>  第三章 暗燈顯示</b></p><p>  3.1 暗燈控制模塊設計</p><p>  為使?jié)h字不斷地循環(huán)顯示,并且使每個字之間有停頓,就需要在中間加一定的延時和循環(huán)環(huán)節(jié)。當計數滿4個脈沖時cnt自動清零,每個漢字顯示4個脈沖的時間;一共有15個漢字,當tmp=1110時,tmp自動清零,進入下一個循環(huán),不停的

145、循環(huán)顯示每個漢字。</p><p>  圖 2.1 時序控制模塊</p><p><b>  其實現程序為:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_lo

146、gic_unsigned.all;</p><p>  entity LICHAO01 is </p><p>  port(clk:in std_logic;</p><p>  q:out std_logic_vector(3 downto 0));</p><p>  end LICHAO01;</p><p>

147、;  architecture one of LICHAO01 is </p><p><b>  begin</b></p><p>  process(clk)</p><p>  variable cnt:integer;</p><p>  variable tmp:std_logic_vector(3 down

148、to 0);</p><p><b>  begin</b></p><p>  if clk'event and clk='1'then </p><p>  if cnt<4 then </p><p>  cnt:=cnt+1; </p><p

149、><b>  else</b></p><p>  cnt:=0; </p><p>  if tmp="1110"then </p><p>  tmp:="0000";</p><p><b>  else</b></p>

150、<p>  tmp:=tmp+1; </p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if ;</b></p><p>  q<=tmp;

151、 </p><p>  end process;</p><p><b>  end ;</b></p><p><b>  時序控制模塊仿真圖</b></p><p>  3.2 掃描控制模塊設計</p><p>  此模塊用來實現列掃描控制,每掃描完16列,tmp自動清

152、零,這樣就提供了一個列循環(huán)掃描的功能,這樣就可以循環(huán)的顯示各個漢字了。</p><p>  圖2.2 掃描控制模塊</p><p><b>  其實現程序為:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p>&l

153、t;p>  use ieee.std_logic_unsigned.all;</p><p>  entity LICHAO02 is </p><p>  port (clk:in std_logic; </p><p>  so:out std_logic_vector(3 downto 0)); </p><p>  

154、end LICHAO02;</p><p>  architecture one of LICHAO02 is </p><p><b>  begin</b></p><p>  process(clk)</p><p>  variable tmp:std_logic_vector(3 downto 0);</

溫馨提示

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

評論

0/150

提交評論