OLED原理,时序和操作

来源:互联网 发布:tensorflow不好用 编辑:程序博客网 时间:2024/05/21 21:47

一,OLED简介

OLED,即有机发光二极管,采用非常薄的有机材料图层和玻璃基板制成
当有电流通过时,有机材料会发光,OLED屏幕可视角度大,节省电能

优点:分辨率高,自发光,不需背光源,对比度高,厚度薄,视角广,反应速度快,温度范围广,制造及制程简单

缺点:价格贵,尺寸难以大型化(价钱随尺寸几何倍数增长)

用途:可穿戴智能设备显示,MP3显示灯

oled应用

OLED分为两部分:原理,时序和操作 + OLED显示实验


二,ALINETEK 0.96寸OLED模块参数

OLED模块

1)双色:1/4黄色 + 3/4蓝色2)尺寸:0.96存.模块尺寸:27mm*26mm3)分辨率:128*644)支持接口方式4种(通信方式)    1:6800,8080并行接口    2:4线串行SPI    3:2线IIC5)模块工作电压3.3V

三,OLED模块原理图

OLED模块原理图

如图:     BS1和BS2与OLED的连接方式     BS1与BS2各有上中下三个引脚,LP与GND相连,HP与VCC相连     OLED的13-25引脚为外接引脚,对应开发板的排针组P1     OLED其他引脚暂不介绍,如图连接处理即可

四.OLED工作模式选择

OLED工作模式选择

通过模块BS1/BS2设置OLED工作模式,关系如下:

BS1/BS2设置OLED工作模式

由OLED模块图片背部焊点可以看到,默认TP引脚与VCC焊接
即BS1=1,BS2=1,为8080并口通信方式


五,8080并口读写时序

并口写时序:

并口写时序

因为要写数据,由WR控制,所以RD设置为高电平DC: 1,写数据 0 写命令CS:要操作OLED前,先进行片选,拉低CS引脚,操作完成后拉高WR:写数据,在WR的上升沿,使数据写入到SSD1306控制器内

并口读时序:

并口读时序

因为要读数据,由RD控制,所以WR设置为高电平DC: 1,读数据 0 读命令CS:要操作OLED前,先进行片选,拉低CS引脚,操作完成后拉高RD:读数据,在RD的上升沿,使数据锁存到数据线D[7:0]上

总结:

无论读操作还是写操作:     DC=1 数据操作 , DC=0 命令操作     操作OLED前拉低片选CS引脚     都是在上升沿进行数据采集写操作:     WR的上升沿,数据/命令写入SSD1306读操作:     RD的上升沿,数据/命令锁存到数据线D[7:0]

六,OLED模块显存

SSD1306显存为128*64bit大小, SSD1306将全部显存分为8页,每页128字节

SSD1306分页

OLED相当于64行128列点阵,每个像素点,0点亮,1熄灭
OLED将纵向64行分为8页,每页8行


七,程序实现

采用每次全量更新的策略
基于OLED128*64bit的分布,程序内部建立一个缓存数组128*8字节
每次修改时,先修改缓存对应的值,修改完成后,一次性写入OLED的GRAM刷新显示


八,SSD1306命令

SSD1306命令

0:OLED设置对比度     发送两个字节     第一个字节为命令-0x81     第二个字节为设置对比度值,值越大屏幕越亮(0X00-0XFF)1:关闭/开启OLED显示     发送一个命令字节,高七位固定,最低位X0=0关闭显示,X0=1开启显示     0xAE:关闭显示     0xAF:开启显示2:关闭/开启电荷泵     发送两个字节     第一个字节为命令-0x8D     第二个字节为设置电荷泵开关          位0,1,4,5,6固定,位6位7随意,位2控制电荷泵开关          A2=0关闭电荷泵          A2=1开启电荷泵     注意:在模块初始化时,必须开启,否则看不到屏幕显示3:0xB0-0xB7 设置页地址     发送一个字节,高5位固定     位0-位2 , X[2:0]共3位, 值范围0-7对应页0-7地址(共8页)4:0x00-0x0F设置列地址起始低四位     高四位固定     低四位设置列地址起始低四位5:0x10-0x1F设置列地址起始高四位     高四位固定     低四位设置列地址起始高四位

九,OLED初始化过程

1,SSD1306复位 - 硬复位RST(RES)引脚2,驱动IC初始化-代码由OLED供应商提供3,开启显示-设置显示命令4,清0显示-点阵全灭复位显示5,开始显示-将要显示的内容写入GRAM
0 0