⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd_write.v

📁 基于ALTERA公司的DE2的LCD显示程序
💻 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 + -