苏州科技学院-EDA电子综合设计 - 基于LCD显示的秒表设计

2026/4/27 14:38:21

always@(posedge clk or negedge rst) begin if(!rst) begin

count<=0;

state<=Warmup; end else

begin

case(state) Warmup: begin

if(clk_en) begin if(count==4'b0111) begin

state<=Funcset; count<=0; end else

begin

state<=Warmup;

count<=count+4'b0001; end end end Funcset: begin

if(clk_en) begin

if(count==4'b1111) begin

state<=Dspoff; count<=0; end else

begin

state<=Funcset;

count<=count+4'b0001; end end end

Dspoff:

state<=Clsdsp;

Clsdsp: begin

if(clk_en) begin

if(count==4'b0101) begin

state<=Modeset; count<=0; end else

begin

state<=Clsdsp;

count<=count+4'b0001; end end end

Modeset: begin

if(clk_en)

state<=Dspon; end Dspon:

begin

if(clk_en) begin if(count==4'b0100) begin

state<=Setaddr1; count<=0; end else

begin

state<=Dspon;

count<=count+4'b0001; end end end

Setaddr1: begin

if(clk_en) state<=Indata1; end Indata1: begin

if(clk_en) begin

if(count==4'b1101) begin

state<=Setaddr2; count<=0; end else

begin

state<=Indata1;

count<=count+4'b0001; end end end

Setaddr2: begin

if(clk_en) state<=Indata2; end Indata2: begin

if(clk_en) begin if(count==4'b1001) begin

state<=Setaddr1; count<=0; end else

begin

state<=Indata2;

count<=count+4'b0001; end end end

default:state<=Warmup; endcase end end

always @(state or count or lcd_data_in) begin

case(state) Warmup: begin RS<=0; RW<=0;

lcd_data_out<=8'b00000000; end

Funcset:lcd_data_out<=8'b00111000; Dspoff: lcd_data_out<=8'b00001000; Clsdsp: lcd_data_out<=8'b00000001; Modeset:lcd_data_out<=8'b00000110; Dspon: lcd_data_out<=8'b00001100; Setaddr1:begin RS<=0; RW<=0;

lcd_data_out<=8'b10000000; end Indata1:begin RS<=1; RW<=0;

case(count)

4'b0000:lcd_data_out<={4'b0011,lcd_data_in[27:24]}; 4'b0001:lcd_data_out<={4'b0011,lcd_data_in[23:20]}; 4'b0010:lcd_data_out<={4'b0011,lcd_data_in[19:16]};

4'b0011:lcd_data_out<={4'b0011,lcd_data_in[15:12]}; 4'b0100:lcd_data_out<=8'b00101110;

4'b0101:lcd_data_out<={4'b0011,lcd_data_in[11:8]}; 4'b0110:lcd_data_out<={4'b0011,lcd_data_in[7:4]}; 4'b0111:lcd_data_out<={4'b0011,lcd_data_in[3:0]}; 4'b1000:lcd_data_out<=8'b00100000; 4'b1001:lcd_data_out<=8'b00100000; 4'b1010:lcd_data_out<=8'b00100000; 4'b1011:lcd_data_out<=8'b00100000; 4'b1100:lcd_data_out<=8'b00100000; default:lcd_data_out<=8'b00100000; endcase end

Setaddr2:begin RS<=0; RW<=0;

lcd_data_out<=8'b11000000; end Indata2:begin RS<=1; RW<=0;

case(count)

4'b0000:lcd_data_out<=8'b00100000; 4'b0001:lcd_data_out<=8'b00100000; 4'b0010:lcd_data_out<=8'b00100000; 4'b0011:lcd_data_out<=8'b00100000; 4'b0100:lcd_data_out<=8'b00100000;


苏州科技学院-EDA电子综合设计 - 基于LCD显示的秒表设计.doc 将本文的Word文档下载到电脑
搜索更多关于: 苏州科技学院-EDA电子综合设计 - 基于LCD显示的秒表设 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219