0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA的LCD1602液晶显示模块驱动设计

FPGA技术实战 来源:FPGA技术实战 2024-10-24 14:42 次阅读

引言:本文通过以LCD1602液晶显示模块为基础,介绍FPGA驱动LCD1602原理,详细介绍硬件原理图设计及FPGA驱动LCD1602软件设计,通过万年历功能综合实现时钟功能、LCD1602显示功能。

1.硬件设计原理

1.1 概述

LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块,它可以显示字母、数字和符号等。

图1:常见的LCD1602款式

LCD1602由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻电容元件和结构件等装配在PCB板上而组成。从图2中COM信号、SEG信号可以看出,LCD1602的驱动原理与数码管本质上是类似的,只不过其内部LCD驱动电路实现了对数据的解码,用户只需按照控制接口简单输入要显示的数据即可。

wKgZoWcZ7F-ASazfAAEGXwnTv5k101.png

图2:常见的LCD1602内部组成结构

常用的类型有16×1,16×2,20×2和40×2等的模块。不同厂家生产的LCD1602芯片可能有所不同,但使用方法都是一样的,本文以16×2为例进行介绍。

1.2 LCD1602硬件设计

(1)主要技术参数

显示字符容量:16×2个字符,即显示两行字符,每行16个字符;

工作电压:4.5V~5.5V(最佳工作电压5.0V),典型电流2mA@5.0V;

字符尺寸:2.95×4.35(W×H)mm。

(2)尺寸大小

LCD1602尺寸大小如图3所示。

wKgZoWcZ7F-AKLqXAAGhvhI8SPw533.png

图3:LCD1602尺寸大小

(3)信号接口说明

信号接口定义说明如下表所示。

表1:LCD1602信号定义

wKgaoWcZ7F-AZPgqAAFMNEyjXPY640.png

管脚说明:

管脚1,2,为电源管脚,15,16为背光管脚,均推荐5.0V供电

管脚3为,对比度调节管脚,需提供偏压电压。其用于LCD1602液晶屏对比度控制,该管脚电压在1.2V±0.1V左右显示对比度较佳,硬件连接是建议采用滑动变阻器对其电压进行控制;

管脚4 RS,为数据,命令选择管脚:H:数据选择,L:命令选择;

管脚5 R/W,为读写管脚:H:读操作,L:写;

管脚6 E,为是能管脚,该信号下降沿有效时,数据传输给内部模块;

管脚714 D0D7,为数据或命令。

(4)原理图设计

LCD1602硬件原理图设计如4所示。

wKgaoWcZ7F-AQeIYAADoZsKVftE629.png

图4:LCD1602硬件原理图

2.软件设计

2.1 LCD1602显示及指令说明

如图3右侧所示,液晶屏每个字符其实是有5×8个LED灯组成,由于LCD1602内部已经集成了专门的驱动芯片,无需用户像数码管那样单独的去控制每一个LED灯,降低了开发难度,减少了硬件连接信号线。

(1)LCD1602内部RAM地址映射图

wKgaoWcZ7F-AcqY9AAC84X0CFjY786.png

图5:LCD1602内部RAM地址映射图

LCD1602内部控制器带有80×8位(80字节)的RAM缓冲区如图5所示。LCD1602内部字符表编码如图6所示。

wKgaoWcZ7F-AVeJxAAAznDedPR0341.png

图6:LCD1602内部字符表编码:

(2)指令说明

初始化设置指令:

显示模式设置指令38H:

wKgaoWcZ7F-AYrC7AABBLZtZ9bk794.png

显示开/关、光标功能

wKgZoWcZ7GCAFOzGAAFazw8UHYk085.png

(3)数据控制

控制器内部设有一个数据指针,用户可以通过他们方位内部的全部80字节RAM。

数据指针设置:即如果要在01位置显示字符,RAM的地址必须是01H+80H,即81H,其他位置类似,均需要加上80H。

wKgZoWcZ7F-AGdbxAABbON5aHaA394.png

(4)其他设置

显示清屏和显示回车指令:

wKgaoWcZ7GCAUldZAACD-JcAZ5U584.png

2.2 读写操作时序

(1)读操作

读操作时序如图7所示。

wKgZoWcZ7F-AKnolAAC1unaTuBE511.png

图7:读操作时序

读状态:输入:RS = L,RW = H,E = H,输出D0~D7状态字;

读数据:输入:RS = H,RW = H,E = H,输出D0~D7数据。

(2)写操作

写操作时序如图8所示。

wKgZoWcZ7F-AKnolAAC1unaTuBE511.png

图8:读操作时序

写指令:输入:RS = L,RW = L,D0~D7=指令码,E = H,输出无;

写数据:输入:RS = H,RW = L,D0D7=指令码,E = H,输出D0D7数据。

读写操作需要注意的是,D0~D7数据要在使能E信号的下降沿写入控制器,要注意tHD2保持时间必须满足手册要求,其他时序参数也要参考手册要求。

2.3 LCD1602上电初始化操作

LCD1602上电必须进行初始化操作,初始化过程如下:

(1)硬件上电后,延迟15ms;

(2)写指令38H(可不检测忙信号);

(3)延迟5ms;

(4)写指令38H(可不检测忙信号);

(5)延迟5ms;

(6)写指令38H(可不检测忙信号,以后每次写指令、读写操作前均需检测忙信号,也可通过增大延迟,如5ms,不检测忙信号);

(7)写指令38H:显示模式设置;

(8)写08H:关闭显示;

(9)写0H:显示清屏;

(10)写指令06H:显示光标移动设置;

(11)写指令0CH:显示开及光标设置。

2.4 软件设计

本文要利用LCD1602实现万年历显示。具体功能如下:

(1)DS1302芯片SPI接口驱动功能;

(2)DS1302芯片寄存器读写控制功能,可以实现时钟初始化设置;

(3)按键消抖功能;

(4)LCD1602显示万年历静态设置时间;

(5)LCD1602显示万年历动态时间。

软件功能模块划分如图9所示。

wKgZoWcZ7F-AUY-MAAJFwtTlXhE857.png

图9:软件设计模块划分框图

各个模块功能:

(1)lcd1602_calendar.v模块为万年历顶层模块,实现模块间互联;

(2)spi_driver.v实现DS1302 SPI接口通信功能;

(3)ds1302_ctrl_m.v实现DS1302寄存器读写控制功能,包括将设置值写入芯片和将芯片寄存器值读出控制。

(4)set_init_time.v实现通过按键实现万年历初始值设置;

(5)lcd1602_driver.v驱动LCD1602接口实现万年历显示功能(动态显示年、月、日、星期、时、分、秒,温度静态显示);

(6)KeyJitters.v实现按键消抖功能。

3.测试结果

软件下载至电路板,通过SignaTap II在线逻辑分析仪抓取LCD1602接口写数据如下图所示。

wKgZoWcZ7F-AK9yTAAC_u4M3WW4069.png

图10:LCD1602写操作

通过按键设置万年历初始值,显示在LCD1602上,如图11所示,可以看到万年历时间已经正确显示。

wKgZoWcZ7GCAbL8mAAbuhdJZzZM094.png

图11:LCD1602万年历初始值设置显示

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1624

    文章

    21597

    浏览量

    600984
  • 液晶屏
    +关注

    关注

    18

    文章

    712

    浏览量

    42698
  • 液晶显示器
    +关注

    关注

    11

    文章

    574

    浏览量

    43569
  • LCD1602
    +关注

    关注

    14

    文章

    607

    浏览量

    52463

原文标题:FPGA入门基础之LCD1602液晶屏万年历显示

文章出处:【微信号:FPGA技术实战,微信公众号:FPGA技术实战】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    LCD1602液晶显示屏的驱动设计与实现

    LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符。LCD1602液晶显示的原理是利用
    的头像 发表于 12-08 11:24 9799次阅读
    <b class='flag-5'>LCD1602</b><b class='flag-5'>液晶显示</b>屏的<b class='flag-5'>驱动</b>设计与实现

    LCD1602液晶显示模块

    LCD1602液晶显示模块LCD1602(Liquid Crystal Display), 每行可显示16个字符共2行。实物图引脚图主要引脚
    发表于 07-20 06:48

    请问如何驱动LCD1602液晶显示屏?

    LCD1602液晶显示屏的原理是什么?如何驱动LCD1602液晶显示屏?
    发表于 01-17 08:29

    液晶显示模块LCD1602应用

    液晶显示模块LCD1602应用
    发表于 09-25 16:58 683次下载
    <b class='flag-5'>液晶显示</b><b class='flag-5'>模块</b><b class='flag-5'>LCD1602</b>应用

    基于ARM的LCD1602液晶显示源代码

    基于ARM的LCD1602液晶显示源代码。
    发表于 05-20 16:29 18次下载

    lcd1602显示原理,LCD1602液晶显示器的分类有哪些?

    LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符。LCD1602液晶显示原理 LC
    发表于 10-20 10:32 3.6w次阅读

    液晶显示模块LCD1602中文资料

    本文主要介绍了液晶显示模块LCD1602中文资料。
    发表于 06-05 08:00 26次下载

    LCD1602液晶显示屏的基础驱动程序免费下载

    本文档的主要内容详细介绍的是LCD1602液晶显示屏的基础驱动程序免费下载。
    发表于 08-16 17:32 17次下载
    <b class='flag-5'>LCD1602</b><b class='flag-5'>液晶显示</b>屏的基础<b class='flag-5'>驱动</b>程序免费下载

    LCD1602点阵字符型液晶显示模块驱动封装的工程详细讲解

    本文档的主要内容详细介绍的设计LCD1602点阵字符型液晶显示模块驱动封装的工程详细讲解资料免费下载。
    发表于 05-15 18:08 0次下载
    <b class='flag-5'>LCD1602</b>点阵字符型<b class='flag-5'>液晶显示</b><b class='flag-5'>模块</b><b class='flag-5'>驱动</b>封装的工程详细讲解

    lcd1602液晶显示屏介绍_lcd1602引脚功能

    本文首先阐述了lcd1602液晶显示屏的概念,其次阐述了LCD1602外形尺寸,最后介绍了lcd1602引脚功能。
    发表于 04-23 08:53 7.1w次阅读

    LCD1602液晶显示器的使用要点

    LCD1602液晶显示器是最为广泛使用的一种字符型液晶显示模块
    的头像 发表于 07-11 16:56 1.6w次阅读

    51单片机怎么显示当前时间_(记录)51单片机——LCD1602液晶显示模块

    51单片机怎么显示当前时间_(记录)51单片机——LCD1602液晶显示模块
    发表于 11-16 15:06 29次下载
    51单片机怎么<b class='flag-5'>显示</b>当前时间_(记录)51单片机——<b class='flag-5'>LCD1602</b><b class='flag-5'>液晶显示</b><b class='flag-5'>模块</b>

    LCD1602液晶显示模块学习笔记

    LCD1602液晶显示模块LCD1602(Liquid Crystal Display), 每行可显示16个字符共2行。实物图引脚图主要引脚
    发表于 12-01 17:21 32次下载
    <b class='flag-5'>LCD1602</b><b class='flag-5'>液晶显示</b><b class='flag-5'>模块</b>学习笔记

    LCD1602液晶显示模块

    LCD602字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用161,162,202和402行等的
    发表于 01-13 16:46 23次下载
    <b class='flag-5'>LCD1602</b><b class='flag-5'>液晶显示</b><b class='flag-5'>模块</b>

    lcd1602液晶显示模块工作原理

    LCD1602液晶显示模块是一种常用的显示设备,可以显示文字和简单的图形。它常被用于各种电子设备中,比如计算器、电子表格、仪器仪表等。本文将
    的头像 发表于 12-20 10:30 6538次阅读