注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

东月之神

在单纯的观念里面,生命就容易变得比较深刻!

 
 
 

日志

 
 
关于我

别驻足,梦想要不停追逐,别认输,熬过黑暗才有日出,要记住,成功就在下一步,路很苦,汗水是最美的书!

网易考拉推荐

BASYS 2实现LCD  

2011-08-03 21:12:33|  分类: FPGA |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

主程序:

module led(clk, rs, rw, en,dat); 
input clk; 
 output [7:0] dat;
 output  rs,rw,en;
 //tri en;
 reg e;
 reg [7:0] dat;
 reg rs;  
 reg  [15:0] counter;
 reg [4:0] current,next;
 reg clkr;
 reg [1:0] cnt;
 parameter  set0=4'h0;
 parameter  set1=4'h1;
 parameter  set2=4'h2;
 parameter  set3=4'h3;
 parameter  dat0=4'h4;
 parameter  dat1=4'h5;
 parameter  dat2=4'h6;
 parameter  dat3=4'h7;
 parameter  dat4=4'h8;
 parameter  dat5=4'h9;

 parameter  dat6=4'hA;
 parameter  dat7=4'hB;
 parameter  dat8=4'hC;
 parameter  dat9=4'hD;
 parameter  dat10=4'hE;
 parameter  dat11=5'h10;
 parameter  nul=4'hF;
always @(posedge clk)     
 begin
  counter=counter+1;
  if(counter==16'h000f) 
  clkr=~clkr;
end
always @(posedge clkr)
begin
 current=next;
  case(current)
    set0:   begin  rs=0; dat=8'h30; next=set1; end
    set1:   begin  rs=0; dat=8'h0c; next=set2; end
    set2:   begin  rs=0; dat=8'h6; next=set3; end
    set3:   begin  rs=0; dat=8'h1; next=dat0; end
    dat0:   begin  rs=1; dat=8'h3C; next=dat1; end
    dat1:   begin  rs=1; dat="F"; next=dat2; end
    dat2:   begin  rs=1; dat="P"; next=dat3; end
    dat3:   begin  rs=1; dat="G"; next=dat4; end
    dat4:   begin  rs=1; dat="A"; next=dat5; end
    dat5:   begin  rs=1; dat=8'h3E; next=dat6; end

    dat6:   begin  rs=1; dat="G"; next=dat7; end
    dat7:   begin  rs=1; dat="O"; next=dat8; end
    dat8:   begin  rs=1; dat="O"; next=dat9; end
    dat9:   begin  rs=1; dat="D"; next=dat10; end
    dat10:   begin  rs=1; dat="!"; next=dat11; end
    dat11:   begin  rs=1; dat="!"; next=nul; end
     nul:   begin rs=0;  dat=8'h00;                    //行一遍 然后 把液晶的E 脚 拉高
              if(cnt!=2'h2) 
                  begin 
                       e=0;next=set0;cnt=cnt+1; 
                  end 
                   else 
                     begin next=nul; e=1;
                    end   
              end
   default:   next=set0;
    endcase
 end
assign en=clkr|e;
assign rw=0;
endmodule 

 

管脚:

NET "clk" LOC = B8;


NET "rs" LOC = A3;
NET "rw" LOC = J3;
NET "en" LOC = B5;

NET "dat[0]" LOC = C6;
NET "dat[1]" LOC = B6;
NET "dat[2]" LOC = C5;
NET "dat[3]" LOC = B7;
NET "dat[4]" LOC = A9;
NET "dat[5]" LOC = B9;
NET "dat[6]" LOC = A10;
NET "dat[7]" LOC = C9;

  评论这张
 
阅读(227)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017