📄 lcd_write.v
字号:
/*-------------------LCD_write.v-------------------------
function:initialisation lcd and write data to lcd,no read
author:XT
date:060110
description:该版本可完成以下功能(可下载版):
1。初始化液晶
2。接收外部数据输入,并在lcd上显示出来
3。数据发送间隔为20ms
pin: D0:D5 -----183:188 D0:D3和led共用
D6:D7 -----193:194
RS -----170
RW -----173
E -----174
clk -----153
rst -----240
TxD -----162
RxD -----163
digA - 195 key1-49 led1 - 183
digB - 196 key2-50 led2 - 184
digC - 197 key3-53 led3 - 185
digD - 200 key4-54 led4 - 186
digE - 201
digF - 202
digG - 1
digDP - 2
digled select:
scan1 - 3
scan2 - 4
email: yadog@163.com
qq:360303839
all rights reserved by the author.
if u have got any problem or suggestion,
please contact me by the email or qq.
----------------------------------------------------------*/
module LCD_write ( clk_Sys,rst,/*LCD_Data_In,*/
LCD_RS,LCD_RW,LCD_E,LCD_Data_Out);
input clk_Sys,rst;
output LCD_RS; //0:Instruction;1:data
output LCD_RW; //0:write;1:read.always 0.
output LCD_E; //posedge work
output [7:0] LCD_Data_Out; //LCD output data from controller
reg Start_init; //1:active,indicator for start initial lcd
reg Finish_init; //1:active,indicator for lcd initial done
reg clk_50Hz;
reg [19:0] i;
wire [7:0]LCD_Data_In;
assign LCD_RW = 0; //no read
assign LCD_Data_In = 8'h41;
//----------generate 20ms(50Hz) timer---------------------
//divide 50MHz clk_Sys by 1000000
always @ (posedge clk_Sys)
begin
if(!rst)
begin
i <= 20'b0;
clk_50Hz <= 1'b0;
Start_init <= 1'b1;
end
else if ( i == 999999 )
begin
i <= 20'b0;
clk_50Hz <= ~clk_50Hz;
end
else i <= i + 1;
end
LCD_init init( .clk_50Hz(clk_50Hz),.rst(rst),
.Start_init(Start_init),
.LCD_Data_In(LCD_Data_In),
.Finish_init(Finish_init),.LCD_RS(LCD_RS),
.LCD_E(LCD_E),.LCD_Data_Out(LCD_Data_Out) );
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -