探索NHD - 0216HZ - FSW - FBW - 33V3CH液晶显示模块:特性、应用与设计要点

电子说

1.4w人已加入

描述

探索NHD-0216HZ-FSW-FBW-33V3CH液晶显示模块:特性、应用与设计要点

一、引言

在电子设备的设计中,液晶显示模块(LCM)是不可或缺的人机交互界面组件。今天我们要深入探讨的是Newhaven Display公司的NHD - 0216HZ - FSW - FBW - 33V3CH字符液晶显示模块,它具备诸多特性,适用于各种需要显示信息的电子设备。

文件下载:NHD-0216HZ-FSW-FBW-33V3CH.pdf

二、产品概述

2.1 型号含义

  • NHD - 0216HZ:这是产品的基本型号标识。“0216”表示该模块具有2行16列的字符显示能力;“HZ”是具体的型号系列。
  • FSW - FBW:“F”代表半透反射式;“SW”表示侧面白色LED背光;“F”为FSTN(+)类型;“B”表明最佳视角为6:00方向;“W”意味着具备宽温度特性。
  • 33V3CH:“33V3”表示LCD工作电压为3.3V,背光电压为3.0V;“C”表示带有温度补偿电路;“H”表示采用标准的1x16引脚排针,并且符合RoHS标准。

2.2 基本特性

  • 显示能力:能够显示2行,每行16个字符,满足一般信息显示需求。
  • 内置控制器:采用ST7066U或等效控制器,方便开发者进行编程控制。
  • 电源要求:使用+3.3V电源供电,1/16 duty,1/5 bias,功耗相对较低且符合RoHS标准。

三、硬件设计要点

3.1 引脚说明

Pin No. Symbol External Connection Function Description
1 VSS Power Supply Ground
2 VDD Power Supply Supply Voltage for LCD and Logic (+3.3V)
3 NC NC No Connect
4 RS MPU Register Select signal. RS = 0: Command, RS = 1: Data
5 R/W MPU Read/Write select signal. R/W = 1: Read, R/W = 0: Write
6 E MPU Operation Enable signal. Falling edge triggered.
7 - 10 DB0 – DB3 MPU Four low order bi - directional three - state data bus lines. Not used during 4 - bit operation.
11 - 14 DB4 – DB7 MPU Four high order bi - directional three - state data bus lines.
15 LED+ Power Supply Backlight Anode (+3.0V)
16 LED - Power Supply Backlight Cathode (Ground)

3.2 电气特性

Item Symbol Condition Min. Typ. Max. Unit
Operating Temperature Range Top Absolute Max - 20 - +70 ⁰C
Storage Temperature Range Tst Absolute Max - 30 - +80 ⁰C
Supply Voltage VDD - 3.3 - V
Supply Current IDD Ta = 25°C, VDD = 3.3V - 1.5 2.5 mA
Supply for LCD (contrast) VDD - V0 Ta = 25°C - 3.2 - V
“H” Level input Vih 0.7 * VDD - VDD V
“L” Level input Vil 0 - 0.6 V
“H” Level output Voh 0.75 * VDD - - V
“L” Level output Vol - - 0.2 * VDD V
Backlight Supply Voltage Vled - - 3.0 V
Backlight Supply Current Iled Vled = 3.0V - 15 - mA

3.3 光学特性

Item Symbol Condition Min. Typ. Max. Unit
Viewing Angle – Top - Cr ≥ 3 - 20 -
Viewing Angle – Bottom - - 50 -
Viewing Angle – Left - - 30 -
Viewing Angle – Right - - 30 -
Contrast Ratio Cr 3 5 - -
Response Time (rise) Tr - - 150 250 ms
Response Time (fall) Tf - - 150 250 ms

四、软件编程要点

4.1 控制器信息

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

4.2 指令集

Instruction Instruction code Description 270 KHZ Execution time (fosc =)
RS
Clear Display 0 0 0 0 0 0 0 0 0 1 Write “20H” to DDRA and set DDRAM address to “00H” from AC 1.53ms
Return Home 0 0 0 0 0 0 0 0 1 - Set DDRAM address to “00H” From AC and return cursor to Its original position if shifted. The contents of DDRAM are not changed. 1.53ms
Entry mode Set 0 0 0 0 0 0 0 1 I/D SH Assign cursor moving direction And blinking of entire display 39us
Display ON/ OFF control 0 0 0 0 0 0 1 D C B Set display (D), cursor (C), and Blinking of cursor (B) on/off Control bit.
Cursor or Display shift 0 0 0 0 0 1 S/C R/L - - Set cursor moving and display Shift control bit, and the Direction, without changing of DDRAM data. 39us
Function set 0 0 0 0 1 DL N F - - Set interface data length (DL: 8 - Bit/4 - bit), numbers of display Line (N: = 2 - line/1 - line) and, Display font type (F: 5x11/5x8) 39us
Set CGRAM Address 0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0 Set CGRAM address in address counter. 39us
Set DDRAM Address 0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0 Set DDRAM address in address counter. 39us
Read busy Flag and Address 0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 Whether during internal Operation or not can be known By reading BF. The contents of Address counter can also be read. 0us
Write data To Address 1 0 D7 D6 D5 D4 D3 D2 D1 D0 Write data into internal RAM (DDRAM/CGRAM). 43us
Read data From RAM 1 1 D7 D6 D5 D4 D3 D2 D1 D0 Read data from internal RAM (DDRAM/CGRAM). 43us

4.3 初始化程序

8位初始化

/**********************************************************/ 
void command(char i) 
{ 
    P1 = i; //put data on output Port 
    D_I = 0; //D/I = LOW : send instruction 
    RW = 0; //R/W = LOW: Write
    E = 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 
    RW = 0; //R/W = LOW : Write 
    E = 1; 
    Delay(1); //enable pulse width >= 300ns 
    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
}

4位初始化

void command(char i) {
    P1 = i; //put data on output Port 
    D_I = 0; //D/I = LOW : send instruction 
    RW = 0; 
    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 
    RW = 0; 
    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); //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);
    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 
}

五、质量与可靠性

5.1 测试项目

Test Item Content of Test Test Condition Note
High Temperature storage Endurance test applying the high storage temperature for a long time. +80⁰C , 96hrs 2
Low Temperature storage Endurance test applying the low storage temperature for a long time. - 30⁰C , 96hrs 1,2
High Temperature Operation Endurance test applying the electric stress (voltage & current) and the high thermal stress for a long time. +70⁰C, 96hrs 2
Low Temperature Operation Endurance test applying the electric stress (voltage & current) and the low thermal stress for a long time. - 20⁰C , 96hrs 1,2
High Temperature / Humidity Operation Endurance test applying the electric stress (voltage & current) and the high thermal with high humidity stress for a long time. +40⁰C , 90% RH , 96hrs 1,2
Thermal Shock resistance Endurance test applying the electric stress (voltage & current) during a cycle of low and high thermal stress. 0⁰C,30min -> 25⁰C,5min -> 50⁰C,30min = 1 cycle 10 cycles
Vibration test Endurance test applying vibration to simulate transportation and use. 10 - 55Hz , 15mm amplitude. 60 sec in each of 3 directions X,Y,Z For 15 minutes 3
Static electricity test Endurance test applying electric static discharge. VS = 800V, RS = 1.5kΩ, CS = 100pF One time

5.2 注意事项

  • 注意在测试过程中,部分测试(如高低温存储和操作)需要在特定条件下进行,如无冷凝现象,测试后需在25⁰C,0%RH环境下存储4小时等。
  • 振动测试是针对产品本身,而非在容器内进行。

六、总结

NHD - 0216HZ - FSW - FBW - 33V3CH液晶显示模块具有良好的显示性能、宽温度范围和可靠性,适用于多种电子设备。在设计过程中,我们需要根据其电气特性、引脚定义进行硬件电路设计,同时依据指令集和初始化程序进行软件编程。大家在实际应用中,是否遇到过类似模块的兼容性问题呢?又有哪些解决经验可以分享呢?欢迎在评论区交流。

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

全部0条评论

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

×
20
完善资料,
赚取积分