本文发布于 911 天前。
引脚
编号 | 符号 | 引脚说明 |
---|---|---|
1 | VSS | 电源接地 |
2 | VDD | 电源,5V/3.5V |
3 | V0/VL | 调对比度,PIN3-可变电阻-接地 |
4 | RS | 数据/命令选择 |
5 | RW | 读写选择 |
6 | E | 使能信号 |
7 | D0 | Data I/O |
8 | D1 | Data I/O |
9 | D2 | Data I/O |
10 | D3 | Data I/O |
11 | D4 | Data I/O |
12 | D5 | Data I/O |
13 | D6 | Data I/O |
14 | D7 | Data I/O |
15 | A(BLA) | 背光正 |
16 | K(BLK) | 背光负(接地) |
基本操作
操作 | 输入 | 输出 |
---|---|---|
读状态 | RS=L, R/W=H, E=H | D0~D7=状态字 |
写指令 | RS=L, R/W=L, D0~D7=指令, E=高脉冲 | 无 |
读数据 | RS=H, R/W=H, E=H | D0~D7=数据 |
写数据 | RS=H, R/W=L, D0~D7=数据, E=高脉冲 | 无 |
接线方式
LCD1602与单片机连接的线路共有11条,其中有8条数据线,3条控制线。如果把它们都连接上,将占用较多的单片机的接口。
8位接法
代码
代码中定义的方式为:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2);
接法
接口 | 连接位置 | 接口 | 连接位置 |
---|---|---|---|
VSS | GND | VDD | 5V |
V0 | 可变电阻 | RS | 12 |
RW | 11 | E | 10 |
D0 | 9 | D1 | 8 |
D2 | 7 | D3 | 6 |
D4 | 5 | D5 | 4 |
D6 | 3 | D7 | 2 |
A | 5V | K | GND |
4位接法
为了省端口,更喜欢这种接法。
代码
代码中定义的方式为:
#include <LiquidCrystal.h>
LiquidCrystal lcd(10, 9, 8, 7, 6, 5);
接法
接口 | 连接位置 | 接口 | 连接位置 |
---|---|---|---|
VSS | GND | VDD | 5V |
V0 | 可变电阻 | RS | 10 |
RW | GND | E | 9 |
D0 | 空 | D1 | 空 |
D2 | 空 | D3 | 空 |
D4 | 8 | D5 | 7 |
D6 | 6 | D7 | 5 |
A | 5V | K | GND |
显示片假名
文档
代码
char oyasumi[] = {0xFF, 0xB5, 0xD4, 0xBD, 0xD0, 0x20, 0xBE, 0xB6, 0xB2, 0xFF};
lcd.print(oyasumi);
即显示为◼オヤスミ セカイ◼
完整代码
#include <LiquidCrystal.h>
#include <dht11.h>
#include <string.h>
#define DHT11PIN 4
dht11 DHT11;
LiquidCrystal lcd(10, 9, 8, 7, 6, 5);
// LCD: rs=10,rw=GND,e=9,D4-D7=8,7,6,5
// おやすみ せかい
char oyasumi[] = {0xFF, 0xB5, 0xD4, 0xBD, 0xD0, 0x20, 0xBE, 0xB6, 0xB2, 0xFF};
void setup()
{
lcd.begin(16, 2);
lcd.print(oyasumi);
lcd.setCursor(0, 1);
lcd.print("Time:");
}
void loop()
{
lcd.setCursor(5, 1);
lcd.print(millis() / 1000);
}