显示屏分类:LCD显示屏、点阵显示屏、OLED显示屏。
OLED介绍:OLED叫有机发光二极管,又称为有机激光显示,OLED显示屏就是利用有机发光二极管制成的显示屏,只要在正负极加上正确的电压就会发光(为什么需要驱动IC芯片:有机发光二极管需要电压较高,所以需要驱动IC芯片去升压,MCU只需要控制驱动芯片就可以,常用SSD1306驱动芯片型号)。优点:自发光、不需要背光,功耗更加低,节能、对比度高,色彩艳丽。缺点:烧屏、价格昂贵、低频频闪。
OLED常用通信接口:6800并口、8080并口、SPI、IIC。
OLED常用引脚说明(8个数据引脚,5个控制引脚):
1.CS:OLED片选信号(一般低电平有效)
2.WR:向OLED写入数据
3.RD:向OLED读取数据
4.D[7:0]:8位双向数据线
5.RST(RES):硬复位OLED(一般低电平有效)
6.DC(RS):命令/数据标志(0:命令,1:数据)
很多实物OLED小屏幕只有部分上面引脚:如只有GND VCC SCL SDA RES DC,比如江协的只有GND VDD SCK SDA,都没有WR和RD,以及D[7:0](可能是采用I2C通信,就不需要引出8个IO口,直接IIC通信,一次性写入一个字节)
显示屏控制逻辑:MCU控制驱动IC芯片,由驱动IC芯片去控制显示屏,所以MCU这边写的所有代码实际都是去控制驱动IC芯片,如SSD1306。
如何驱动OLED原理:
比如下图要让方格中的2个蓝色位置点亮,只需要发送想点亮位置的行地址和列地址为1,就可以点亮。
8080时序介绍:并口总线时序,常用于屏幕驱动IC的访问,由intel提出,也叫英特尔总线。
8080并口读/写的过程
1.设置DC为高(数据)/低(命令):根据写入/读取的数据类型
2.拉低片选:选中SSD1306
3.设置RD/WR为低:根据是读数据还是写数据
4.拉高RD/WR,出现上升沿:在RD上升沿,使数据所存到数据线D[7:0]上,在WR的上升沿,使数据写入到SSD1306里
以8080时序来驱动1306方法:
步骤:1.先选择DC是命令还是数据,2.拉低CS片选信号,选中SSD1306,3.拉低WR,使能向OLED写入数据,4.D[7:0]准备数据,WR在低电平向高电平变化时读取D[7:0]数据,5.WR拉高,读取数据,数据被写入1306芯片中,6.初始化:释放片选CS,RD保持高电平(低是读取OLED数据,高就是失能)
结合上面的步骤,软件编写步骤就容易理解了,见下图:
OLED驱动芯片介绍:
上图设置页地址后,需要同步发送要设置的列地址L4和H4,这3个是一起的,L4是1字节的低4位,H4是1字节的高4位,设置列地址是分开的,按理来说只需要1个字节可设置完,但厂家是这样设计的。
SEG127:段127,就是127列,等同于COL127
屏幕像素是128*64,即128列,64行。这里页的概念解释:1个字节8位,64行对应8个字节,1个字节就是1页,见上图2右边花花绿绿的竖框就是一页,共8页。GRAM可以理解为屏幕共128*64=8192个像素点,每个像素点对应一个GRAM的空间,一 一对应,也可以理解为一个二极管对应一个存储空间,这个存储空间就是GRAM,
未完,后续补充