欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: FPGA學(xué)習(xí)板的流水燈Quartus源碼 [打印本頁(yè)]

作者: Technitime    時(shí)間: 2018-7-22 02:06
標(biāo)題: FPGA學(xué)習(xí)板的流水燈Quartus源碼
自制,功能包括:
開(kāi)關(guān)1、2(17、16)控制流水燈速度,00-1分頻,01-2分頻,10-4分頻,11-8分頻
開(kāi)關(guān)3、4(15、14)控制流水燈花型,00-00010001,每次移動(dòng)1,01-00110011,每次移動(dòng)2,10-01110111,每次移動(dòng)3,11-00001111,每次移動(dòng)4
開(kāi)關(guān)5(13)控制流水燈移動(dòng)方向,0-左,1-右
按鈕1(0)復(fù)位
LCD屏顯示速度、花型和方向,顯示效果大致為

(有頻閃)
雖然是個(gè)智障小程序,不過(guò)是FPGA入門(mén)課的常見(jiàn)作業(yè)……解壓之后直接用Quartus打開(kāi)就可以了

源程序如下:
  1. module LED(
  2.         input rst_n,
  3.                 input sw1,
  4.                 input sw2,
  5.                 input sw3,
  6.                 input sw4,
  7.                 input sw5,
  8.                 output led0,
  9.                 output led1,
  10.                 output led2,
  11.                 output led3,
  12.                 output led4,
  13.                 output led5,
  14.                 output led6,
  15.                 output led7,
  16. input clk,
  17. output reg [7:0] dat,
  18. output reg rs,
  19. output rw,
  20. output en
  21. );   
  22. reg e;   
  23. reg  [15:0] counter;
  24. reg [5:0] current,next,next_f;
  25. reg clkr;
  26. reg [1:0] cnt_f,cnt_g;
  27. reg [26:0] cnt;
  28. reg [7:0] led;
  29. reg [3:0] spd;
  30. reg [1:0] knd;
  31. reg drc;
  32. reg [1:0] stt;
  33. reg [4:0] flg;
  34. reg [4:0] flg_f;
  35. reg [5:0] stt_f;
  36. reg [2:0] i;
  37. always @(posedge clk or negedge rst_n) begin
  38.         if(!rst_n) begin
  39.                 cnt <= 27'd0;
  40.                 stt <= 2'd0;
  41.                 next_f <= 6'h0;
  42.                 cnt_g <= 2'h0;
  43.         end
  44.         else begin
  45.                 i <= sw2 * 2'd3;
  46.                 spd <= (sw1 + 1'b1) * (i + 1'b1);
  47.                 knd[0] <= sw3;
  48.                 knd[1] <= sw4;
  49.                 drc <= sw5;
  50.                 cnt <= cnt + 1'b1;
  51.                 if(cnt == 27'h400000 * spd) begin
  52.                         cnt <= 27'd0;
  53.                         stt <= stt + 1'b1 - drc * 2'd2;
  54.                         case(knd * 4 + stt)
  55.                                 4'h0:led <= 8'h11;
  56.                                 4'h1:led <= 8'h22;
  57.                                 4'h2:led <= 8'h44;
  58.                                 4'h3:led <= 8'h88;
  59.                                 4'h4:led <= 8'h33;
  60.                                 4'h5:led <= 8'hCC;
  61.                                 4'h6:led <= 8'h33;
  62.                                 4'h7:led <= 8'hCC;
  63.                                 4'h8:led <= 8'h77;
  64.                                 4'h9:led <= 8'hEE;
  65.                                 4'hA:led <= 8'hDD;
  66.                                 4'hB:led <= 8'hBB;
  67.                                 4'hC:led <= 8'hF;
  68.                                 4'hD:led <= 8'hF0;
  69.                                 4'hE:led <= 8'hF;
  70.                                 4'hF:led <= 8'hF0;
  71.                         endcase
  72.                 end
  73.         end
  74. end
  75. always @(posedge clk)      
  76. begin
  77.   counter=counter+1;
  78.   if(counter==16'h000f)  
  79.   clkr=~clkr;
  80. end
  81. always @(posedge clkr)
  82. begin
  83. current=next;
  84.   case(current)
  85.     6'h0:   begin  rs<=0; dat<=8'h38; next<=6'h1; end //清屏       
  86.     6'h1:   begin  rs<=0; dat<=8'h0c; next<=6'h2; end //設(shè)置顯示模式
  87.     6'h2:   begin  rs<=0; dat<=8'h6; next<=6'h3; end //顯示器開(kāi)、光標(biāo)不顯示、光標(biāo)不允許閃爍
  88.     6'h3:   begin  rs<=0; dat<=8'h1; next<=6'h4; end
  89.     6'h4:   begin  rs<=1; dat<=" "; next<=6'h5; end
  90.     6'h5:   begin  rs<=1; dat<="S"; next<=6'h6; end
  91.     6'h6:   begin  rs<=1; dat<="p"; next<=6'h7; end
  92.     6'h7:   begin  rs<=1; dat<="e"; next<=6'h8; end
  93.     6'h8:   begin  rs<=1; dat<="e"; next<=6'h9; end
  94.     6'h9:   begin  rs<=1; dat<="d"; next<=6'hA; end
  95.     6'hA:   begin  rs<=1; dat<=":"; next<=6'hB; end
  96.     6'hB:   begin  rs<=1; dat<= 8'h30 + spd; next<=6'hC; end
  97.     6'hC:   begin  rs<=1; dat<=" "; next<=6'hD; end
  98.     6'hD:   begin  rs<=1; dat<="K"; next<=6'hE; end
  99.     6'hE:   begin  rs<=1; dat<="i"; next<=6'hF; end
  100.     6'hF:   begin  rs<=1; dat<="n"; next<=6'h10; end
  101.          6'h10:   begin  rs<=1; dat<="d"; next<=6'h11; end
  102.          6'h11:   begin  rs<=1; dat<=":"; next<=6'h12; end
  103.          6'h12:   begin  rs<=1; dat<= 8'h31 + knd; next<=6'h13; end
  104.          6'h13:   begin  rs<=1; dat<=" "; next<=6'h14; end
  105.          6'h14:   begin  rs<=0; dat<=8'hC0; next<=6'h15; end
  106.          6'h15:   begin  rs<=1; dat<=" "; next<=6'h16; end
  107.          6'h16:   begin  rs<=1; dat<=" "; next<=6'h17; end
  108.          6'h17:   begin  rs<=1; dat<="D"; next<=6'h18; end
  109.          6'h18:   begin  rs<=1; dat<="i"; next<=6'h19; end
  110.          6'h19:   begin  rs<=1; dat<="r"; next<=6'h1A; end
  111.          6'h1A:   begin  rs<=1; dat<="e"; next<=6'h1B; end
  112.          6'h1B:   begin  rs<=1; dat<="c"; next<=6'h1C; end
  113.          6'h1C:   begin  rs<=1; dat<="t"; next<=6'h1D; end
  114.          6'h1D:   begin  rs<=1; dat<="i"; next<=6'h1E; end
  115.          6'h1E:   begin  rs<=1; dat<="o"; next<=6'h1F; end
  116.          6'h1F:   begin  rs<=1; dat<="n"; next<=6'h20; end
  117.          6'h20:   begin  rs<=1; dat<=":"; next<=6'h21; end
  118.          6'h21:   begin  rs<=1; dat<= 8'h30 + drc; next<=6'h22; end
  119.          6'h22:   begin  rs<=1; dat<=" "; next<=6'h23; end
  120.          6'h23:   begin  rs<=1; dat<=" "; next<=6'h24; end
  121.          6'h24:   begin  rs<=1; dat<=" "; next<=6'h25; end
  122.     6'h25:   begin rs<=0;  dat<=8'h00;                    //行一遍 然后 把液晶的E 腳 拉高
  123.               if(cnt_f!=2'h2)  
  124.                   begin  
  125.                        e<=0;next<=6'h0;cnt_f<=cnt_f+1;   
  126.                   end  
  127.                    else  
  128.                      begin next<=6'h25; e<=1; next <= next_f; cnt_f <= cnt_g;
  129.                     end   
  130.               end
  131.    default:   next=6'h0;
  132.     endcase
  133. end
  134. assign en=clkr|e;
  135. assign rw=0;
  136. assign led0 = led[0];
  137. assign led1 = led[1];
  138. assign led2 = led[2];
  139. assign led3 = led[3];
  140. assign led4 = led[4];
  141. assign led5 = led[5];
  142. assign led6 = led[6];
  143. assign led7 = led[7];
  144. endmodule  
復(fù)制代碼


所有資料51hei提供下載:
LED.rar (3.29 MB, 下載次數(shù): 35)



作者: chuzhaonan    時(shí)間: 2018-11-22 14:56
學(xué)習(xí)了,我是初學(xué)者,有點(diǎn)頭大




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1