有2种方式与OLED模块相连接,一种是8080的并口方式,另一种是4线SPI方式。
ALIENTEK OLED 模块的 8080 接口方式需要如下一些信号线:
CS: OLED 片选信号。
WR:向 OLED 写入数据。
RD:从 OLED 读取数据。
D[7: 0]: 8 位双向数据线。
RST(RES):硬复位 OLED。
DC:命令/数据标志(0,读写命令; 1,读写数据)。
CS: OLED 片选信号。
RST(RES):硬复位 OLED。
DC:命令/数据标志(0,读写命令; 1,读写数据)。
SCLK:串行时钟线。在 4 线串行模式下, D0 信号线作为串行时钟线 SCLK。
SDIN:串行数据线。在 4 线串行模式下, D1 信号线作为串行数据线 SDIN。
模块的 D2 需要悬空,其他引脚可以接到 GND。在 4 线串行模式下,
只能往模块写数据而不能读数据。
如何设置OLED的开关和位置等
第一个命令为 0X81,用于设置对比度的,这个命令包含了两个字节,第一个 0X81 为命令,
随后发送的一个字节为要设置的对比度的值。这个值设置得越大屏幕就越亮。
第二个命令为 0XAE/0XAF。 0XAE 为关闭显示命令; 0XAF 为开启显示命令。
第三个命令为 0X8D,该指令也包含 2 个字节,第一个为命令字,第二个为设置值,第二
个字节的 BIT2 表示电荷泵的开关状态,该位为 1,则开启电荷泵,为 0 则关闭。在模块初始化
的时候,这个必须要开启,否则是看不到屏幕显示的。
第四个命令为 0XB0~B7,该命令用于设置页地址,其低三位的值对应着 GRAM 的页地址。
第五个指令为 0X00~0X0F,该指令用于设置显示时的起始列地址低四位。
第六个指令为 0X10~0X1F,该指令用于设置显示时的起始列地址高四位。
在OLED中写入数据
OLED_GRAM[128][8]中的 128 代表列数(x 坐标),而 8 代表的是页, 每页又包含 8 行,
总共 64 行(y 坐标)。从高到低对应行数从小到大。比如,我们要在 x=100, y=29 这个点写入
1,则可以用这个句子实现:
OLED_GRAM[100][4]|=1<<2;
一个通用的在点(x, y)置 1 表达式为:
OLED_GRAM[x][7-y/8]|=1<<(7-y%8);
其中 x 的范围为: 0~127; y 的范围为: 0~63。