电子说
在电子设备设计中,显示模块是人机交互的重要组成部分。今天我们来详细了解一下Newhaven Display公司的NHD - 0108FZ - FL - YBW - 3V - C1字符液晶显示模块,工程师们可以参考这些参数和特性,在设计中进行合理的应用。
文件下载:NHD-0108FZ-FL-YBW-3V-C1.pdf
| Pin No. | Symbol | External Connection | Function Description |
|---|---|---|---|
| 1 | VSS | Power Supply | 接地 |
| 2 | VDD | Power Supply | 逻辑电源电压( + 3.0V) |
| 3 | V0 | Adj Power Supply | 对比度电源(约0V) |
| 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+ | Power Supply | LED背光源电源( + 3.0V) |
| 16 | LED - | Power Supply | 背光源接地 |
| Item | Symbol | Condition | Min. | Typ. | Max. | Unit |
|---|---|---|---|---|---|---|
| 工作温度范围 | Top | 绝对最大 | - 20 | - | + 70 | ⁰C |
| 存储温度范围 | Tst | 绝对最大 | - 30 | - | + 80 | ⁰C |
| 电源电压 | VDD | - | 2.7 | 3.0 | 3.3 | V |
| 电源电流 | IDD | Ta = 25°C,VDD = 3.0V | - | 1.5 | 2.5 | mA |
| LCD电源(对比度) | VDD - V0 | Ta = 25°C | - | 3.0 | - | V |
| “H” 电平输入 | Vih | - | 2.2 | - | VDD | V |
| “L” 电平输入 | Vil | - | 0 | - | 0.6 | V |
| “H” 电平输出 | Voh | - | 2.4 | - | - | V |
| “L” 电平输出 | Vol | - | - | - | 0.4 | V |
| 背光源电源电压 | Vled | - | - | 3.0 | - | V |
| 背光源电源电流 | Iled | Vled = 3.0V | - | 120 | 140 | mA |
| Item | Symbol | Condition | Min. | Typ. | Max. | Unit |
|---|---|---|---|---|---|---|
| 垂直视角(顶部) | AV | Cr ≥ 2 | - | 35 | - | ⁰ |
| 垂直视角(底部) | AV | Cr ≥ 2 | - | 60 | - | ⁰ |
| 水平视角(左侧) | AH | Cr ≥ 2 | - | 40 | - | ⁰ |
| 水平视角(右侧) | AH | Cr ≥ 2 | - | 40 | - | ⁰ |
| 对比度 | Cr | - | - | 6 | - | - |
| 响应时间(上升) | Tr | - | - | 150 | 250 | ms |
| 响应时间(下降) | Tf | - | - | 150 | 250 | ms |
内置S6A0069控制器,可在http://www.newhavendisplay.com/app_notes/S6A0069.pdf下载其规格说明。
| 该模块提供了一系列指令,用于控制显示、光标等操作,不同指令有不同的执行时间。例如: | Instruction | Instruction Code | Description | Execution time (fosc = 270 kHz) |
|---|---|---|---|---|
| Clear Display | 0 0 0 0 0 0 0 0 1 | 向DDRAM写入 "20H" 并将DDRAM地址设置为 '00H" | 1.53 ms | |
| Return Home | 0 0 0 0 0 0 0 1 - | 将DDRAM地址设置为 "00H" 并将光标返回原始位置(若已移动),DDRAM内容不变 | 1.53 ms |
/**********************************************************/
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); //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
R_W = 0; //R/W=LOW: Write
E = 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
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
R_W = 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
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); //enable pulse width >= 300ns
E = 0; //Clock enable: falling edge
}
void init()
{
P1 = 0; P3 = 0;
Delay(100); //Wait >15 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(0x0F); //Display ON; Blinking cursor
command(0x06); //Entry Mode set
}
该模块经过了多种环境和应力测试,包括低温存储、高温存储、低温工作、高温高湿工作、热冲击、振动和静电放电测试等。
在使用LCDs/LCMs时,可参考www.newhavendisplay.com/specs/precautions.pdf中的注意事项。关于保修信息和条款条件,可访问http://www.newhavendisplay.com/index.php?main_page=terms 。
大家在实际设计中,是否遇到过与该模块类似的显示模块,它们之间有哪些不同呢?欢迎在评论区分享你的经验。
全部0条评论
快来发表一下你的评论吧 !