设为首页 加入收藏

TOP

verilog写的LCD1602 显示(三)
2017-10-10 12:21:11 】 浏览:5746
Tags:verilog LCD1602 显示
row_2 [ 39: 32]; ROW2_C: lcd_data <= row_2 [ 31: 24]; ROW2_D: lcd_data <= row_2 [ 23: 16]; ROW2_E: lcd_data <= row_2 [ 15: 8]; ROW2_F: lcd_data <= row_2 [ 7: 0]; endcase end else lcd_data<=lcd_data ; end endmodule

 


3、testbench

 

`timescale 1 ns/1 ns

module lcd1602_tb();

//时钟和复位
reg clk  ;
reg rst_n;

wire lcd_en ;
wire lcd_rs ;
wire lcd_rw ;
wire [7:0] lcd_data;
        //时钟周期,单位为ns,可在此修改时钟周期。
        parameter CYCLE    = 20;

        //复位时间,此时表示复位3个时钟周期的时间。
        parameter RST_TIME = 3 ;

        //待测试的模块例化
       lcd_1602_driver u1_lcd_1602_driver(
               .clk     (clk     ),
               .rst_n   (rst_n   ),
               .lcd_en  (lcd_en  ),
               .lcd_rw  (lcd_rw  ),
               .lcd_rs  (lcd_rs  ),
               .lcd_data(lcd_data)

              );


            //生成本地时钟50M
            initial begin
                clk = 0;
                forever
                #(CYCLE/2)
                clk=~clk;
            end

            //产生复位信号
            initial begin
                rst_n = 1;
                #2;
                rst_n = 0;
                #(CYCLE*RST_TIME);
                rst_n = 1;
            end


            endmodule

 


4、modesim 仿真


 5、结果展示及总结

易错之处:1、忽略了lcd1602的正常工作频率

              2、显示地址需要加80

              3、这篇文章只是lcd1602的基本显示,下一目标就是要自定义汉字,会用到CGRAM的相关知识,详情请见下篇文章,链接如下

               http://www.cnblogs.com/aslmer/p/5819868.html,欢迎提问并给出宝贵意见

 
转载请注明出处:http://www.cnblogs.com/aslmer/p/5819422.html
首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇SDRAM 学习(三)之command 下一篇FPGA编程—组合逻辑编码器等veril..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目