VERILOG控制液晶显示屏显示字符

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

控制液晶显示屏显示字符Spartan—3e

VERILOG

正确无误

module lcd_control(clk,reset,lcd_rs,lcd_rw,lcd_e,lcd_d,flash_ce); input clk;

input reset;

output lcd_rs;

output lcd_rw;

output lcd_e;

output flash_ce;

output[3:0]lcd_d;

reg lcd_rs,lcd_e;

reg [3:0]lcd_d;

assign flash_ce = 1;

assign lcd_rw = 0;

reg [19:0] delay_count;

reg [19:0] num_count;

parameter state1 =6'd1;

parameter state2 =6'd2;

parameter state3 =6'd3;

parameter state4 =6'd4;

parameter state5 =6'd5;

parameter state6 =6'd6;

parameter state7 =6'd7;

parameter state8 =6'd8;

parameter state9 =6'd9;

parameter state10=6'd10;

parameter state11 =6'd11;

parameter state12 =6'd12;

parameter state13 =6'd13;

parameter state14 =6'd14;

parameter state15 =6'd15;

parameter state16 =6'd16;

parameter state17 =6'd17;

parameter state18 =6'd18;

parameter state19 =6'd19;

parameter state20 =6'd20; parameter state21 =6'd21; parameter state22 =6'd22; parameter state23 =6'd23; parameter state24 =6'd24; parameter state25 =6'd25; parameter state26 =6'd26; parameter state27 =6'd27; parameter state28 =6'd28; parameter state29 =6'd29; parameter state30 =6'd30; parameter state31=6'd31; parameter state32 =6'd32; parameter state33 =6'd33; parameter state34 =6'd34; parameter state35=6'd35; parameter state36 =6'd36; parameter state37 =6'd37; parameter state38 =6'd38; parameter state39 =6'd39; parameter state40 =6'd40; parameter state41 =6'd41; parameter state42 =6'd42; parameter state43 =6'd43; parameter state44=6'd44; parameter state45 =6'd45; parameter state46=6'd46; parameter state47 =6'd47; parameter state48 =6'd48; parameter state49=6'd49; parameter state50 =6'd50; parameter state51=6'd51; parameter state52 =6'd52; parameter state53 =6'd53;

reg [5:0] state;

reg state_change;

always @(posedge clk,posedge reset) if(reset)

begin

state_change<=1'b0;

delay_count<=1'b1;

end

else if (delay_count==num_count-1)

begin

state_change<=1'b1;

delay_count<=1'b1;

end

else

begin

state_change<=1'b0;

delay_count<=delay_count+1'b1;

end

always @ (posedge state_change or posedge reset) if(reset)

begin

state<=state1;

num_count<=20'd750000;

end

else

case(state)

state1: begin

state<=state2;

num_count<=20'd4;

lcd_rs<=1'b0;

lcd_e<=1'b0;

lcd_d<=4'h3;

end

state2: begin

state<=state3;

num_count<=20'd12;

lcd_e<=1'b1;

end

state3: begin

state<=state4;

num_count<=20'd205_000;

lcd_e<=1'b0;

end

state4:// 重复写入功能设置指令4'h3;

begin

相关文档
最新文档