电子说
在电子设备的设计中,液晶显示模块是不可或缺的一部分,它为用户提供了直观的信息展示界面。今天,我们就来深入了解一下Newhaven Display International推出的NHD - 0220DZ - FL - YBW字符液晶显示模块。
NHD - 0220DZ - FL - YBW有着清晰的命名规则,每个部分都代表了特定的含义。“NHD - ”代表Newhaven Display;“0220 - ”表示该模块为2行,每行20个字符;“DZ - ”是其型号;“F - ”代表半透反射型;“L - ”表示采用黄/绿色LED背光;“Y - ”为STN - 黄/绿色(+);“B - ”意味着6:00最佳视角;“W - ”表示宽温度范围,并且该产品符合RoHS标准。
该模块具备2行×20字符的显示能力,能够满足一般信息展示的需求。
内置ST7066U控制器,为模块的稳定运行提供了保障。你可以通过这里下载其详细规格说明。
采用+5.0V电源供电,工作时的一些电气参数如下:
| 该模块共有16个引脚,每个引脚都有其特定的功能: | 引脚编号 | 符号 | 外部连接 | 功能描述 |
|---|---|---|---|---|
| 1 | VSS | 电源地 | 提供电源接地 | |
| 2 | VDD | 电源 | 为逻辑电路提供+5.0V电源 | |
| 3 | V0 | 电源 | 提供对比度调节电压(约0.65V) | |
| 4 | RS | MPU | 寄存器选择信号,RS = 0为命令,RS = 1为数据 | |
| 5 | R/W | MPU | 读写选择信号,R/W = 1为读,R/W = 0为写 | |
| 6 | E | MPU | 操作使能信号,下降沿触发 | |
| 7 - 10 | DB0 – DB3 | MPU | 四个低阶双向三态数据总线,4位操作时不使用 | |
| 11 - 14 | DB4 – DB7 | MPU | 四个高阶双向三态数据总线 | |
| 15 | LED+ | 电源 | 背光阳极(通过板载电阻接+5.0V) | |
| 16 | LED- | 电源 | 背光阴极(接地) |
推荐使用2x8 2.54mm间距的连接器。
| 项目 | 符号 | 条件 | 最小值 | 典型值 | 最大值 | 单位 |
|---|---|---|---|---|---|---|
| 工作温度范围 | Top | 绝对最大 | -20 | - | +70 | ⁰C |
| 存储温度范围 | Tst | 绝对最大 | -30 | - | +80 | ⁰C |
| 电源电压 | VDD | - | 4.5 | 5.0 | 5.5 | V |
| 电源电流 | IDD | Ta = 25°C,VDD = 5.0V | 1.0 | 1.2 | 1.5 | mA |
| 液晶对比度电源 | VDD - V0 | Ta = 25°C | 4.2 | 4.35 | 4.5 | V |
| “H” 电平输入 | Vih | - | 0.7 * VDD | - | VDD | V |
| “L” 电平输入 | Vil | - | VSS | - | 0.6 | V |
| “H” 电平输出 | Voh | - | 3.9 | - | VDD | V |
| “L” 电平输出 | Vol | - | - | - | 0.2 * VDD | V |
| 背光电源电压 | Vled | - | 4.9 | 5.0 | 5.1 | V |
| 背光电源电流 | Iled | Vled = 5.0V | 84 | 105 | 157 | mA |
| 项目 | 符号 | 条件 | 最小值 | 典型值 | 最大值 | 单位 | |
|---|---|---|---|---|---|---|---|
| 最佳视角 | 顶部 | ϕY+ | Cr ≥ 2 | - | 20 | - | ⁰ |
| 底部 | ϕY- | - | 40 | - | ⁰ | ||
| 左侧 | θX- | - | 30 | - | ⁰ | ||
| 右侧 | θX+ | - | 30 | - | ⁰ | ||
| 对比度 | Cr | - | - | - | 3 | - | - |
| 响应时间 | 上升 | Tr | - | - | 150 | 200 | ms |
| 下降 | Tf | - | - | 150 | 200 | ms |
| 内置的ST7066U控制器负责模块的控制和数据处理。DDRAM地址分配如下: | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 14 |
|---|---|---|---|---|---|---|---|---|---|---|
| 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 | ||||||||||
| 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 |
| 该模块支持多种命令,每个命令都有其特定的功能和执行时间,例如: | 指令 | 指令代码 | 描述 | 执行时间(fosc = 270 KHZ) |
|---|---|---|---|---|
| 清屏 | 0 0 0 0 0 0 0 0 0 1 | 将“20H”写入DDRAM并将DDRAM地址从AC设置为“00H” | 1.52ms | |
| 返回主页 | 0 0 0 0 0 0 0 0 1 - | 将DDRAM地址从AC设置为“00H”,如果光标已移动则返回其原始位置,DDRAM内容不变 | 1.52ms | |
| 输入模式设置 | 0 0 0 0 0 0 0 1 I/D SH | 设置光标移动方向并指定显示移位,在数据读写时执行这些参数 | 37µs |
| 从MPU向ST7066U写入数据时,各个参数的时间要求如下: | 参数 | 描述 | 引脚 | 最小值 | 典型值 | 最大值 | 单位 |
|---|---|---|---|---|---|---|---|
| Tc | 使能周期时间 | Pin E | 1200 | ns | |||
| TPW | 使能脉冲宽度 | Pin E | 140 | - | ns | ||
| TR,TF | 使能上升/下降时间 | Pin E | - | 25 | ns | ||
| TAS | 地址建立时间 | Pins: RS,RW,E | 0 | - | ns | ||
| TAH | 地址保持时间 | Pins: RS,RW,E | 10 | ns | |||
| TDSW | 数据建立时间 | Pins: DB0 - DB7 | 40 | - | ns | ||
| TH | 数据保持时间 | Pins: DB0 - DB7 | 10 | - | ns |
| 从ST7066U向MPU读取数据时,参数要求如下: | 参数 | 描述 | 引脚 | 最小值 | 典型值 | 最大值 | 单位 |
|---|---|---|---|---|---|---|---|
| Tc | 使能周期时间 | Pin E | 1200 | - | ns | ||
| TPW | 使能脉冲宽度 | Pin E | 140 | ns | |||
| TR,TF | 使能上升/下降时间 | Pin E | - | 25 | ns | ||
| TAS | 地址建立时间 | Pins: RS,RW,E | 0 | - | ns | ||
| TAH | 地址保持时间 | Pins: RS,RW,E | 10 | - | ns | ||
| TDDR | 数据建立时间 | Pins: DB0 - DB7 | 100 | ns | |||
| TH | 数据保持时间 | Pins: DB0 - DB7 | 10 | - | ns |
模块内置了特定的字体表,可用于字符的显示。
void command(char i)
{
P1 = i; //put data on output Port
D_I = 0; //D/I=LOW : send instruction
R_W = 0; //R/W=LOW:Write
E = 1;
Delay(1);
Delay(1); //enable pulse width >= 300ns
E = 0; //Clock enable: falling edge
}
void write(char i) {
P1 = i; //put data on output Port
D_I = 1; //D/I=HIGH : send data
R_W = 0; //R/W=LOW:Write
E = 1;
Delay(1); //enable pulse width >= 300ns
Delay(1);
E = 0; //Clock enable: falling edge
}
void init()
{
Delay(100); //Wait >40 msec after power is applied
command(0x30); //command 0x30 = Wake up
Delay(30); //must wait 5ms, busy flag not available
command(0x30); //command 0x30 = Wake up #2
Delay(10); //must wait 160us, busy flag not available
command(0x30); //command 0x30 = Wake up #3
Delay(10); //must wait 160us, busy flag not available
command(0x38); //Function set:8-bit/2-line
command(0x10); //Set cursor
command(0x0c); //Display ON; Cursor ON
command(0x06); //Entry mode set
}
void command(char i)
{
P1 = i; //put data on output Port
D_I = 0; //D/I=LOW : send instruction
R_W = 0;
Nybble();
i = i < < 4; //Send lower 4 bits //Shift over by 4 bits
P1 = i; //put data on output Port
Nybble(); //Send upper 4 bits
}
void write(char i) {
P1 = i; //put data on output Port
D_I = 1; //D/I=HIGH: send data
R_W = 0;
Nybble();
P1 = i;
i = i < < 4; //Clock lower 4 bits //Shift over by 4 bits
P1 = i; //put data on output Port
Nybble(); //Clock upper 4 bits
}
void Nybble()
{
E = 1;
Delay(1); //enable pulse width >= 300ns
E = 0; //Clock enable:falling edge
}
void init()
{
P1 = 0; P3 = 0;
Delay(100); //Wait >40 msec after power is applied
P1 = 0x30; //put 0x30 on the output port
Delay(30); //must wait 5ms, busy flag not available
Nybble(); //command 0x30 = Wake up
Delay(10); //must wait 160us, busy flag not available
Nybble(); //command 0x30= Wake up #2
Delay(10); //must wait 160us, busy flag not available
Nybble(); //command 0x30 = Wake up #3
Delay(10); //can check busy flag now instead of delay
P1 = 0x20; //put 0x20 on the output port
Nybble(); //Function set: 4-bit interface
command(0x28); //Function set: 4-bit/2-line
command(0x10); //Set cursor
command(0x0F); //Display ON; Blinking cursor
command(0x06); //Entry Mode set
}
该模块经过了多项质量测试,包括高温存储、低温存储、高温运行、低温运行、高温高湿运行、热冲击抗性、振动测试和静电测试等,以确保其在不同环境下的稳定性和可靠性。
在使用该模块时,需要注意一些事项,具体可参考这里。同时,关于保修信息和条款条件可查看这里。
NHD - 0220DZ - FL - YBW字符液晶显示模块以其丰富的功能、稳定的性能和良好的兼容性,为电子工程师在设计显示界面时提供了一个不错的选择。你在使用这款模块时遇到过什么问题吗?欢迎在评论区分享你的经验和见解。
全部0条评论
快来发表一下你的评论吧 !