探索NHD - 0116GZ - FSB - GBW字符液晶显示模块

电子说

1.4w人已加入

描述

探索NHD - 0116GZ - FSB - GBW字符液晶显示模块

模块概述

NHD - 0116GZ - FSB - GBW是Newhaven Display International推出的一款字符液晶显示模块。从型号上我们可以获取很多信息,“NHD - ”代表Newhaven Display;“0116 - ”表示该模块为1行16字符显示;“GZ - ”是其特定型号;“F - ”代表半透反射型;“SB - ”表示侧面蓝色LED背光;“G - ”为STN - 灰色;“B - ”为6:00视角;“W - ”意味着宽温度范围( - 20°C~ + 70°C),并且该模块符合RoHS标准。

文件下载:NHD-0116GZ-FSB-GBW.pdf

功能与特性

基本参数

  • 显示能力:1行16字符显示,能够满足一些简单信息的展示需求。
  • 内置控制器:有SPLC780D或ST7066U两种可选。具体的规格可以分别从http://www.newhavendisplay.com/app_notes/SPLC780D.pdf 和 http://www.newhavendisplay.com/app_notes/ST7066U.pdf 下载。
  • 电源要求:采用 + 5.0V电源供电,1/16 duty,1/5 bias,并且符合RoHS标准。

机械与电气特性

机械方面

  • 驱动方式:1/16 duty,1/5 bias,VDD 5.0V,VLCD 4.5V。
  • 显示类型:STN - 灰色、正性、半透反射型、6:00视角。
  • 工作温度范围: - 20°C - 70°C,存储温度范围: - 30°C - 80°C。

电气特性

项目 符号 条件 最小值 典型值 最大值 单位
工作温度范围 Top 绝对最大 -20 - +70 °C
存储温度范围 Tst 绝对最大 -30 - +80 °C
电源电压 VDD 4.7 5.0 5.5 V
电源电流 IDD Ta = 25°C,VDD = 5.0V - 1.5 2.5 mA
LCD供电(对比度) VDD - V0 Ta = 25°C - 4.5 - V
“H” 电平输入 Vih 2.2 - VDD V
“L” 电平输入 Vil 0 - 0.6 V
“H” 电平输出 Voh 2.4 - - V
“L” 电平输出 Vol - - 0.4 V
背光电源电压 Vled - - 5.0 - V
背光电源电流 Iled Vled = 5.0V - 30 - mA

光学特性

项目 符号 条件 最小值 典型值 最大值 单位
垂直视角(顶部) AV Cr ≥ 2 - 25 - °
垂直视角(底部) AV Cr ≥ 2 - 70 - °
水平视角(左侧) AH Cr ≥ 2 - 30 - °
水平视角(右侧) AH Cr ≥ 2 - 30 - °
对比度 Cr - 2 - -
响应时间(上升) Tr - - 120 150 ms
响应时间(下降) Tf - - 120 150 ms

引脚分配与说明

引脚编号 符号 外部连接 功能描述
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 + 电源 LED背光供电(通过板载电阻 + 5.0V)
16 LED - 电源 背光接地

初始化程序

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) 
{
    E = 0;
    P1 = i; //put data on output Port 
    D_I = 1; //D/I=LOW : send data 
    R_W = 0; //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 >15 msec after power is applied 
    Delay(100);
    command(0x30);
    command(0x30); //command 0x30 = Wake up 
    Delay(30); //must wait 5ms, busy flag not available 
    Delay(30);
    command(0x30);
    command(0x30); //command 0x30 = Wake up #2 
    Delay(10); //must wait 160us, busy flag not available 
    Delay(10);
    command(0x30);
    command(0x30); //command 0x30 = Wake up #3 
    Delay(10); //must wait 160us, busy flag not available 
    Delay(10);
    command(0x38);
    command(0x38); //Function set: 8-bit/2-line 
    command(0x10); //Set cursor
    command(0x0c);
    command(0x0c); //Display ON; Cursor ON 
    command(0x06); //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; //R/W=LOW : Write 
    Nybble(); //Send lower 4 bits 
    i = i < < 4; //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; //R/W=LOW:Write
    Nybble(); //Clock lower 4 bits 
    i = i < < 4; //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; 
    E = 0;
    Delay(100); //Wait >15 msec after power is applied 
    Delay(100);
    P1 = 0x30; //put 0x30 on the output port 
    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); //must wait 160us, busy flag not available 
    Delay(10);
    Nybble(); //command 0x30 = Wake up #3 
    Delay(10);
    Delay(10); //can check busy flag now instead of delay 
    P1 = 0x20; //put 0x20 on the output port 
    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
}

质量测试与注意事项

质量测试

该模块进行了多项质量测试,包括高温存储、低温存储、高温操作、低温操作、高温高湿操作、热冲击抗性、振动测试和静电测试等。具体测试条件和注意事项可参考文档中的表格。

注意事项

在实际设计中,电子工程师们需要根据这些特性和参数,合理地使用该显示模块,确保系统的稳定运行。大家在使用过程中有没有遇到过什么特别的问题呢?欢迎在评论区分享交流。

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

全部0条评论

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

×
20
完善资料,
赚取积分