对于小型和大型项目来说,字母数字低成本LCD显示器对于显示各种类型的信息非常重要。基于16×2字符LCD的日立HD44780芯片组非常便宜,在当地市场上很容易买到。
项目描述: -在这个项目中,我们将学习有关该芯片组的各种事项并在此LCD上显示文本。HD44780 16×2字符LCD屏幕使用带背光的4位并行接口。
这个项目的主要目标是: - 1.显示“Hello Hello !! 在屏幕上的LCD“消息。2.使用4位模式将LCD连接到微控制器。3.在LCD屏幕上生成和显示自定义字符。点击这里查看自定义字符
手术
正如我之前提到的,这种类型的液晶显示器使用并行8位或4位线连接到微控制器。
使用8位方法非常简单但是需要8行(用于数据或命令)+ 3个控制信号总共11行,我猜几乎没有小型微控制器甚至没有那么多的I / O线,所以在4位模式下共7个线(有时是6)是必需的。在本IC教程中,我将向您展示这种方法。
引脚说明
密码 | 符号 | 功能 |
1 | VSS | GND |
2 | VDD | + 3V或+ 5V |
3 | VO | 对比度调整 |
4 | RS | H / L寄存器选择信号 |
五 | R / W | H / L读/写信号 |
6 | Ë | H→L启用信号 |
7 | DB0 | H / L数据总线 |
8 | DB1 | H / L数据总线 |
9 | DB2 | H / L数据总线 |
10 | DB3 | H / L数据总线 |
11 | DB4 | H / L数据总线 |
12 | DB5 | H / L数据总线 |
13 | DB6 | H / L数据总线 |
14 | DB7 | H / L数据总线 |
15 | A / V型 | + 3.5V用于LED /负电压输出 |
16 | ķ | K / B电源(OV) |
在8位模式下,所有数据线DB0到DB7都用于将数据传输到lcd,但在4位模式下,只有4行DB4到DB7用于传输8位宽的数据,一个接一个地传输。
在lcd的所有必需内部命令寄存器未正确初始化之前,我们无法在lcd上显示任何数据。
了解这个液晶控制器的每一件事......你可以通过它的数据表,现在我们将学习如何初始化液晶显示器。
LCD命令
清除显示清除并将光标放在第一个位置(地址0)。默认情况下,I / D位为1。
RS | R / W. | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
将光标返回Home将光标放在原位(地址0)并使显示从其原始位置开始移动。RAM显示数据(DD RAM)的内容保持不变。显示数据的RAM地址(DD RAM)设置为0。
RS | R / W. | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | X |
设置中的输入模式设置光标移动方向并指定显示器是否移动到屏幕的下一个位置。在读取或写入DD RAM或CG RAM期间执行这些操作。要查看通常设置的位S = 0。
RS | R / W. | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | ID | 小号 |
显示ON / OFF控制通过打开/关闭LCD(D)作为光标(C)和是否最后一次闪光(B)来打开或关闭。
RS | R / W. | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 0 | 0 | 0 | 0 | 1 | d | C | 乙 |
光标或显示移位移动光标移动LCD而不改变显示数据DD RAM的存储内容。
RS | R / W. | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 0 | 0 | 0 | 1 | S / C. | R / L. | X | X |
功能集设置数据总线(DL)的接口大小,LCD(N)中的行数和字符类型(F)。
RS | R / W. | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 0 | 0 | 1 | DL | ñ | F | X | X |
设置CG RAM地址除了所有ASCII字符集外,定义的LCD模块允许用户定义4或8个字符。这些字符的组成保存到最多64字节的CG RAM存储器中。每个用户定义的字符由16或8个字节组成,存储在CG RAM的连续位置。使用此指令设置CG RAM存储器地址,从中存储定义字符的字节。运行此命令随后读取或写入由CG RAM制作的内存的所有数据。
RS | R / W. | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 0 | 1 | CG RAM地址 |
设置DD RAM地址要显示的字符或数据存储在称为RAM DD的存储器中,然后移动到屏幕上。使用该指令设置要显示数据的DD RAM存储器的地址。运行此命令将所有数据写入或读取,然后它们将从DD RAM内存中运行。IC对于该型号LCD,8Fh地址80h至16个字符对应于第一行并且地址C0h至CFH至第二行的16个字符。
RS | R / W. | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 1 | DD RAM地址 |
读忙标志和地址E l LCD模块需要一些时间来执行指令,此时您不应发送另一条指令。该标志有BUSY(忙),表示正在执行指令。该读取指令报告标志的状态,并根据已使用的最新信息提供CG RAM或DD RAM的地址计数器值。
RS | R / W. | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 1 | BF | 地址DD RAM或CG RAM |
将数据写入CG或DD RAM用于向DD RAM存储器写入要以ASCII代码显示在屏幕上的数据的命令。还写入CG RAM内存字节以生成用户定义的字符。以前是要在其中写入数据的DD RAM存储器地址或CG RAM存储器。
RS | R / W. | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
1 | 0 | 字节ASCII字符或图形 |
从CG RAM或DD RAM读取数据用于读取存储在DD RAM中的数据的命令,ASCII码。同样,读取CG RAM 用户定义字符的字节数。以前,要读取数据的内存地址或内存DD RAM CG RAM。
RS | R / W. | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
1 | 1 | 字节ASCII字符r或图形 |
连接图