數(shù)字電子技術課程設計報告(led矩形點陣)_第1頁
已閱讀1頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  【設計題目】 LED點陣循環(huán)顯示設計</p><p><b>  【設計任務及要求】</b></p><p>  利用EDA/SOPC試驗開發(fā)平臺提供的16*16點陣LED以及EP2C35核心板,實現(xiàn)循環(huán)顯示設定內(nèi)容,顯示內(nèi)容為自己的“學號名字”。</p><p>  手動生成“學號姓名”這幾個字符在16*16點

2、陣LED上的字摸(即控制某些LED亮,某些LED滅,可下載字摸軟件幫助確定)。</p><p>  實現(xiàn)循環(huán)顯示“學號姓名”,并要求左移</p><p>  擴展要求:自主設計(如控制循環(huán)速度,方向等)。</p><p><b>  設計原理及方案:</b></p><p>  1、16*16點陣LED內(nèi)部結構如下圖所示

3、。</p><p><b>  總體設計框圖。</b></p><p><b>  FPGA</b></p><p><b>  各子模塊的設計:</b></p><p><b> ?。?)分頻,掃描</b></p><p>  m

4、odule saomiao (clk_50Mhz,clk_1k); </p><p>  input clk_50Mhz; </p><p>  output clk_1k; </p><p>  reg[24:0] cnt;</p><p>  reg clk_1k;</p><p

5、>  always @(posedge clk_50Mhz)</p><p><b>  begin</b></p><p>  if (cnt<25000)</p><p><b>  begin</b></p><p>  cnt<=cnt+1;</p><

6、;p>  clk_1k<=0;</p><p><b>  end</b></p><p>  else if(cnt<50000)</p><p><b>  begin</b></p><p>  cnt<=cnt+1;</p><p>  clk

7、_1k<=1;</p><p><b>  end</b></p><p>  else cnt=0;</p><p><b>  end</b></p><p><b>  endmodule</b></p><p>  封裝生成的模塊如下:&

8、lt;/p><p> ?。?)分頻,移動,控制速度</p><p>  module yidong (clk_50Mhz,clk_fourhz,k2,k3); </p><p>  input clk_50Mhz,k2,k3; // 輸入端口聲明</p><p>  output clk_fourhz;

9、// 輸出端口聲明</p><p>  reg[24:0] count,ccount;</p><p>  reg clk_fourhz;</p><p>  always @(posedge clk_50Mhz)</p><p><b>  begin</b></p><p>  if ((k

10、2==0) && (k3==0))</p><p>  ccount<=50000000;</p><p>  if ((k2==0) && (k3==1))</p><p>  ccount<=100000000;</p><p>  if ((k2==1) && (k3==0))

11、</p><p>  ccount<=5000000;</p><p>  if ((k2==1) && (k3==1))</p><p>  ccount<=10000000;</p><p>  if(count<ccount)</p><p><b>  begin&l

12、t;/b></p><p>  count<=count+1'b1;</p><p>  clk_fourhz<=0;</p><p><b>  end</b></p><p><b>  else</b></p><p><b>  b

13、egin</b></p><p><b>  count<=0;</b></p><p>  clk_fourhz<=1;</p><p><b>  end</b></p><p><b>  end</b></p><p>&

14、lt;b>  endmodule</b></p><p>  封裝生成的模塊如下:</p><p> ?。?)顯示,控制輸出,控制左右移動</p><p>  module xianshi(clk_saomiao,clk_pingyi,row,con,k);</p><p>  input clk_saomiao,clk_p

15、ingyi,k;</p><p>  output[15:0] row;</p><p>  output[15:0] con;</p><p>  reg[15:0] row;</p><p>  reg[15:0] con;</p><p>  integer cnt=0,b=0;</p><p

16、>  reg[15:0] r[111:0];</p><p><b>  initial </b></p><p><b>  begin</b></p><p><b>  // 學號:</b></p><p>  r[0]<=16'b1111_0111_

17、1011_1111;</p><p>  r[1]<=16'b1111_0111_1101_1111; </p><p>  r[2]<=16'b1111_0000_0001_1111;</p><p>  r[3]<=16'b1111_0111_1111_1111;</p><p>  r[4]&l

18、t;=16'b1111_0111_1111_1111;</p><p>  r[5]<=16'b1111_1111_1111_1111;</p><p>  r[6]<=16'b1111_0111_0011_1111;</p><p>  r[7]<=16'b1111_0111_1101_1111; </p&

19、gt;<p>  r[8] <=16'b1111_0111_1101_1111;</p><p>  r[9]<=16'b1111_1000_0011_1111;</p><p>  r[10]<=16'b1111_1111_1111_1111;</p><p>  r[11] <=16'b111

20、1_1111_1111_1111;</p><p>  r[12] <=16'b1111_1000_0011_1111;</p><p>  r[13] <=16'b1111_0111_1101_1111;</p><p>  r[14]<=16'b1111_0111_1101_1111;</p><p&

21、gt;  r[15] <=16'b1111_1000_0011_1111; //"100"</p><p>  r[16] <=16'b1111_0111_1011_1111;</p><p>  r[17] <=16'b1111_0111_1101_1111;</p><p>  r[18] <

22、=16'b1111_0000_0001_1111;</p><p>  r[19] <=16'b1111_0111_1111_1111;</p><p>  r[20] <=16'b111_0111_1111_1111;</p><p>  r[21] <=16'b1111_1111_1111_1111;</p

23、><p>  r[22] <=16'b1111_0011_1011_1111;</p><p>  r[23] <=16'b1111_0101_1101_1111; </p><p>  r[24]<=16'b1111_0110_1101_1111;</p><p>  r[25]<=16'

24、;b1111_0111_0011_1111; </p><p>  r[26]<=16'b1111_1111_1111_1111;</p><p>  r[27]<=16'b1111_1111_1111_1111;</p><p>  r[28]<=16'b1111_1011_0011_1111;</p>&l

25、t;p>  r[29]<=16'b1111_0111_1101_1111;</p><p>  r[30]<=16'b1111_0111_1101_1111;</p><p>  r[31]<=16'b1111_1001_0011_1111; //"123"</p><p>  r[32] &l

26、t;=16'b1111_1111_1111_1111;</p><p>  r[33]<=16'b1111_1111_1111_1111;</p><p>  r[34]<=16'b1110_1111_1111_1111;</p><p>  r[35]<=16'b1110_1111_1110_1111;</p

27、><p>  r[36]<=16'b1110_1111_1111_0111;</p><p>  r[37]<=16'b1110_0000_0000_0111;</p><p>  r[38]<=16'b1110_1111_1111_1111;</p><p>  r[39]<=16'b11

28、10_1111_1111_1111; </p><p>  r[40]<=16'b1111_1111_1111_1111;</p><p>  r[41] <=16'b1110_1111_1111_1111; </p><p>  r[42] <=16'b1110_1111_1110_1111;</p><

29、;p>  r[43] <=16'b1110_1111_1111_0111;</p><p>  r[44] <=16'b1110_0000_0000_0111;</p><p>  r[45] <=16'b1110_1111_1111_1111;</p><p>  r[46] <=16'b1111_11

30、11_1111_1111; </p><p>  r[47] <=16'b1111_1111_1111_1111; //"11"</p><p><b>  //姓名:</b></p><p>  r[48] <=16'b1111_1111_0110_1111; </p><

31、;p>  r[49]<=16'b1101_1111_0111_1111; </p><p>  r[50]<=16'b1110_1111_0111_1011; </p><p>  r[51]<=16'b1111_0111_0111_1011; </p><p>  r[52]<=16'b1111_

32、1011_0111_1011; </p><p>  r[53]<=16'b1111_1101_0111_1011; </p><p>  r[54]<=16'b1111_1110_0111_1010; </p><p>  r[55]<=16'b0000_0000_0000_1001; </p>&l

33、t;p>  r[56] <=16'b1111_1110_0111_1011;</p><p>  r[57] <=16'b1111_1101_0111_1011; </p><p>  r[58] <=16'b1111_1011_0111_1011; </p><p>  r[59] <=16'b11

34、11_0111_0111_1011; </p><p>  r[60] <=16'b1110_1111_0111_1011; </p><p>  r[61] <=16'b1101_1111_0110_1011; </p><p>  r[62] <=16'b1101_1111_0111_0011; </p&g

35、t;<p>  r[63] <=16'b1111_1111_1111_1111; </p><p>  r[64]<=16'b1111_1111_0111_1111; </p><p>  r[65]<=16'b1111_1111_1011_1111; </p><p>  r[66]<=16

36、9;b1111_1111_1101_1111; </p><p>  r[67]<=16'b0000_0000_0000_1111; </p><p>  r[68]<=16'b1111_1111_1111_0000; </p><p>  r[69]<=16'b1011_1111_1011_1111; </p

37、><p>  r[70]<=16'b1011_1011_1011_0111; </p><p>  r[71]<=16'b1011_1011_1011_0111; </p><p>  r[72] <=16'b1011_1011_1011_0111; </p><p>  r[73]<=16&

38、#39;b1000_0000_0000_0000; </p><p>  r[74]<=16'b1011_1011_1011_0111; </p><p>  r[75] <=16'b1011_1011_1011_0111; </p><p>  r[76] <=16'b1011_1011_1011_0111; &l

39、t;/p><p>  r[77] <=16'b1011_1011_1011_0111; </p><p>  r[78]<=16'b1011_1111_1011_1111; </p><p>  r[79] <=16'b1111_1111_1111_1111; </p><p>  r[80] &l

40、t;=16'b1111_1111_1111_1111;</p><p>  r[81] <=16'b1011_1101_1111_1111; </p><p>  r[82] <=16'b1100_1110_1111_1111; </p><p>  r[83] <=16'b1111_1111_0111_0111

41、; </p><p>  r[84] <=16'b1111_1111_1011_0111; </p><p>  r[85] <=16'b1110_1111_1101_1111; </p><p>  r[86] <=16'b1001_1111_1110_0111; </p><p>  r[

42、87] <=16'b1111_0000_0000_0000; </p><p>  r[88]<=16'b1110_1111_1110_0111; </p><p>  r[89]<=16'b1001_1111_1101_0111; </p><p>  r[90]<=16'b1111_1111_1011

43、_0111; r[91]<=16'b1111_1111_0111_0111; </p><p>  r[92]<=16'b1110_1110_1111_0111; </p><p>  r[93]<=16'b1001_1101_1111_0111; </p><p>  r[94]<=16'b1111_

44、1101_1111_1111; </p><p>  r[95]<=16'b1111_1111_1111_1111; </p><p>  r[96]<=16'b1111_1111_1111_1111;</p><p>  r[97]<=16'b1111_1111_1111_1111; </p><p

45、>  r[98]<=16'b1111_1111_1111_1111; </p><p>  r[99]<=16'b1111_1111_1111_1111; </p><p>  r[100]<=16'b1111_1111_1111_1111; </p><p>  r[101]<=16'b1111_

46、1111_1111_1111; </p><p>  r[102]<=16'b1111_1111_1111_1111; </p><p>  r[103]<=16'b1111_1111_1111_1111; </p><p>  r[104] <=16'b1111_1111_1111_1111; </p>

47、<p>  r[105]<=16'b1111_1111_1111_1111; </p><p>  r[106]<=16'b1111_1111_1111_1111; </p><p>  r[107] <=16'b1111_1111_1111_1111; </p><p>  r[108] <=16

48、'b1111_1111_1111_1111; </p><p>  r[109] <=16'b1111_1111_1111_1111; </p><p>  r[110]<=16'b1111_1111_1111_1111; </p><p>  r[111] <=16'b1111_1111_1111_1111;

49、 </p><p><b>  end </b></p><p>  always@(posedge clk_pingyi)</p><p><b>  begin </b></p><p>  if (k==0) //k值控制左右移動</p><p><b

50、>  begin </b></p><p>  if (b==95)</p><p><b>  b<=0;</b></p><p><b>  else </b></p><p><b>  b<=b+1;</b></p><

51、p><b>  end </b></p><p><b>  else </b></p><p><b>  begin </b></p><p><b>  if (b==0)</b></p><p><b>  b<=96;&l

52、t;/b></p><p><b>  else </b></p><p><b>  b<=b-1;</b></p><p><b>  end </b></p><p><b>  end</b></p><p>

53、  always@(posedge clk_saomiao)</p><p><b>  begin</b></p><p>  if(cnt==15)</p><p><b>  begin</b></p><p><b>  cnt<=0;</b></p>

54、<p><b>  end</b></p><p><b>  else</b></p><p>  cnt<=cnt+1;</p><p><b>  case(cnt)</b></p><p>  0: con<=16'b0000_000

55、0_0000_0001;</p><p>  1: con<=16'b0000_0000_0000_0010;</p><p>  2: con<=16'b0000_0000_0000_0100;</p><p>  3: con<=16'b0000_0000_0000_1000;</p><p&g

56、t;  4: con<=16'b0000_0000_0001_0000;</p><p>  5: con<=16'b0000_0000_0010_0000;</p><p>  6: con<=16'b0000_0000_0100_0000;</p><p>  7: con<=16'b0000_00

57、00_1000_0000;</p><p>  8: con<=16'b0000_0001_0000_0000;</p><p>  9: con<=16'b0000_0010_0000_0000;</p><p>  10: con<=16'b0000_0100_0000_0000;</p><p&

58、gt;  11: con<=16'b0000_1000_0000_0000;</p><p>  12: con<=16'b0001_0000_0000_0000;</p><p>  13: con<=16'b0010_0000_0000_0000;</p><p>  14: con<=16'b0100_0

59、000_0000_0000;</p><p>  15: con<=16'b1000_0000_0000_0000;</p><p><b>  endcase</b></p><p><b>  //行使能</b></p><p><b>  case(cnt)</b

60、></p><p>  0: row<=r[b+0];</p><p>  1: row<=r[b+1];</p><p>  2: row<=r[b+2];</p><p>  3: row<=r[b+3];</p><p>  4: row<=r[b+4];</p

61、><p>  5: row<=r[b+5];</p><p>  6: row<=r[b+6];</p><p>  7: row<=r[b+7];</p><p>  8: row<=r[b+8];</p><p>  9: row<=r[b+9];</p><

62、p>  10: row<=r[b+10];</p><p>  11: row<=r[b+11];</p><p>  12: row<=r[b+12];</p><p>  13: row<=r[b+13];</p><p>  14: row<=r[b+14];</p><p>

63、  15: row<=r[b+15]; </p><p><b>  endcase</b></p><p><b>  end</b></p><p><b>  endmodule</b></p><p>  封裝生成的模塊如下:</p><p&

64、gt;  【電路設計、仿真與實現(xiàn)】 </p><p><b>  電路設計</b></p><p>  將封裝好的三個模塊連接起來。</p><p><b>  電路如下:</b></p><p><b>  電路仿真</b></p><p>  掃描

65、模塊和移動模塊實際上都是分頻器,只是分頻不一樣,前者的分頻后頻率高(看不到很明顯地閃爍),后者低(控制移動速度便于觀察)。這里只仿真分頻器的功能如下(10分頻):</p><p>  字體顯示模塊的仿真如下,由于所給頻率太高,分頻又太大,仿真不易實現(xiàn)。本仿真的clk2取1ns,clk3取32ns,k取0(進行左移)。</p><p><b>  電路實現(xiàn)</b><

66、;/p><p>  將連接好的電路的輸入和輸出端分別用對應的FBGA管腳封裝起來,便可以在實驗室的平臺上進行電路的實現(xiàn)了。</p><p><b>  【分析與討論】</b></p><p>  這次數(shù)電課程設計我一共去下載了三次,第一次的時候在那個模版上沒有顯示,只是看到了列的燈有亮的,回去檢查的時候發(fā)現(xiàn)是掃描的頻率太小了,之前設定的頻率只有2H

67、z,這樣的情況下每秒只會顯示兩列數(shù)據(jù),不能得出所需要的顯示。將掃描的頻率改成10kHz后去下載的時候發(fā)現(xiàn)能夠正常地循環(huán)顯示了,這也完成了基本的設計。我中午回去后又對原有程序進行了改寫,多加了三個輸入端,其中兩個輸入端用來控制字幕移動的速度,另一個用來控制左右移動,編了一個中午,程序沒有錯誤后,仍然有點忐忑的去下載(quartusⅡ只能檢查錯誤不能檢驗功能,而且這是最后一次下載機會了),不過去老師那里下載的時候,模版上正常循環(huán)我的學號名字

68、顯示,而且通過三個附加的輸入端可以控制它的左右移動以及移動速度(移動的速度共設定了4個),看到自己所編譯的功能都實現(xiàn)后,心情還是很愉悅的。個人感覺整個編譯過程中,寫自己名字的二進制代碼太費勁了。通過這次課程設計,我鞏固了之前數(shù)電實驗課上學的quartusⅡ的一些基本操作,并且會自己編寫簡單的verilog程序了,有些東西和我們之前學過的一些語言很是相像。最重要的還是我自己學會了如何將之前所學過的知識和查</p><p

溫馨提示

  • 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

提交評論