OLED原理、时序和操作+自己源码程序

转载博客:http://blog.csdn.net/abap_brave/article/details/53022540

一,OLED简介

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

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

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

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

oled应用

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


二,ALINETEK 0.96寸OLED模块参数

OLED模块

1)双色:1/4黄色 + 3/4蓝色
2)尺寸:0.96存.模块尺寸:27mm*26mm
3)分辨率:128*64
4)支持接口方式4种(通信方式)
    1:6800,8080并行接口
    2:4线串行SPI
    3:2线IIC
5)模块工作电压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

实例驱动代码讲解:--参考原子程序

1)代码初始化:--一般芯片参考手册有

OLED原理、时序和操作+自己源码程序_第1张图片

OLED原理、时序和操作+自己源码程序_第2张图片

OLED原理、时序和操作+自己源码程序_第3张图片

OLED原理、时序和操作+自己源码程序_第4张图片

注意:

OLED原理、时序和操作+自己源码程序_第5张图片

竖向显示取模方式:

OLED原理、时序和操作+自己源码程序_第6张图片

显示字符串水平显示:

OLED原理、时序和操作+自己源码程序_第7张图片

OLED原理、时序和操作+自己源码程序_第8张图片

你可能感兴趣的:(STM32)