`timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 15:31:29 03/11/2011 // Design Name: // Module Name: lcdcs7 // Project Name: // Target Devices: // Tool versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module lcdcs7(clk_50,lcd_data,lcd_rw,lcd_rs,lcd_en); input clk_50; output [3:0] lcd_data; output lcd_rw,lcd_rs,lcd_en; reg [3:0] lcd_data; reg lcd_rs; reg lcd_en; reg clk_1k=1'b0; reg [20:0] counter=0; reg [10:0] counter1=0; assign lcd_rw=0; always@(posedge clk_50) if(counter==25000) begin clk_1k<=~clk_1k; counter<=0; end else counter<=counter+1; always@(posedge clk_1k) begin if(counter1<1223) begin counter1<=counter1+1; case (counter1) 400:begin lcd_data<=4'b0010; //0x28 设置显示模式 lcd_rs<=1'b0; end 401:lcd_en<=1'b1; 411:begin lcd_data<=4'b1000; //0x28 设置显示模式 lcd_rs<=1'b0; end 412:lcd_en<=1'b1; 422:begin lcd_data<=4'b0010; //0x28 设置显示模式 lcd_rs<=1'b0; end 423:lcd_en<=1'b1; 433:begin lcd_data<=4'b1000; //0x28 设置显示模式 lcd_rs<=1'b0; end 434:lcd_en<=1'b1; 444:begin lcd_data<=4'b0010; //0x28 设置显示模式 lcd_rs<=1'b0; end 445:lcd_en<=1'b1; 455:begin lcd_data<=4'b1000; //0x28 设置显示模式 lcd_rs<=1'b0; end 456:lcd_en<=1'b1; 466: //0x08 开显示 关光标 begin lcd_data<=4'b0000; lcd_rs<=1'b0; end 467: lcd_en<=1'b1; 477: begin lcd_data<=4'b1000; lcd_rs<=1'b0; end 478: lcd_en<=1'b1; 488: begin //0x01 清屏?? lcd_data<=4'b0000; lcd_rs<=1'b0; end 489: lcd_en<=1'b1; 499: begin //0x01 清屏幕 lcd_data<=4'b0001; lcd_rs<=1'b0; end 500: lcd_en<=1'b1; 510: begin //0x06 读或者写后 自动加1 lcd_data<=4'b0000; lcd_rs<=1'b0; end 511: lcd_en<=1'b1; 521: begin //0x06 读或者写后 自动加1 lcd_data<=4'b0110; lcd_rs<=1'b0; end 522: lcd_en<=1'b1; 532:begin //0x0c lcd_data<=4'b0000; lcd_rs<=1'b0; end 533: begin lcd_en<=1'b1; end 543:begin //0x0c lcd_data<=4'b1100; lcd_rs<=1'b0; end 544: begin lcd_en<=1'b1; end 554: begin lcd_data<=4'h8; //定位 lcd_rs<=1'b0; end 555: lcd_en<=1'b1; 565: begin // lcd_data<=4'h0; lcd_rs<=1'b0; end 566: lcd_en<=1'b1; 576: begin //write data W lcd_data<=4'h7; lcd_rs<=1'b1; end 577: lcd_en<=1'b1; 579: begin lcd_data<=4'h1; lcd_rs<=1'b1; end 580: lcd_en<=1'b1; 598: begin /////////////// lcd_data<=4'h6; lcd_rs<=1'b1; end 599: lcd_en<=1'b1; 609: begin lcd_data<=4'h9; lcd_rs<=1'b1; end 610: lcd_en<=1'b1; 620: begin //write data W lcd_data<=4'h7; lcd_rs<=1'b1; lcd_en<=1'b1; end //621: 631: begin lcd_data<=4'h5; lcd_rs<=1'b1; lcd_en<=1'b1; end //632: default: lcd_en<=1'b0; endcase end else counter1<=0; end endmodule