模块实例https://blog.csdn.net/qq_38393591/article/details/108643827
LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符。LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,即可以显示出图形。在这一章我们就来讨论LCD1602液晶显示屏驱动的设计与实现。
一、功能概述
1.1引脚功能
LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明见表1。
编号 | 符号 | 引脚说明 | 标号 | 符号 | 引脚说明 |
1 | VSS | 电源地 | 9 | D2| | 数据 |
2 | VDD | 电源正极 | 10 | D3 | 数据 |
3 | VL | 液晶显示偏压 | 11 | D4 | 数据 |
4 | RS | 数据/命令选择 | 12 | D5 | 数据 |
5 | R/W | 读/写选择 | 13 | D6 | 数据 |
6 | E | 使能信号 | 14 | D7 | 数据 |
7 | D0 | 数据 | 15 | BLA | 背光源正极 |
8 | D1 | 数据 | 16 | BLK | 背光源负极 |
各引脚的功能介绍如下。
·引脚1:VSS为地电源。
·引脚2:VDD接5V正电源。
·引脚3:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”现象,使用时可以通过一个10kQ的电位器调整其对比度。
·引脚4:RS为寄存器选择脚,高电平时选择数据寄存器、低电平时选择指令寄存器。
·引脚5:R/W为读/写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或显示地址;当RS为低电平,R/W为高电平时,可以读忙信号;当RS为高电平,R/W为低电平时,可以写入数据。
·引脚6:E端为使能端,当E端由高电平跳变为低电平时,液晶模块执行命令。
·引脚7~14:D0~D7为8位双向数据线。
·引脚15:背光源正极。
·引脚16:背光源负极。
1.2指令集
LCD1602液晶模块内部的控制器共有11条控制指令,见表2。
序号 | 指令 | RS | R/W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
1 | 清屏 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
2 | 光标复位 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | x |
3 | 输入方式设置 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | I/D | S |
4 | 显示开关控制 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | D | C | B |
5 | 光标或字符移位控制 | 0 | 0 | 0 | 0 | 0 | 1 | S/C | R/L | x | x |
6 | 功能设置 | 0 | 0 | 0 | 0 | 1 | DL | N | F | x | x |
7 | 字符发生存储器地址设置 | 0 | 0 | 0 | 1 | 字符发生存储器地址 | |||||
8 | 数据存储器地址设置 | 0 | 0 | 1 | 显示数据存储器地址 | ||||||
9 | 读忙标志或地址 | 0 | 1 | BF | 计数器地址 | ||||||
10 | 写入数据至CGRAM或DDRAM | 1 | 0 | 要写入的数据内容 | |||||||
11 | 从CGRAM或DDRAM中读取数据 | 1 | 1 | 读取的数据内容 |
LCD1602液晶模块的读/写操作、显示屏和光标的操作都是通过指令编程来实现的(其中,1为高电平,0为低电平),分别介绍如下。
(1)指令1:清屏。指令码01H,光标复位到地址00H。
(2)指令2:光标复位。光标复位到地址00H。
(3)指令3:输入方式设置。其中,I/D表示光标的移动方向,高电平右移,低电平左移;S表示显示屏上所有文字是否左移或右移,高电平表示有效,低电平表示无效。
(4)指令4:显示开关控制。其中,D用于控制整体显示的开与关,高电平表示开显示,低电平表示关显示;C用于控制光标的开与关,高电平表示有光标,低电平表示无光标;B用于控制光标是否闪烁,高电平闪烁,低电平不闪烁。
(5)指令5:光标或字符移位控制。其中,S/C表示在高电平时移动显示的文字,低电平时移动光标。
(6)指令6:功能设置命令。其中,DL表示在高电平时为8位总线,低电平时为4位总线;N表示在低电平时为单行显示,高电平时双行显示;F表示在低电平时显示5×7的点阵字符,高电平时显示5×10的点阵字符。
(7)指令7:字符发生器RAM地址设置。
(8)指令8:DDRAM地址设置。
(9)指令9:读忙信号和光标地址。其中,BF为忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平则表示不忙。
(10)指令10:写数据。
(11)指令11:读数据。
LCD1602液晶又被称作1602字符型液晶,这是一种只用来显示字母、数字、符号等的点阵型液晶模块。LCD1602里面存储器一般有三种:CGROM、CGRAM、DDRAM。其中DDRAM(Display Data RAM)就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下如图所示:
LCD1602使用三条控制线:EN、RW、RS。 其中EN的作用其实就是中线的功能,RW和RS指示了读、它写的是写的方向和内容。在读数据(或者Busy标志)期间,EN线必须保持高电平;而在写指令(或者数据)过程中,EN线上必须送出一个正脉冲。RW、RS的组合一共有四种情况,分别对应四种操作:
(1)、RS=0、RW=0——表示向LCD写入指令。
(2)、RS=0、RW=1——表示读取Busy标志。
(3)、RS=1、RW=0——表示向LCD写入数据。
(4)、RS=1、RW=1——表示从LCD读取数据。
LCD1602利用指令码来区分不同的操作,主要的有两类:一是用于初始化配置的指令码;二是用于数据控制的指令码。第一类用于LCD初始化配置的指令码基本上都是在系统启动时,用于对LCD1602的一次性配置。而第二类数据操作的指令码主要用于设置数据指针的位置,现实信息的实现与清楚等。这两类指令码从使用上并无太大区别,后续我们将详细说明。