OLED学习笔记1

看了同学对OLED的讲解,感觉还是蛮有意思呢,在我自己进一步搞之前(往esp32和python转),先对同学所讲知识作以汇总,一下内容大多取于同学的笔记,感谢详细讲解。

OLED的基础介绍

OLED的定义

OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。

OLED的优势

(1)OLED显示技术具有自发光的特性,采用非常薄的有机材料涂层和玻璃基板,当有电流通过时,这些有机材料就会发光,而且OLED显示屏幕可视角度大,并且能够节省电能,从2003年开始这种显示设备在MP3播放器上得到了应用。

LCD都需要背光,而OLED不需要因为它是自发光的。这样同样的显示,OLED效果要来得好一些。以目前的技术,OLED的尺寸还难以大型化,但是分辨率确可以做到很高。

OLED 采用的二极管会自行发光,因此不需要背面光源,发光转化效率高,能耗比液晶低,OLED 能够在不同材质的基板上制造,厂家甚至可以将电路印刷在弹性材料上——做成能弯曲的柔软显示器。

主动发光的特性使 OLED 几乎没有视角限制,视角一般可达到 170 度,具有较宽的视角,从侧面也不会失真。

OLED 采用有机发光原理,所需材料很少,制作上比采用液体发光的液晶工序少,液晶显示屏少 3 道工序,成本大幅降低。

(2)OLED 器件为全固态机构,无真空,液体物质,抗震性好,可以适应巨大的加速度,振动等恶劣环境。

(3)OLED 显示屏的响应时间超过 TFT—LCD 液晶屏。TFT—LCD 的响应时间大约使几十毫秒,现在做得最好的 TFT—LCD 响应时间也只有 12 毫秒。而 OLED 显示屏的响应时间大约是几微秒到几十微秒。

(4)OLED 低温特性好,在零下 40 摄氏度都能正常显示,目前航天服上也使用OLED 作为显示屏。而 TFT—LCD 的响应速度随温度发生变化,低温下,其响应速度变慢,因此,液晶在低温下显示效果不好。

(5)OLED 器件的核心层厚度很薄,厚度可以小于 1mm,为液晶的 1/3。

ALINETEK的0.96寸OLED模块

(1)模块有单色和双色两种可选,单色为纯蓝色,而双色则为黄蓝双色。单色模块每个像素点只有亮与不亮两种情况,没有颜色区分;

(2)尺寸小,显示尺寸为0.96寸,而模块的尺寸仅为27mm乘26mm大小;
高分辨率,该模块的分辨率为128*64,即OLED显示是128行64列;

(3)多种接口方式,该模块提供了总共4种接口包括:6800、8080两种并行接口方式、 4线的穿行SPI接口方式、IIC接口方式;

(4)不需要高压,直接接3.3V就可以工作了。

I2C

I2C通信

它是由数据线 SDA 和时钟 SCL 构成的串行总线, 可发送和接收数据。在 CPU 与被控 I2C 之间、I2C 与 I2C 之间进行双向传送。
IIC总线进行数据传送时,时钟信号为高电平期间,数据线的数据必须保持稳定,只有在时钟信号为低电平期间,数据线上的高电平或低电平状态才允许变化。

开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。

结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。

应答信号: 接收数据的I2C 在接收到 8bit 数据后, 向发送数据的 I2C 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。

I2C接口:

GND: 电源地
VCC: 2.2V~5.5V
D/C:数据/命令,在 IIC 通信中 DC的高低电平是用来选择IIC通信地址的(0,读写命令;1,读写数据)
RES(RST):复位(高电平 2.2V~5.5V)
SCL: CLK 时钟 (高电平 2.2V~5.5V)
SDA: MOSI 数据 (高电平 2.2V~5.5V)
CS:OLED片选信号
WR:向OLED写入数据
RD:从OLED读取数据
D[7:0]:8位双向数据线

OLED模块显存

OLED本身是没有显存的,它的显存是依赖于SSD1306提供的(有一个TFTLCD是本身自带显存,利用FSMC来进行控制)。而SSD1306提供一块显存,芯片具体的讲解见下文。

SSD1306的显存总共为12864bit大小,SSD1306将这些显存分为了8页。每页包含了128个字节,总共8页,这样刚好是12864的点阵大小。
在这里插入图片描述
水平方向分布了128个像素点,垂直方向分布了64个像素点,而驱动芯片在点亮像素点的时候,是以8个像素点为单位的。推荐的是垂直扫描的方式,也就是先画垂直方向的8个像素点,所以我们在画点的时候Y的取值为0-7,X的取值为0-127。所以在设置取模方式是选择列行式,垂直扫描,页设置为0-7。

OLED的显存存放格式如下.

   Y
 X  [0]0 1 2 3 ... 127 
    [1]0 1 2 3 ... 127 
    [2]0 1 2 3 ... 127 
    [3]0 1 2 3 ... 127 
    [4]0 1 2 3 ... 127 
    [5]0 1 2 3 ... 127 
    [6]0 1 2 3 ... 127 
    [7]0 1 2 3 ... 127 

OLED点阵与常规的LCD点阵的显示方式相同(列行式,先列后行),从第一列开始向下取8个点作为一个字节,然后从第二列开始向下取,8个点作为第二个字节…依此类推。取模顺序是从低高,即第一个点作为最低位。如图显示一行数据的图解。
在这里插入图片描述

程序显示原理

在单片机的内部建立一个缓存(共128*8个字节),在每次修改的时候,只是修改单片机上的缓存(实际上就是SRAM),在修改完了之后,一次性把单片机上的缓存数据写入到OLED的GRAM。当然这个方法也有坏处,就是对于那些SRAM很小的单片机(比如51系列)就比较麻烦了。

SSD1306芯片

SSD1306芯片简介

SSD1306是一个单片CMOS、OLED/PLED驱动芯片可以驱动有机/聚合发光二极管点阵图形显示系统。由128 segments 和64 Commons组成。该芯片专为共阴极OLED面板设计。

SSD1306中嵌入了对比度控制器、显示RAM和晶振,并因此减少了外部器件和功耗。有256级亮度控制。数据/命令的发送有三种接口可选择:6800/8000串口,I2C接口或SPI接口。适用于多数简介的应用,注入移动电话的屏显,MP3播放器和计算器等。

SSD1306芯片特性

(1)分辨率:128 * 64 点阵面板

(2)电源
VDD = 1.65V to 3.3V,用于I2C逻辑;
VCC = 7V to 15V,用于面板驱动;

(3)点阵显示

OLED驱动输出电压,最大15V;
Segment最大电流:100uA;
常见最大反向电流:15mA;
256级对比亮度电流控制;

(4)嵌入式128 * 64位SRAM显示缓存

(5)引脚选择MCU接口

8位6800/8000串口;
3/4线SPI接口;
I2C接口。

SSD1306芯片命令

在这里插入图片描述

命令0X81:设置对比度。包含两个字节,第一个0X81为命令,随后发送的一个字节为要设置的对比度的值。这个值设置得越大屏幕就越亮。

命令0XAE/0XAF:0XAE为关闭显示命令;0XAF为开启显示命令。

命令0X8D:包含2个字节,第一个为命令字,第二个为设置值,第二个字节的BIT2表示电荷泵的开关状态,该位为1,则开启电荷泵,为0则关闭。在模块初始化的时候,这个必须要开启,否则是看不到屏幕显示的。

命令0XB0~B7:用于设置页地址,其低三位的值对应着GRAM的页地址。

命令0X00~0X0F:用于设置显示时的起始列地址低四位。

命令0X10~0X1F:用于设置显示时的起始列地址高四位。

例程

显示0~9 ,A ~Z, a ~z
对于OLED 的显示用字模软件取值

#include<reg51.h>
#include<intrins.h>
sbit _CS=P3^4;
sbit RES=P3^3;
sbit DC=P3^2;
sbit SCL=P2^1;
sbit SDA=P2^0;
unsigned char code initial_tab[23]={
   
0xae,0x40,0x20,0x02,0x81,0xff,0xa1,0xa4,
0xA6,0xc8,0xa8,0x3F,0xd5,0x80,0xd3,
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值