探索NHD - 0216K1Z - FSW - FTW - FB1字符液晶显示模块

电子说

1.4w人已加入

描述

探索NHD - 0216K1Z - FSW - FTW - FB1字符液晶显示模块

在电子设计领域,液晶显示模块是人机交互中不可或缺的重要组件。今天,我们就来深入了解Newhaven Display International公司推出的NHD - 0216K1Z - FSW - FTW - FB1字符液晶显示模块。

文件下载:NHD-0216K1Z-FSW-FTW-FB1.pdf

一、产品概述

NHD - 0216K1Z - FSW - FTW - FB1是一款具备2行16字符显示能力的液晶显示模块。从型号命名上,我们可以获取很多有用信息:

  • “NHD - ”代表Newhaven Display。
  • “0216 - ”表明该模块为2行16字符显示。
  • “K1Z - ”是其特定的型号。
  • “F - ”表示具有半透反射特性。
  • “SW - ”说明采用侧面白色LED背光。
  • “F - ”代表FSTN(+)模式。
  • “T - ”意味着最佳视角为12:00方向。
  • “W - ”表示具备宽温度工作范围。
  • “FB1 - ”代表固定对比度和自动背光功能,并且该产品符合RoHS标准。

二、功能与特性

显示能力

该模块能够清晰显示2行16个字符,满足一般信息显示需求。

内置控制器

内置ST7066U控制器,其详细规格可从http://www.newhavendisplay.com/app_notes/ST7066U.pdf下载。

电源要求

采用+5.0V电源供电,工作时的一些电气参数如下: 项目 符号 条件 最小值 典型值 最大值 单位
工作温度范围 TOP 绝对最大 -20 - +70 °C
存储温度范围 TST 绝对最大 -30 - +80 °C
电源电压 VDD - 4.8 5.0 5.2 V
电源电流 IDD + ILED VDD = 5.0V 11.0 16.5 22.5 mA
LCD供电(对比度) 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
背光电源电压 VLED - 4.8 5.0 5.2 V
背光电源电流 ILED VLED = 5.0V 10 15 20 mA

光学特性

在光学方面,它也有不错的表现: 项目 符号 条件 最小值 典型值 最大值 单位
最佳视角 顶部 ϕY+ CR ≥ 2 - 40 - °
底部 ϕY - - 60 - °
左侧 θX - - 60 - °
右侧 θX+ - 60 - °
对比度 CR - 2 5 - -
响应时间 上升 TR TOP = 25°C - 150 250 ms
下降 TF - 200 300 ms

三、引脚说明与接线图

该模块的引脚功能明确,具体如下: 引脚编号 符号 外部连接 功能描述
1 VSS 电源 接地
2 VDD 电源 逻辑和背光的供电电压(+5.0V)
3 NC - 不连接(固定对比度)
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 NC - 不连接
16 NC - 不连接

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

四、指令集与操作

该模块提供了丰富的指令集,用于控制显示和数据读写等操作,例如: 指令 指令代码 描述 270 KHZ执行时间 (fOSC = )
清屏 0 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 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

五、初始化程序

模块支持8位和4位初始化方式:

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 //R/W=LOW:Write
    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 
    Delay (100);
    command (0x30); //command 0x30 = Wake up
    Delay(30);
    Delay(30); //must wait 5ms, busy flag not available 
    command (0x30); //command 0x30 = Wake up #2
    Delay (10);
    Delay(10); //must wait 160us, busy flag not available 
    command (0x30); //command 0x30 = Wake up #3
    Delay (10);
    Delay(10); //must wait 160us, busy flag not available 
    command (0x38);
    command(0x38); //Function set: 8-bit/2-line 
    command (0x10); 
    command (0x0c); 
    command (0x06); //Set cursor //Display ON; Cursor ON //Entry mode set
}

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; //R/W=LOW:Write //Send lower 4 bits //Shift over by 4 bits
    P1 = i;
    P1 = i; //put data on output Port 
    Nybble(); //Send upper 4 bits
}

void write(char i) 
{ 
    P1 = i; //put data on output Port 
    R_W = 0; 
    Nybble(); 
    P1 = i; 
    D_I = 1; 
    i = i < < 4; //D/I=HIGH : send data //R/W=LOW: Write //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);
    Delay(1); //enable pulse width >= 300ns 
    E = 0; //Clock enable:falling edge
}

void init() 
{
    P1 = 0; 
    P3 = 0; 
    Delay (100);
    Delay(100); //Wait >40 msec after power is applied 
    P1 = 0x30; //put 0x30 on the output port 
    P1 = 0x30;
    Delay (30);
    Delay(30); //must wait 5ms, busy flag not available 
    Nybble(); //command 0x30 = Wake up
    Delay (10);
    Delay(10); //must wait 160us, busy flag not available 
    Nybble(); //command 0x30= Wake up #2
    Delay (10);
    Delay(10); //must wait 160us, busy flag not available 
    Nybble ();
    Nybble(); //command 0x30 = Wake up #3 
    Delay(10); //can check busy flag now instead of delay 
    Delay (10);
    P1 = 0x20; //put 0x20 on the output port 
    P1 = 0x20;
    Nybble(); //Function set: 4-bit interface 
    Nybble ();
    command (0x28);
    command(0x28); //Function set: 4-bit/2-line 
    command (0x10); //Set cursor
    command (0x0F);
    command(0x0F); //Display ON; Blinking cursor 
    command (0x06); //Entry Mode set
}

六、质量测试与注意事项

质量测试

该模块经过了多项严格的质量测试,包括高温存储、低温存储、高温操作、低温操作、高温高湿操作、热冲击抗性、振动测试和静电测试等。 测试项目 测试内容 测试条件 备注
高温存储 长时间施加高存储温度的耐久性测试 +80°C , 48hrs 2
低温存储 长时间施加低存储温度的耐久性测试 -30°C , 48hrs 1,2
高温操作 长时间施加电应力(电压和电流)和高热应力的耐久性测试 +70°C 48hrs 2
低温操作 长时间施加电应力(电压和电流)和低热应力的耐久性测试 -20°C , 48hrs 1,2
高温/高湿操作 长时间施加电应力(电压和电流)以及高温高湿应力的耐久性测试 +40°C , 90% RH , 48hrs 1,2
热冲击抗性 在高低热应力循环期间施加电应力(电压和电流)的耐久性测试 0°C,30min -> 25°C,5min -> 50°C,30min = 1 cycle 10 cycles
振动测试 施加振动以模拟运输和使用的耐久性测试 10 - 55Hz , 15mm振幅。在X、Y、Z三个方向各60秒,共15分钟 3
静电测试 施加静电放电的耐久性测试 VS = 800V, RS = 1.5kΩ, CS = 100pF 一次

注意事项

使用该模块时,需要注意一些事项,具体可参考www.newhavendisplay.com/specs/precautions.pdf。同时,关于保修信息和条款可访问http://www.newhavendisplay.com/index.php?main_page=terms。

NHD - 0216K1Z - FSW - FTW - FB1字符液晶显示模块凭借其丰富的功能、良好的性能和严格的质量测试,在电子设计中有着广泛的应用前景。各位工程师在实际应用中,不妨根据具体需求合理选择和使用。你在使用类似液晶显示模块时遇到过哪些问题呢?欢迎在评论区分享。

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

全部0条评论

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

×
20
完善资料,
赚取积分