一、简介
LCD12864和LCD1602想必是两种我们最为熟悉的显示模块了, 1602是字符型的屏幕, 而12864则是点阵屏。 所谓的点阵屏, 就是由128列和64行像素点组成的屏幕, 和我们平时用的显示器不同, 这些像素点只有两种状态: 亮和灭。通过控制像素的亮灭, 就可以组成我们想要现实的图像。相对而言, 12864更为强大, 我们甚至可以在上面显示自定义的图案。
这是我的一块LCD12864👇
二、引脚定义
编号 | 丝印/符号 | 引脚说明 |
---|---|---|
1 | GND | 电源地 |
2 | VCC | 电源正极,供电电压为3.0v-5.5v |
3 | V0 | LCD驱动电压输入, 悬空 |
4 | RS(CS) | 并行:数据/命令选择 串行:片选信号 |
5 | R/W(SID) | 并行:读/写选择 串行:数据口 |
6 | E(CLK) | 并行:使能信号 串行:时钟信号 |
7 | DB0 | 数据 |
8 | DB1 | 数据 |
9 | DB2 | 数据 |
10 | DB3 | 数据 |
11 | DB4 | 数据 |
12 | DB5 | 数据 |
13 | DB6 | 数据 |
14 | DB7 | 数据 |
15 | PSB | 并/串选择, 高电平并行, 低电平串行 |
16 | NC | 悬空 |
17 | RST | 复位, 低电平有效 |
18 | VOUT | 倍压输出脚, VCC=3.3v时有效, 可以悬空 |
19 | BLA | 背光电源正极 |
20 | BLK | 背光电源负极 |
三、应用电路, 主控为arduino UNO
需要注意V0引脚, 在驱动1602显示器的过程中, V0我直接接地没有任何问题, 但是在驱动12864过程中, 接地却会导致无画面显示, 所以此处我直接悬空, 实测可用。各位朋友可以作为参考。
四、驱动代码
#include <U8g2lib.h> //这个库需要自己安装
U8G2_ST7920_128X64_F_SW_SPI u8g2(U8G2_R0, /*clock*/4, /*data*/3, /*cs*/2 , /*reset*/5);//创建显示器实例
void setup() {
u8g2.begin(); //显示器初始化
}
void loop(void) {
u8g2.firstPage(); //此为显示循环, 更加详细的内容可以参照下面给出的链接
do {
u8g2.setFont(u8g2_font_ncenB14_tr); //设置字体
u8g2.drawStr(0,20,"MadonG"); //在指定位置显示字符 MadonG
} while ( u8g2.nextPage() );
delay(1000);
}
需要注意的是, 如果你的显示器的驱动芯片不是ST7920, 那么你需要更改数据结构定义部分, 详细请点击👉 支持的驱动芯片列表
如果你想构造更加复杂的图像, 更多u8g2库的相关操作请点击👉深入学习Arduino u8g2 OLED库,一篇就够
如果还不会在ArduinoIDE中安装库文件, 点击👉Arduino IDE如何安装库文件
五、效果展示
![我的显示器](https://i-blog.csdnimg.cn/blog_migrate/ca06e79edfb7c2f6fdb91a83aaa2f608.png)
如果帮助到了你顺手点个赞吧!😀