探索NHD - 0420E2Z - FL - GBW字符液晶显示模块

电子说

1.4w人已加入

描述

探索NHD - 0420E2Z - FL - GBW字符液晶显示模块

在电子设计领域,液晶显示模块是人机交互的重要组件。今天我们来深入了解Newhaven Display International推出的NHD - 0420E2Z - FL - GBW字符液晶显示模块,看看它有哪些特性和应用要点。

文件下载:NHD-0420E2Z-FL-GBW.pdf

一、模块概述

1. 型号含义

NHD - 0420E2Z - FL - GBW这个型号包含了丰富的信息:

  • “NHD - ”代表Newhaven Display。
  • “0420 - ”表示该模块有4行,每行可显示20个字符。
  • “E2Z - ”是具体的型号标识。
  • “F - ”代表半反半透模式。
  • “L - ”说明采用黄/绿色LED背光。
  • “G - ”表示STN正性、灰色显示。
  • “B - ”意味着最佳视角为6:00方向。
  • “W - ”表示宽温度范围,且该模块符合RoHS标准。

2. 功能与特性

  • 显示能力:具备4行×20字符的显示能力,能满足较多信息的展示需求。
  • 内置控制器:内置ST7066U控制器,这为模块的稳定运行提供了保障。
  • 电源要求:采用+5.0V电源供电,工作在1/16 duty、1/5 bias的模式下。

二、模块的机械与电气特性

1. 机械绘图

模块的机械绘图信息属于Newhaven Display International的专有财产,未经许可不得复制、再现或披露。这也提醒我们在使用相关设计时要遵守知识产权规定。

2. 引脚描述与接线图

引脚编号 符号 外部连接 功能描述
1 VSS 电源地 提供电源接地
2 VDD 电源 为逻辑电路提供+5.0V供电
3 V0 电源 提供对比度调节电压(约0.5V)
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 - 电源 背光阴极(接地)

推荐使用2.54mm间距的引脚作为LCD连接器。

3. 电气特性

项目 符号 条件 最小值 典型值 最大值 单位
工作温度范围 TOP 绝对最大 -20 - +70 ⁰C
存储温度范围 TST 绝对最大 -30 - +80 ⁰C
电源电压 VDD - 4.5 5.0 5.5 V
电源电流 IDD VDD = 5.0V 0.5 3.0 5.0 mA
液晶对比度电源 VLCD TOP = 25°C 4.3 4.5 4.7 V
“H” 电平输入 VIH - 0.7 * VDD - VDD V
“L” 电平输入 VIL - VSS - 0.6 V
“H” 电平输出 VOH - 3.9 - VDD V
“L” 电平输出 VOL - VSS - 0.4 V
背光电源电流 ILED - - 250 300 mA
背光电源电压 VLED ILED = 250mA 4.8 5.0 5.2 V

这里需要注意,背光的LED由电流驱动,驱动电压仅作参考,必须选择合适的驱动电压以确保背光电流在最大允许值以下。

4. 光学特性

项目 符号 条件 最小值 典型值 最大值 单位
最佳视角 顶部 ϕY+ CR ≥ 2 - 40 - °
底部 ϕY - - 60 - °
左侧 θX - - 60 - °
右侧 θX+ - 60 - °
对比度 CR - - 2 5 - -
响应时间 上升 TR TOP = 25°C - 150 250 ms
下降 TF - 200 300 ms

这些光学特性决定了模块在不同视角下的显示效果和响应速度,对于实际应用中的显示效果评估非常重要。

三、控制器信息

模块内置ST7066U控制器,其详细规格可从http://www.newhavendisplay.com/app_notes/ST7066U.pdf下载。了解控制器的规格有助于我们更好地对模块进行编程和控制。

1. DDRAM地址

DDRAM地址分布如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 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
14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21
54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61

这为我们在编程时准确地写入和读取数据提供了地址参考。

2. 指令表

指令 指令代码 描述 270 KHZ执行时间(fOSC = )
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
清屏 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
显示开/关控制 0 0 0 0 0 0 1 D C B D = 1:整个显示打开;C = 1:光标打开;B = 1:闪烁光标打开 37µs
光标或显示移位 0 0 0 0 0 1 S/C R/L - - 设置光标移动和显示移位控制位,且不改变DDRAM数据 37µs
功能设置 0 0 0 0 1 DL N F - - DL:接口数据为8/4位;N:行数为2/1;F:字体大小为5x11/5x8 37µs
设置CGRAM地址 0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0 在地址计数器中设置CGRAM地址 37µs
设置DDRAM地址 0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0 在地址计数器中设置DDRAM地址 37µs
读取忙标志和地址 0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 通过读取BF可知是否处于内部操作,也可读取地址计数器内容 0s
向地址写入数据 1 0 D7 D6 D5 D4 D3 D2 D1 D0 将数据写入内部RAM(DDRAM/CGRAM) 37µs
从RAM读取数据 1 1 D7 D6 D5 D4 D3 D2 D1 D0 从内部RAM(DDRAM/CGRAM)读取数据 37µs

这些指令是我们控制模块显示内容和操作的关键,工程师需要根据实际需求灵活运用。

四、时序特性

1. MPU向ST7066U写入数据

参数 描述 引脚 时间
Tc 使能周期时间 E 1200 ns
Tpw 使能脉冲宽度 E 140 ns
TR,TF 使能上升/下降时间 E 25 ns
TAs 地址建立时间 RS,RW,E 0 ns
TAH 地址保持时间 RS,RW,E 10 ns
Tpsw 数据建立时间 DB0 - DB7 40 ns
TH 数据保持时间 DB0 - DB7 10 ns

2. ST7066U向MPU读取数据

参数 描述 引脚 时间
Tc 使能周期时间 E 1200 ns
TPW 使能脉冲宽度 E 140 ns
TR,TF 使能上升/下降时间 E 25 ns
TAS 地址建立时间 RS,RW,E 0 ns
TAH 地址保持时间 RS,RW,E 10 ns
TDDR 数据建立时间 DB0 - DB7 - 100 ns
TH 数据保持时间 DB0 - DB7 10 ns

了解这些时序特性对于正确设计电路和编写程序至关重要,确保数据的准确传输和模块的正常工作。

五、内置字体表

文档中给出了内置字体表,但具体内容可能需要进一步解读和应用。在实际设计中,我们可以根据这些字体来显示所需的字符和符号。

六、初始化程序示例

1. 8位初始化

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 
    R_W = 0; 
    D_I = 1; //D/I=HIGH : send data 
    E = 1; 
    Delay(1);
    Delay(1); //enable pulse width >= 300ns 
    E = 0; //Clock enable: falling edge 
}

void init() 
{
    E = 0; 
    Delay(100); //Wait >40 msec after power is applied 
    command(0x30); //command 0x30 = Wake up
    Delay(30);
    command(0x30); //command 0x30 = Wake up #2
    Delay(10);
    command(0x30); //command 0x30= Wake up #3
    Delay(10);
    command(0x38); //Function set: 8-bit/2-line 
    command(0x10); 
    command(0x0c); 
    command(0x06); //Set cursor //Display ON; Cursor ON //Entry mode set
}

2. 4位初始化

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; //Shift over by 4bits
    P1 = i;
    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; //Shift over by 4 bits
    P1 = i; 
    Nybble(); //Clock upper 4 bits
}

void Nybble() 
{
    E = 1; 
    Delay(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; 
    Delay(30);
    Nybble(); //command 0x30 = Wake up
    Delay(10);
    Nybble(); //command 0x30= Wake up #2
    Delay(10);
    Nybble(); //command 0x30 = Wake up #3 
    Delay(10);
    P1 = 0x20; 
    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
}

这些初始化程序为我们快速启动模块提供了参考,工程师可以根据实际需求进行调整。

七、质量信息与注意事项

1. 质量测试

测试项目 测试内容 测试条件 注意事项
高温存储 长时间施加高温存储温度的耐久性测试 +80⁰C ,48hrs 2
低温存储 长时间施加低温
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • 热点推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分