电子说
在电子设计领域,液晶显示模块是人机交互不可或缺的重要组件。今天,我们要深入探讨Newhaven Display International推出的NHD - 0420DZ - FL - GBW字符液晶显示模块,详细解析它的特性、电气参数、指令系统等内容,希望能为各位工程师的设计工作提供有价值的参考。
NHD - 0420DZ - FL - GBW是一款具有4行20列字符显示能力的液晶显示模块。它内置了ST7066U控制器,采用 +5.0V电源供电,遵循1/16 duty、1/5 bias驱动方式,并且符合RoHS标准,环保性能出色。其型号中的各个部分都代表着特定的含义:
| 该模块共有16个引脚,具体分配如下: | 引脚编号 | 符号 |
|---|---|---|
| 1 | VSS | |
| 2 | VDD | |
| 3 | V0 | |
| 4 | RS | |
| 5 | R/W | |
| 6 | E | |
| 7 | DB0 | |
| 8 | DB1 | |
| 9 | DB2 | |
| 10 | DB3 | |
| 11 | DB4 | |
| 12 | DB5 | |
| 13 | DB6 | |
| 14 | DB7 | |
| 15 | A | |
| 16 | K |
| 项目 | 符号 | 条件 | 最小值 | 典型值 | 最大值 | 单位 |
|---|---|---|---|---|---|---|
| 工作温度范围 | TOP | 绝对最大 | -20 | - | +70 | ⁰C |
| 存储温度范围 | TST | 绝对最大 | -30 | - | +80 | ⁰C |
| 电源电压 | VDD | - | 4.5 | 5.0 | 5.5 | V |
| 电源电流 | IDD | VDD = 5.0V | 1.0 | 2.0 | 3.0 | mA |
| LCD对比度电源 | VDD - V0 | TOP = 25°C | 4.3 | 4.5 | 4.7 | V |
| 高电平输入 | VIH | - | 0.7 * VDD | - | VDD | V |
| 低电平输入 | VIL | - | VSS | - | 0.6 | V |
| 高电平输出 | VOH | - | 3.9 | - | VDD | V |
| 低电平输出 | VOL | - | VSS | - | 0.2 * VDD | V |
| 背光电源电压 | VLED | - | 4.5 | 5.0 | 5.5 | V |
| 背光电源电流 | ILED | VLED = 5.0V | 130 | 150 | 170 | mA |
从这些电气特性参数中,我们可以了解到该模块的工作环境要求以及电源的使用范围,在实际设计中要确保这些参数在合理区间内,以保证模块的正常工作。大家在设计电源电路时,有没有考虑过如何更精准地满足这些参数要求呢?
| 项目 | 符号 | 条件 | 最小值 | 典型值 | 最大值 | 单位 | ||
|---|---|---|---|---|---|---|---|---|
| 最佳视角 | 顶部 | ϕY + | CR ≥ 2 | - | 40 | - | ° | |
| 底部 | ϕY - | - | 60 | - | ° | |||
| 左侧 | θX - | - | 60 | - | ° | |||
| 右侧 | θX + | - | 60 | - | ° | |||
| 对比度 | CR | - | 2 | 5 | - | - | ||
| 响应时间 | 上升 | TR | TOP = 25 ℃ | - | 150 | 250 | ms | |
| 下降 | TF | - | 200 | 300 | ms |
这些光学特性决定了模块的显示效果,例如最佳视角可以帮助我们确定模块在设备中的安装位置,以获得最佳的视觉体验。那么在实际应用中,我们如何根据这些特性来优化产品的显示效果呢?
该模块内置了ST7066U控制器,相关规格说明书可从http://www.newhavendisplay.com/app_notes/ST7066U.pdf 下载。
| 模块提供了丰富的指令集,用于实现各种显示控制功能,例如清屏、光标移动、显示开关等。以下是部分常用指令: | 指令 | 指令代码(RS、R/W、DB7 - DB0) | 描述 | 270 KHZ执行时间(fosc = ) |
|---|---|---|---|---|
| 清屏 | 0 0 0 0 0 0 0 0 0 1 | 向DDRAM写入 “20H”并将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 |
工程师们在使用这些指令时,要注意指令的执行时间和参数设置,以实现准确的控制。那么,在实际项目中,你有没有遇到过因指令执行不当而导致显示异常的情况呢?
模块在读写数据时,有严格的时序要求。
| 参数 | 描述 | 引脚 | 最小值 | 单位 | ||
|---|---|---|---|---|---|---|
| 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 |
| 参数 | 描述 | 引脚 | 最小值 | 单位 | ||
|---|---|---|---|---|---|---|
| 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 |
在设计与模块通信的电路时,一定要严格按照这些时序要求来编写程序,否则可能会出现数据传输错误的问题。你在处理时序问题上有没有什么独特的技巧呢?
模块提供了8位和4位两种初始化方式。
/**********************************************************/
void command(char i) {
P1 = i; //put data on output Port
D_I = 0; //D/I = LOW : send instruction
E = 1;
Delay(1);
RW = 0; //R/W = LOW:Write
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);
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); //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(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
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); //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(0x0F); //Display ON; Blinking cursor
command(0x06); //Entry Mode set
}
工程师们可以根据实际需求选择合适的初始化方式,并且在使用这些初始化程序时,要根据自己的硬件电路进行适当调整。在实际项目中,你会优先选择哪种初始化方式呢?
模块经过了多项质量测试,包括高温存储、低温存储、高温运行、低温运行、高温高湿运行、热冲击抵抗、振动测试和静电测试等。每种测试都有特定的条件和要求,以确保模块在各种环境下都能稳定工作。例如高温存储测试要求在 +80⁰C下持续48小时,低温存储测试要求在 -30⁰C下持续48小时。
使用该液晶显示模块时,需要注意一些事项,具体内容可参考www.newhavendisplay.com/specs/precautions.pdf 。同时,保修信息可查看http://www.newhavendisplay.com/index.php?main_page=terms 。
总之,NHD - 0420DZ - FL - GBW字符液晶显示模块具有丰富的功能和良好的性能,但在设计和使用过程中,我们要仔细了解其各项参数和特性,严格按照要求进行操作,才能充分发挥其优势。希望本文能对大家在使用该模块进行设计时有所帮助,你在使用类似液晶显示模块时还有哪些疑问或者经验呢?欢迎在评论区分享。
全部0条评论
快来发表一下你的评论吧 !