电子说
在电子设备中,液晶显示模块是人机交互的重要组件。今天我们来详细了解Newhaven Display推出的字符液晶显示模块NHD,该模块具备诸多实用特性,适用于多种应用场景。
NHD字符液晶显示模块为2行8字符显示,内置ST7066U控制器,采用+5.0V电源供电,具备1/16 duty、1/5 bias的特性,并且符合RoHS标准。
| 机械绘图给出了模块的尺寸和引脚分配信息。尺寸标注以毫米为单位,采用第三角投影法。标准公差线性为±0.3mm ,驱动为1/16 Duty、1/5 Bias,电压方面VDD为5.0V,VLCD为4.5V,显示模式为STN Positive / Gray / Transflective 6:00,背光采用黄 - 绿LED,驱动IC为ST7066U 8/4 - Bit MPU接口。 引脚分配如下: | 引脚编号 | 符号 | 外部连接 | 功能描述 |
|---|---|---|---|---|
| 1 | VSS | 电源 | 接地 | |
| 2 | VDD | 电源 | 逻辑供电电压(+5.0V) | |
| 3 | V0 | 调节电源 | 对比度供电电压(约+0.6V) | |
| 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- | 电源 | 背光阴极(接地) |
推荐的LCD连接器为2x8 2.54mm间距连接器。
| 项目 | 符号 | 条件 | 最小值 | 典型值 | 最大值 | 单位 |
|---|---|---|---|---|---|---|
| 工作温度范围 | TOP | 绝对最大 | -20 | - | +70 | ºC |
| 存储温度范围 | TST | 绝对最大 | -30 | - | +80 | ºC |
| 电源电压 | VDD | - | 4.8 | 5.0 | 5.2 | V |
| 电源电流 | IDD | VDD = 5.0V | 1.0 | 1.5 | 2.5 | mA |
| LCD对比度供电 | VDD - V0 | TOP = 25°C | 4.3 | 4.4 | 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 | 50 | 80 | 100 | 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 |
| 模块提供了一系列指令,用于控制显示和操作,如清屏、返回主页、设置显示模式等。以下是部分指令示例: | 指令 | 指令代码(RS、R/W、DB7 - DB0) | 描述 | 270 KHZ执行时间(fosc = ) |
|---|---|---|---|---|
| 清屏 | 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 |
| 参数 | 描述 | 引脚 | 时间 | 单位 | |
|---|---|---|---|---|---|
| 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 |
| TDSW | 数据建立时间 | 引脚DB0 - DB7 | 40 | - | ns |
| TH | 数据保持时间 | 引脚DB0 - DB7 | 10 | - | ns |
| 参数 | 描述 | 引脚 | 时间 | 单位 | ||
|---|---|---|---|---|---|---|
| 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 | 0 | ns |
内置字体表提供了字符对应的编码信息,方便开发者进行字符显示的编程。
void command(char i)
{
P1 = i; D1 = 0; R_W = 0; E = 1; //put data on output Port //D/I=LOW: send instruction //R/W=LOW: Write
Delay(1); //enable pulse width >= 300ns
E = 0; //Clock enable: falling edge
}
void write(char i)
{
P1 = i; DI = 1; //put data on output Port //D/=HIGH: send data
R_W = 0; E = 1; //R/W=LOW: Write
Delay(1); E = 0; //enable pulse width >= 300ns //Clock enable: falling edge
}
void init()
{
E = 0;
Delay(10); command(0x30); Delay(10); command(0x30); command(0x10); Delay(30); command(0x30); command(0x38); Delay(100); //Set cursor //command 0x30 = Wake up //command 0x30 = Wake up #3 //Nait >40 msec after power is applied //must wait 160us, busy flag not available //command 0x30 = Wake up #2 //Function set: 8-bit/2-line //must wait 5ms, busy flag not available //must wait 160us, busy flag not available
command(0x0c); command(0x06); //Display ON; Cursor ON //Entry mode set
}
void command(char i)
{
P1 = i; D1 = 0; //put data on output Port /D/=LOW: send instruction
R_W = 0; Nybble(); //Send lower 4 bits //R/W=LOW: Write
i = i < < 4; P1 = i; Nybble(); //Shift over by 4 bits //put data on output Port //Send upper 4 bits
}
void write(char i)
{
P1 = i; DI = 1; R_W = 0; Nybble(); i = i < < 4; P1 = i; //put data on output Port //D/l=HIGH: send data //R/W=LOW: Write //Clock lower 4 bits //Shift over by 4 bits //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); P1 = 0x30; //Wait >40 msec after power is applied //put 0x30 on the output port
Delay(30); Nybble(); //must wait 5ms, busy flag not available //command 0x30 = Wake up
Nybble(); P1 = 0x20; command(0x06); command(0x0F); Delay(10); command(0x10); Nybble(); command(0x28); Delay(10); Nybble(); Delay(10); //put 0x20 on the output port //can check busy flag now instead of delay //Function set: 4-bit interface //command 0x30 = Wake up #3 //Function set: 4-bit/2-line //Set cursor //must wait 160us, busy flag not available //Display ON; Blinking cursor //command 0x30 = Wake up #2 //must wait 160us, busy flag not available //Entry Mode set
}
产品经过多项质量测试,包括高温存储、低温存储、高温运行、低温运行、高温高湿运行、热冲击抗性、振动测试和静电测试等,确保产品在不同环境下的可靠性。例如,高温存储测试在+80ºC下进行48小时,低温存储测试在 - 30ºC下进行48小时。
在实际应用中,电子工程师需要根据具体需求选择合适的初始化方式和指令,同时要注意产品的电气和光学特性,以确保显示效果和稳定性。大家在使用这款模块时,有没有遇到过什么特别的问题呢?欢迎在评论区分享交流。
全部0条评论
快来发表一下你的评论吧 !