QuartusLCD1602液晶驱动显示控制verilog代码青创QC-FPGA开发板

这篇具有很好参考价值的文章主要介绍了QuartusLCD1602液晶驱动显示控制verilog代码青创QC-FPGA开发板。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

名称:QuartusLCD1602液晶驱动显示控制verilog代码青创QC-FPGA开发板(文末获取)

软件:Quartus

语言:Verilog

代码功能:

LCD1602液晶驱动显示控制

第一行显示"HUAWEI NOVA7" 

第二行显示"5Gshouji"     

显示内容可以直接修改以下代码实现

parameter   Data_First =  "  HUAWEI NOVA7 ",                 //液晶显示的第一行的数据

            Data_Second = "    5Gshouji   ";               //液晶显示的第二行的数据   

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

QuartusLCD1602液晶驱动显示控制verilog代码青创QC-FPGA开发板,fpga开发

1. 工程文件

QuartusLCD1602液晶驱动显示控制verilog代码青创QC-FPGA开发板,fpga开发

2. 程序文件

QuartusLCD1602液晶驱动显示控制verilog代码青创QC-FPGA开发板,fpga开发

3. 程序编译

QuartusLCD1602液晶驱动显示控制verilog代码青创QC-FPGA开发板,fpga开发

4. RTL图

QuartusLCD1602液晶驱动显示控制verilog代码青创QC-FPGA开发板,fpga开发

5. 仿真文件

QuartusLCD1602液晶驱动显示控制verilog代码青创QC-FPGA开发板,fpga开发

6. 仿真图

QuartusLCD1602液晶驱动显示控制verilog代码青创QC-FPGA开发板,fpga开发

QuartusLCD1602液晶驱动显示控制verilog代码青创QC-FPGA开发板,fpga开发

QuartusLCD1602液晶驱动显示控制verilog代码青创QC-FPGA开发板,fpga开发

部分代码展示:

// LCD_Driver.v
//功能简述:在1602液晶模块上显示字符串
module LCD_Driver(clk_LCD,rst,LCD_EN,RS,RW,DB8);
input   clk_LCD,rst;        //rst为全局复位信号(高电平有效)
output  LCD_EN,RS,RW;
//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;                                 //空闲状态
parameter   Data_First =  "  HUAWEI NOVA7 ",                 //液晶显示的第一行的数据
            Data_Second = "    5Gshouji   ";               //液晶显示的第二行的数据   
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;                         //清屏并光标复位  
             end
      Set_Disp_Mode:
             begin
                state <= Disp_On;
                DB8 <= 8'b00111000;                         //设置显示模式:8位2行5x8点阵        
             end
      Disp_On:
             begin
                state <= Shift_Down;
                DB8 <= 8'b00001100;                         //显示器开、光标不显示、光标不允许闪烁   
             end
      Shift_Down:
            begin
                state <= Write_Addr;
                DB8 <= 8'b00000110;                         //文字不动,光标自动右移   
            end
      Write_Addr:
            begin
                state <= Write_Data_First;
                DB8 <= 8'b10000001;                         //写入第一行显示起始地址:第一行第二个位置   
                Data_First_Buf <= Data_First;               //将第一行显示的数据赋给Data_First_Buf?
            end
      Write_Data_First:                                     //写第一行数据
            begin
                if(disp_count == 14)                        //disp_count等于14时表示第一行数据已写完
                    begin
                        DB8 <= 8'b11000001;                 //送入写第二行的指令
                        RS <= 1'b0;
                        disp_count <= 4'b0;
                        Data_Second_Buf <= Data_Second;
                        state <= Write_Data_Second;         //写完第一行进入写第二行状态
                    end
                else
                    begin
                        DB8 <= Data_First_Buf[111:104];
                      
                        RS <= 1'b1;                         //RS=1表示写数据
                        disp_count <= disp_count + 1'b1;
                        Data_First_Buf <= (Data_First_Buf << 8);
                        state <= Write_Data_First;
                    end
            end
      Write_Data_Second:                                    //写第二行数据
            begin
                if(disp_count == 14)
                    begin
                        LCD_EN_Sel <= 1'b0;
                        RS <= 1'b0;
                        disp_count <= 4'b0;
                        state <= Idel;                      //写完进入空闲状态
                    end
                else
                    begin
                        DB8 <= Data_Second_Buf[111:104];
                     
                        RS <= 1'b1;
                        disp_count <= disp_count + 1'b1;
                        Data_Second_Buf <= (Data_Second_Buf << 8);
                        state <= Write_Data_Second;
                    end             
            end
      Idel:    
            begin
                state <=  Idel;                             //在Idel状态循环 
            end
      default:  state <= Clear_Lcd;                         //若state为其他值,则将state置为Clear_Lcd
      endcase
end
endmodule
完整代码

 扫描文章末尾的公众号二维码文章来源地址https://www.toymoban.com/news/detail-774420.html

到了这里,关于QuartusLCD1602液晶驱动显示控制verilog代码青创QC-FPGA开发板的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LCD1602液晶显示屏

    主函数 LCD1602.c LCD1602.h 接线图:   1、1602屏幕=16x2=32个字符,总共有32个字符  2、每个字符由35个像素组成 每个像素由一小块液晶控制 --------------------------------------------------------------------------------------------------------------------------------- 液晶的控制原理: 不施加电压——液晶完

    2024年02月07日
    浏览(50)
  • 第八讲 单片机驱动彩色液晶屏 控制RA8889软件:显示图片

    目录 第一讲 单片机最小系统STM32F103C6T6通过RA8889驱动彩色液晶屏播放视频 第二讲 单片机最小系统STM32F103C6T6控制RA8889驱动彩色液晶屏硬件框架 第三讲 单片机驱动彩色液晶屏 控制RA8889软件:如何初始化 第四讲 单片机驱动彩色液晶屏 控制RA8889软件:绘图 第五讲 单片机驱动彩色液

    2024年01月22日
    浏览(53)
  • LCD—STM32液晶显示(4.液晶控制代码讲解)

    目录 STM32液晶控制代码讲解 液晶接口封装介绍 使用LCD的配置步骤 内存操作要使用volatile进行修饰 图形绘制实现 绘制矩形 重点补充 指南者液晶接口原理图 左边DB00—DB15表示液晶屏的数据线引脚,分别对应STM32的FSMC外设的FSMC_D0—D15及对应的GPIO 霸道原理图如下 可以发现左边得

    2024年02月16日
    浏览(44)
  • 【STM32】驱动LCD1602液晶8线并、4线并

    目录 LCD1602液晶 引脚定义说明 字库概述  LCD1602原理图  LCD1602时序图 LCD1602代码 接线图 用结构体的方式显示字符 LCD1602动态显示数字 4线驱动LCD1602 液晶模块和数码管相比,液晶模块会显得更加专业、漂亮。液晶显示器以其体积小、功耗低、超薄、轻巧、显示内容丰富、使用方

    2024年02月16日
    浏览(44)
  • STM32显示外设集--液晶显示模块(LCD1602)

    一、介绍 产品图 二、 资源获取 欢迎关注微信公众号--星之援工作室 发送(LCD1602) 三、线路连接图 四、代码编写 LCD1602.h LCD1602.c main.h 五、参考 LCD1602是一种字母数字液晶显示模块,可以显示16个字符和2行文本,因此被命名为LCD1602。它通常用于各种电子项目,特别是

    2024年02月11日
    浏览(49)
  • 51单片机 | LCD1602 液晶显示实验

      在前面章节,我们已经学习过几种显示装置,例如静态数码管、动态数码管、 8*8LED 点阵、串口通信。使用它们可以直观显示一些字符数据,但是它们也有各种局限性,比如显示字符数据太少,硬件设计复杂、代码编写难度大等。这一章就来介绍一种非常简单且常用的显

    2023年04月11日
    浏览(65)
  • Proteus仿真-LCD1602液晶屏使用方法(驱动一)

    一、硬件链接 在元件库中搜索LM016即可找到LCD1602液晶屏。 按下图方式链接单片机和屏幕。 二、软件驱动代码 三、示例程序

    2024年02月12日
    浏览(42)
  • 51单片机LCD1602液晶屏显示方法

    以显示hello,world!    2022.10.17  为例。 首先把LCD1602的模块化程序添加到项目目录中,模块化方法在51单片机之程序模块化_学习笔记吧的博客-CSDN博客这里可以学习。 实验程序: LCD1602.c文件代码: LCD1602.h文件代码: 把这两个代码,分别添加到LCD1602.c 和 LCD1602.h 文件,然后添加

    2023年04月08日
    浏览(55)
  • 【51单片机】LCD1602 液晶显示实验指导书

             来介绍一种非常简单且常用的显示装置——LCD1602 液晶显示器,使用它可以显示更多的字符数字。这将有助于我们清晰的观察程序的运行结果,更加方便我们的后续调试和开发。         我们的开发板上集成了一个 LCD1602 液晶显示器接口,将LCD1602 液晶对应插

    2024年02月01日
    浏览(63)
  • 单片机C语言实例:18、LCD1602液晶显示

    学单片机的小朋友应该都见过这个显示器--LCD1602,这是最古老最简单的显示屏,上世纪80年代的产物。 它显示的图案如下所示 显示部分放大就是下面这样 ,像素就是一个个小方块,相当于描点法绘图了。 如果把所有像素全部显示出来就是下面这样,全部是小黑点  全部点亮

    2024年02月09日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包