sopceda綜合課程設(shè)計(jì)---1616的點(diǎn)陣顯示設(shè)計(jì)_第1頁
已閱讀1頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  SOPC/EDA綜合課程設(shè)計(jì)報(bào)告</p><p>  設(shè)計(jì)題目: 16*16的點(diǎn)陣顯示設(shè)計(jì)</p><p>  設(shè) 計(jì) 者: </p><p><b>  學(xué) 號: </b></p><p>  班 級: </p><p>  指導(dǎo)老師:

2、 </p><p><b>  完成時(shí)間: </b></p><p><b>  目錄</b></p><p><b>  緒 論1</b></p><p>  第一章 設(shè)計(jì)項(xiàng)目與分析2</p><p>  1.1 設(shè)計(jì)要求:2</p&g

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

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

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

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

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

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

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

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

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

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

13、我們提供了16*16的點(diǎn)陣顯示模塊。通過觀察,我們可以看到,此點(diǎn)陣顯示屏即為16行、16列的LED顯示燈。那么控制這些燈的亮暗分布,就能達(dá)到字符顯示的目的。首先我們設(shè)計(jì)要正確顯示“江西理工大學(xué)應(yīng)用科學(xué)學(xué)院歡迎您”。顯示屏上的燈亮暗的情況如何。</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”代表燈是暗的,上面我們看到的就是“江”字。依此類推,我們就可以設(shè)計(jì)出要顯示的“江西理工大學(xué)應(yīng)用科學(xué)學(xué)院歡迎您”一屏一屏地顯示漢字“江西理工大學(xué)應(yīng)用科學(xué)學(xué)院歡迎您”15個漢字。</p><p><b>  方案二</b></p><p>  第二種花樣是用暗著的燈組合所要顯示的字。高電平“1”代表燈是亮的,低電平“0”代

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

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

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

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

23、時(shí)間;一共有15個漢字,當(dāng)tmp=1110時(shí),tmp自動清零,進(jìn)入下一個循環(huán),不停的循環(huán)顯示每個漢字。</p><p>  圖 2.1 時(shí)序控制模塊</p><p><b>  其實(shí)現(xiàn)程序?yàn)椋?lt;/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>  時(shí)序控制模塊仿真圖</b></p><p>  2.2 掃描控制模塊設(shè)計(jì)</p&g

30、t;<p>  此模塊用來實(shí)現(xiàn)列掃描控制,每掃描完16列,tmp自動清零,這樣就提供了一個列循環(huán)掃描的功能,這樣就可以循環(huán)的顯示各個漢字了。</p><p>  圖2.2 掃描控制模塊</p><p><b>  其實(shí)現(xiàn)程序?yàn)椋?lt;/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顯示控制模塊設(shè)計(jì)</p><p>  此模塊用來

36、實(shí)現(xiàn)顯示出相應(yīng)的漢字。gs控制漢字的個數(shù),hs控制掃描的行數(shù)。使對應(yīng)列選擇信號輸出每一列對應(yīng)的數(shù)據(jù),點(diǎn)量相應(yīng)的燈。</p><p>  圖2.3 顯示控制模塊</p><p><b>  其實(shí)現(xiàn)程序?yàn)椋?lt;/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 暗燈控制模塊設(shè)計(jì)</p><p>  為使?jié)h字不斷地循環(huán)顯示,并且使每個字之間有停頓,就需要在中間加一定的延時(shí)和循環(huán)環(huán)節(jié)。當(dāng)計(jì)數(shù)滿4個脈沖時(shí)cnt自動清零,每個漢字顯示4個脈沖的時(shí)間;一共有15個漢字,當(dāng)tmp=1110時(shí),tmp自動清零,進(jìn)入下一個循環(huán),不停的

145、循環(huán)顯示每個漢字。</p><p>  圖 2.1 時(shí)序控制模塊</p><p><b>  其實(shí)現(xiàn)程序?yàn)椋?lt;/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>  時(shí)序控制模塊仿真圖</b></p><p>  3.2 掃描控制模塊設(shè)計(jì)</p><p>  此模塊用來實(shí)現(xiàn)列掃描控制,每掃描完16列,tmp自動清

152、零,這樣就提供了一個列循環(huán)掃描的功能,這樣就可以循環(huán)的顯示各個漢字了。</p><p>  圖2.2 掃描控制模塊</p><p><b>  其實(shí)現(xiàn)程序?yàn)椋?lt;/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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論