- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LCD1602 显示源程序如下:module lcd1602(input clk,//60Minput rst_n, output lcd_p, output lcd_n, output reg lcd_rs, output lcd_rw,output reg lcd_en,//Backlight Source + lcd 屏幕背光//Backlight Source -//0:write order; 1:write data//0:write data;1:read data//negedge 在 lcd_en 下降沿需保证数据有效output reg [7:0] lcd_data);
LCD1602 显示源程序如下:
module lcd1602(input clk,
//60M
input rst_n, output lcd_p, output lcd_n, output reg lcd_rs, output lcd_rw,
output reg lcd_en,
//Backlight Source + lcd 屏幕背光
//Backlight Source -
//0:write order; 1:write data
//0:write data;
1:read data
//negedge 在 lcd_en 下降沿需保证数据有效
output reg [7:0] lcd_data);
mux16 mul(.rst_n(rst_n),.clk(clk),.start(start),.ain(data0),.bin(data1),.yout(data2),.done(done));//
关联
端口名称
//--------------------lcd1602 order----------------------------
parameter
Mode_Set
Cursor_Set
=
=
8h31,
8h0c,
8h06,
8h01;
// 功能设置,
//光标设置
//输入模式设置
//清屏设置
Address_Set =
Clear_Set
=
/****************************LCD1602 Display Data****************************/ wire [7:0] data_r0,data_r1,data_r2; // 乘数、被乘数
wire [15:0]data0,data1; // 结果显示
wire [31:0]data2;
wire [7:0] addr;
wire start,done;
//write address
assign data_r0 = 8h30 + data0[7:0] ; // 8h30 在 LCD1602 上显示值为 0;
assign data_r1 = 8h30 + data1[7:0] ; assign data_r2 = 8h30 + data2[7:0];
//-------------------address------------------
assign addr = 8h80;
/****************************LCD1602 Driver****************************/
//-----------------------lcd1602 clk_en---------------------
reg [31:0] cnt; reg lcd_clk_en;
always @(posedge clk or negedge rst_n) begin
if(.rst_n)
begin
cnt = 1b0; lcd_clk_en = 1b0;
endelse if(cnt == 32h24999) beginlcd_clk_en = 1b1; cnt = 1b0;endelsebegincnt = cnt + 1b1; lcd_clk_en = 1b0;end//600usend//-----------------------lcd1602 display state-------------------------------------------reg [6:0] state;always@(posedge clk or negedge rst_n) begin
end
else if(cnt == 32h24999) begin
lcd_clk_en = 1b1; cnt = 1b0;
end
else
begin
cnt = cnt + 1b1; lcd_clk_en = 1b0;
end
//600us
end
//-------------
原创力文档


文档评论(0)