My title page contents

lcd1602模块驱动代码设计Verilog代码Quartus  开发板

名称:lcd1602模块驱动代码设计Verilog代码Quartus  开发板

软件:Quartus

语言:Verilog

代码功能:

lcd1602模块驱动代码设计

1、用qartus软件

2、用verilog语言

3、输入两组16位二进制数据,使lcd1602在第一行上显示字符串consume与第一组转换成十进制输入的数据,第二行显示字符串rest与第二组转换成十进制输入的数据





本代码已在开发板验证,开发板如下,其他开发板可以修改管脚适配:

开发板.jpg


编辑

1、工程文件

编辑

2、程序文件

编辑

编辑

编辑

3、程序编译

编辑

4、RTL图

编辑

5、管脚分配

编辑

6、Testbench

编辑

7、仿真图

整体仿真图

编辑

编辑

分频模块

编辑

LCD驱动模块

编辑

部分代码展示:



// LCD_Driver.v
//功能简述:在1602液晶模块上显示字符串
module LCD_Driver(clk_LCD,rst,LCD_EN,RS,RW,DB8,Data_First,Data_Second);
input   clk_LCD,rst;        //rst为全局复位信号
output  LCD_EN,RS,RW;
input        [111:0] Data_First,Data_Second; 
//LCD_EN为LCD模块的使能信号(下降沿触发)
//RS=0时为写指令;RS=1时为写数据
//RW=0时对LCD模块执行写操作;RW=1时对LCD模块执行读操作
output  [7:0] DB8;          //8位指令或数据总线
reg     [7:0] DB8;
reg     [111:0] Data_First_Buf,Data_Second_Buf;     //液晶显示的数据缓存
reg     RS,LCD_EN_Sel;
reg     [3:0] disp_count;
reg     [3:0] state;
parameter   Clear_Lcd = 4'b0000,                            //清屏并光标复位
            Set_Disp_Mode = 4'b0001,                        //设置显示模式:8位2行5x7点阵  
            Disp_On = 4'b0010,                              //显示器开、光标不显示、光标不允许闪烁
            Shift_Down = 4'b0011,                           //文字不动,光标自动右移
            Write_Addr = 4'b0100,                           //写入显示起始地址
            Write_Data_First = 4'b0101,                     //写入第一行显示的数据
            Write_Data_Second = 4'b0110,                    //写入第二行显示的数据
            Idel = 4'b0111;                                 //空闲状态       
assign  RW = 1'b0;                     //RW=0时对LCD模块执行写操作
assign  LCD_EN = LCD_EN_Sel ? clk_LCD : 1'b0;
//通过LCD_EN_Sel信号来控制LCD_EN的开启与关闭
always @(posedge clk_LCD or negedge rst)
begin
   if(!rst)
      begin
          state <= Clear_Lcd;                               //复位:清屏并光标复位  
          RS <= 1'b0;                                       //复位:RS=0时为写指令;                      
          DB8 <= 8'b0;                                      //复位:使DB8总线输出全0
          LCD_EN_Sel <= 1'b1;                               //复位:开启夜晶使能信号
          //Data_First_Buf <= Data_First;
          //Data_Second_Buf <= Data_Second;
          disp_count <= 4'b0;
      end
   else
      case(state)                                           //初始化LCD模块
      Clear_Lcd:
             begin
                state <= Set_Disp_Mode;
                DB8 <= 8'b00000001;                         //清屏并光标复位  
 
 RS <= 1'b0;                                       //复位:RS=0时为写指令;                      
          
                LCD_EN_Sel <= 1'b1;                               //复位:开启夜晶使能信号
                disp_count <= 4'b0;
             end
      Set_Disp_Mode:

代码文件(付费下载):







1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » lcd1602模块驱动代码设计Verilog代码Quartus  开发板

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员