0.96寸OLED的使用

文章目录

          • OLED的构造:
          • OLED的驱动芯片:
            • 页地址模式:
            • 水平地址模式:
            • 垂直地址模式:

本文参考和摘抄了部分文章,如下:

  1. 百度文库------0.96寸OLED点亮原理,通过对驱动芯片的设置,实现OLED的点亮,C语言例程,在OLED上显示汉字
  2. SSD1306(OLED驱动芯片)指令详解

写在前面,还是先讲一下OLED的点亮原理,当然是指映射的关系,而不是为什么会发光和和LCD有什么不一样的。


OLED的构造:

OLED由128*64个像素组成,64行和128列
0.96寸OLED的使用_第1张图片
以此为基础建立一个坐标系如下:
0.96寸OLED的使用_第2张图片


OLED的驱动芯片:

OLED的核心驱动芯片是SSD1306,单片机与SSD1306通信,SSD1306再驱动OLED点亮对应的OLED像素点。
SSD1306内部有一个GDDRAM数据内存,它有128*8字节,即128*64bit,每一个位对应一个像素点。
这些字节分别存储在Page0~Page7中,每一个也存储128*1个字节
0.96寸OLED的使用_第3张图片
COM和SEG的方向是可以软件设置的

  • 写入的数据是如何存储的?
    每一个bit存储在一个方格中,每一个方格代表着一个像素点,这样GDDRAM就和像素对应起来了
    0.96寸OLED的使用_第4张图片
  • SSD1306是如何寻址的?
    先设置内存的寻址模式,接着发送寻址模式

OLED_WCMD(0x20) // 设置内存寻址,模式
OLED_WCMD(0x02) // [1:0],00:垂直地址模式,01:水平地址模式,10:页地址模式

页地址模式:

0.96寸OLED的使用_第5张图片
通常在页地址模式下访问GDDRAM, 需要如下步骤来定义起始RAM访问指针指向:

通过命令(B0h-B7h)设置目标显示位置页起始地址
通过命令(00h-0Fh)设置列起始地址低位
通过命令(10h-1Fh)设置列起始地址高位

例如页地址是B2H,列地址的低地址是03H,列地址的高地址是10H,GDDRAM的访问指针如下:
0.96寸OLED的使用_第6张图片
给GDDRAM写数据的时候,其列地址会自动加1,列地址到SEG127之后会复位到SEG0,但是行地址不会自动增加,为了写下一页的数据,必须重新设置页地址列地址


水平地址模式:

水平地址模式下,GDDRAM访问,列地址自动加1,到达列地址终止地址时,复位到列地址起始地址,且页地址也自动加1
水平地址的访问图解如下,在页地址和列地址都达到终止地址的时候,都将复位到起始地址
0.96寸OLED的使用_第7张图片


垂直地址模式:

垂直地址模式下,GDDRAM访问,页地址自动加1,到达页地址终止地址时,复位到页地址起始地址,且列地址也自动加1
垂直地址的访问图解如下,在页地址和列地址都达到终止地址的时候,都将复位到起始地址
0.96寸OLED的使用_第8张图片
0.96寸OLED的使用_第9张图片
通常在(垂直/水平)地址模式下访问GDDRAM, 需要如下步骤来定义起始RAM访问指针指向:

通过命令(21h)设置目标显示位置列起始地址以及列终止地址
通过命令(22h)设置目标显示位置页起始地址以及页终止地址


SSD1306提供的通信方式是多种的,IIC,4线SPI,3线SPI(还有什么没有听过的6800并行,8080并行)
关于SSD1306的指令详解

你可能感兴趣的:(C语言,IC芯片,Keil)