在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1953|回复: 0

[求助] 简易频率计;液晶子模块只能赋一次值

[复制链接]
发表于 2010-10-19 12:14:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
大虾们,帮忙看看啊,赋了初值就不动了,是液晶模块哪里的问题啊,郁闷啊


module frequency(clk,rs,rw,en,data,fre_in);
input clk,fre_in;
output rs,rw,en;
output[7:0] data;

reg[25:0]cnt,fre_cnt,fre_data;

always @(posedge clk)
begin
cnt[25:0]=cnt[25:0]+1'b1;
        if(cnt[25:0]==26'd50000000)
        cnt=0;
end

always@(posedge fre_in)
begin
fre_cnt[25:0]=fre_cnt[25:0]+1'b1;
if(cnt[25:0]==26'd49999999)
                fre_data=fre_cnt;
end

lcd display(
.clk(clk),
.rs(rs),
.rw(rw),
.en(en),
.data(data),
.cnt_fre(fre_data)
);


/*
function[25:0] fre;
input fre_dta;
case(fre_dta)
10000000:fre=1334545;
20000000:fre=4343545;
30000000:fre=86376545;
40000000:fre=51431545;
50000000:fre=78787845;
endcase
endfunction

*/
endmodule



////////////////////////////////////////////////////////////////////////////////液晶模块///////////////////////////////////



module lcd(clk,rs,rw,en,data,cnt_fre);
input clk;
output rs,rw,en;
output[7:0] data;
reg[7:0] data;
reg[7:0] current,next;
reg[15:0] count;
reg clkr;
reg rs,e;
reg[4:0] lcd_data,lcd_M,lcd_Mg,lcd_K,lcd_Kh,lcd_Kt,lcd_H,lcd_T,lcd_G;
input[25:0] cnt_fre;

parameter  set0=8'h0;                                   //定义了很多状态机
parameter  set1=8'h1;
parameter  set2=8'h2;
parameter  set3=8'h3;
parameter  set4=8'h4;
parameter  set5=8'h5;
parameter  set6=8'h6;  

parameter  data0=8'h7;
parameter  data1=8'h8;
parameter  data2=8'h9;
parameter  data3=8'hA;
parameter  data4=8'hB;
parameter  data5=8'hC;
parameter  data6=8'hD;
parameter  data7=8'hE;
parameter  data8=8'hF;
parameter  data9=8'h10;

parameter  data16=8'h18;
parameter  data17=8'h19;
parameter  data18=8'h1A;
parameter  data19=8'h1B;
parameter  data20=8'h1C;
parameter  data21=8'h1D;
parameter  data22=8'h1E;
parameter  data23=8'h1F;
parameter  data24=8'h20;
parameter  data25=8'h21;
parameter  data26=8'h22;  

parameter nul=8'hf0;

always @(posedge clk)
begin
count[15:0]=count[15:0]+16'b1;
if(count==16'h000f)
clkr=~clkr;


end



/*******************************Remove the data every **************************************/
always @(cnt_fre)
begin

lcd_M=cnt_fre/10000000;
lcd_Mg=cnt_fre%10000000/1000000;
lcd_K=cnt_fre%1000000/100000;
lcd_Kh=cnt_fre%100000/10000;
lcd_Kt=cnt_fre%10000/1000;
lcd_H=cnt_fre%1000/100;
lcd_T=cnt_fre%100/10;
lcd_G=cnt_fre%10;

end

always @(posedge clkr)
begin
current=next;
case(current)                                                       
set0: begin e=1;rs=0;data=8'h30;next=set1; end//初始化液晶
set1: begin rs=0;data=8'h0c;next=set2; end       
set2: begin rs=0;data=8'h6;next=set3; end
set3: begin rs=0;data=8'h1;next=set4;end
set4: begin rs=0;data=8'h80;next=data0;end



data6: begin rs=1;data="f";next=data7;end
data7: begin rs=1;data="r";next=data8;end
data8: begin rs=1;data="e";next=data9;end
data9: begin rs=1;data=":";next=set5;end


set5:  begin rs=0;data=8'h90;next=data16;end

data16:begin rs=1;data=lcd_out(lcd_M);next=data17;end
data17:begin rs=1;data=lcd_out(lcd_Mg);next=data18;end
data18:begin rs=1;data=lcd_out(lcd_K);next=data19;end
data19:begin rs=1;data=lcd_out(lcd_Kh);next=data20;end
data20:begin rs=1;data=lcd_out(lcd_Kt);next=data21;end
data21:begin rs=1;data=lcd_out(lcd_H);next=data22;end
data22:begin rs=1;data=lcd_out(lcd_T);next=data23;end
data23:begin rs=1;data=lcd_out(lcd_G);next=data24;end
data24:begin rs=1;data="H";next=data26;end
data26:begin rs=1;data="Z";next=nul;end

  nul: begin e=0;end
default:   next=set0;
    endcase
end


assign en=clkr&e;
assign rw=0;

function[7:0] lcd_out;
input[4:0] lcd_in;
begin
case(lcd_in)
        0: lcd_out="0";
        1: lcd_out="1";
        2: lcd_out="2";
        3: lcd_out="3";
        4: lcd_out="4";
        5: lcd_out="5";
        6: lcd_out="6";
        7: lcd_out="7";
        8: lcd_out="8";
        9: lcd_out="9";
endcase
end
endfunction

endmodule
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-28 22:38 , Processed in 0.018198 second(s), 12 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表