SSD1306命令
命令表单(D/C#=0, R/W#(WR#) = 0, E(RD#=1) 特殊状态除外)
- 基本命令
D/C | Hex | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | 命令 | 描述 |
0 | 81 A[7:0] | 1 A7 | 0 A6 | 0 A5 | 0 A4 | 0 A3 | 0 A2 | 0 A1 | 1 A0 | 设置对比度 | 双字节命令,1~256级对比度可选,对比度随值增加。 (复位值 = 0x7f) |
0 | A4/A5 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | X0 | 全部显示开 | A4h,X0 = 0 :恢复内存内容显示(默认),输出内存中的内容 A5h,X0 = 1 :开显示,输出无视内存的内容 |
0 | A6/A7 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | X0 | 设置正常/逆显示 | A6,X[0]= 0:正常显示(默认) RAM为0:显示面板关 RAM为1:显示面板开 A7 X[0]= 1:逆显示 RAM为0:显示面板开 RAM为1:显示面板关 |
0 | AE/AF | 1 | 0 | 0 | 0 | 1 | 1 | 1 | X0 | 设置显示开/关 | AE:X[0]= 0:关显示(默认) AF:X[0]= 1:在正常模式显示 |
2、滚动命令表
D/C | Hex | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | 命令 | 描述 |
0 0 0 0 0 0 0 | 26/27 A[7:0] B[2:0] C[2:0] D[2:0] E[7:0] F[7:0] | 0 0 * * * 0 1 | 0 0 * * * 0 1 | 1 0 * * * 0 1 | 0 0 * * * 0 1 | 0 0 * * * 0 1 | 1 0 B2 C2 D2 0 1 | 1 0 B1 C1 D1 0 1 | X0 0 B0 C0 D0 0 1 | 连续水平滚动设置 | 26小时,X[0]= 0,右向水平滚动 27 h,X[0]= 1,左向水平滚动 (水平滚动1列) [7:0]:虚拟字节(设置为00 h) B(2:0):定义开始页面地址 0~7 PAGE0 ~ PAGE7 C(2:0):设置每个滚动步骤之间的时间间隔的帧频 000 b - 5帧100 b - 3帧 001 b - 64帧101 b - 4帧 010 b - 128帧110 b - 25帧 011 b - 256帧111 b - 2帧 D(2:0):定义最终页面地址 0~7 PAGE0 ~ PAGE7 D(2:0)的值必须大于或等于B(2:0) E[7:0]:虚拟字节(设置为00 h) F[7:0]:虚拟字节(设置为FFh) |
0 0 0 0 0 0 | 29/2A A[2:0] B[2:0] C[2:0] D[2:0] E[5:0] | 0 0 * * * 0 | 0 0 * * * 0 | 1 0 * * * E5 | 0 0 * * * E4 | 1 0 * * * E3 | 0 0 B2 C2 D2 E2 | X1 0 B1 C1 D1 E1 | X0 0 B0 C0 D0 E0 | 连续垂直和水平滚动 设置 | 29H,X1X0 = 01 :垂直和水平滚动 2AH,X1X0 = 10 :垂直和水平滚动 (水平滚动1列) [7:0]:虚拟字节 B(2:0):定义开始页面地址 0~7 PAGE0 ~ PAGE7 C(2:0):设置每个滚动步骤之间的时间间隔的帧频 000 b - 5帧100 b - 3帧 001 b - 64帧101 b - 4帧 010 b - 128帧110 b - 25帧 011 b - 256帧111 b - 2帧 D(2:0):定义最终页面地址 0~7 PAGE0 ~ PAGE7 D(2:0)的值必须大于或等于B(2:0) E[5:0]:垂直滚动偏移量 例如E[5:0]= 01 h指抵消= 1行 E(5:0)= 3跳频是指抵消= 63行 请注意(1)没有可用连续垂直滚动。 |
0 | 2E | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 禁用滚动 | |
0 | 2F | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 激活滚动 | |
0 0 0 | A3 A[5:0] B[6:0] | 1 * 0 | 0 * B5 | 1 A5B5 | 0 A4B4 | 0 A3B3 | 0 A2 B2 | 1A1 B1 | 1A0 B0 | 设置垂直滚动 区域 | A(5:0):没有。的行固定区域。没有。的行固定区域引用的GDDRAM(重置= 0)(即行。0] B[6:0]:没有。在滚动的行。这是一个用于垂直的行数滚动。滚动区域开始在第一行下面的顶部固定区域。(重置= 64) 请注意 (1)A[5:0]+[6:0]< = MUX比率 (2)B(6:0)< = MUX比率 (3)垂直滚动抵消(E(5:0)h / 2啊29日)<B[6:0] (3 b)设置显示线(X5X4X3X2X1X0开始40 h ~ 7跳频)< B[6:0] (4)最后一行滚动区域的转移到第一行滚动的区域。 (5)对64 d MUX显示(5:0)= 0,B[6:0]= 64:整个区域卷轴 (5:0)= 0,B[6:0]< 64:高级卷轴 A[5:0]+[6:0]< 64:中心区卷轴 A[5:0]+[6:0]= 64:底部区域卷轴 |
3、寻址设置命令表
D/C | Hex | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | 命令 | 描述 |
0 | 00~0F | 0 | 0 | 0 | 0 | X3 | X2 | X1 | X0 | 设置低的列开始地址页面寻址模式 | 设置列的低咬起始地址注册页面使用X(握)寻址模式数据位。最初的显示行寄存器复位后重置为0000 b。 请注意 (1)该命令只是页面寻址模式 |
0 | 10~1F | 0 | 0 | 0 | 1 | X3 | X2 | X1 | X0 | 设定更高的列 开始地址页面寻址模式 | 设置列的高咬起始地址注册页面使用X(握)寻址模式数据位。最初的显示行寄存器复位后重置为0000 b。请注意 1)这个命令只是页面寻址模式 |
0 0 | 20 A[1:0] | 0 * | 0 * | 1 * | 0 * | 0 * | 0 * | 0 A1 | 0 A0 | 设置内存寻址模式 | A[1:0]= 00,水平寻址模式 A[1:0]= 01,垂直的寻址模式 A[1:0]= 10,页面寻址模式(重置) A[1:0]= 11,无效 |
0 0 0 | 21 A[6:0] B[6:0] | 0 * * | 0 A6B6 | 1 A5B5 | 0 A4B4 | 0 A3B3 | 0 A2 B2 | 0A1 B1 | 1A0 B0 | 设置列地址 | 设置列开始和结束地址 A[6:0]:列起始地址,范围:0 - 127 (默认值 = 0) B[6:0]:列结束地址范围:0 - 127 (默认值 = 127) 注:(1)该命令只是为水平或垂直寻址模式。 |
0 0 0 | 22 A[2:0] B[2:0] | 0 * * | 0 * * | 1 * * | 0 * * | 0 * * | 0 A2 B2 | 1A1 B1 | 0A0 B0 | 设置页面地址 | 页面设置开始和结束地址 A[2:0]:页面起始地址,范围:0-7 (默认值= 0 ) B[2:0]:页面结束地址,范围:0-7 (默认值= 7 ) 注:(1)该命令只是为水平或垂直寻址模式。 |
0 | B0~B7 | 1 | 0 | 1 | 1 | 0 | X2 | X1 | X0 | 设置页面开始 页面地址寻址模式 | 设置GDDRAM页面的起始地址 (PAGE0 ~ PAGE7)页面寻址模式,使用X[2:0]。 请注意 (1)该命令只是页面寻址模式 |
4、硬件配置表(面板分辨率&设计相关)命令
0 | 40~7F | 0 | 1 | X5 | X4 | X3 | X2 | X1 | X0 | 设置显示开始行 | 设置显示RAM的显示起始行地址0 -> 63,使用X5X4X3X2X1X0 。 在复位后起始行地址为0。 |
0 | A0/A1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | X0 | 设置段重映射 | A0,X[0]= 0:列地址0映射到 SEG0(默认值) A1 X[0]= 1:列地址127映射到SEG0 |
0 0 | A8 A[5:0] | 1 * | 0 * | 1 A5 | 0 A4 | 1 A3 | 0 A2 | 0 A1 | 0 A0 | 设置多种比列 | MUX比率设置为N + 1 MUX N =A[5:0]:从16MUX到64MUX ,复位值= 111111 b(即63 d、64 mux) A[5:0]:值0到14是无效的。 |
0 | C0/C8 | 1 | 1 | 0 | 0 | X3 | 0 | 0 | 0 | 设置COM输出扫描方向 | C0:X[3]= 0:正常模式(默认值)扫描 COM0->COM(N - 1) C8:X[3]= 1:重映射模式。扫描 COM0(N - 1)->COM0 其中N是MUX比率值 |
0 0 | D3 A[5:0] | 1 * | 1 * | 0 A5 | 1 A4 | 0 A3 | 0 A2 | 1 A1 | 1 A0 | 设置显示补偿 | 设置COM垂直移动 0->63 复位后的值为0。 |
0 0 | DA A[5:4] | 1 * | 1 * | 0 A5 | 1 A4 | 0 0 | 0 0 | 1 0 | 1 0 | 设置COM脚 | A[4]= 0,连续COM脚配置 A[4]= 1,(默认),可选择COM脚配置 A[5]= 0,(默认),禁用COM左/右重映射 A[5]= 1,COM左/右可重映射 |
5、时间和驱动方案设置命令表
0 0 | D5 A[7:0] | 1 A7 | 1 A6 | 0 A5 | 1 A4 | 0 A3 | 1 A2 | 0 A1 | 1 A0 | 设置显示时钟 分比率/振荡器频率 | A[3:0]:设置DCLK的除频因子:分频比=A[3:0]+ 1,复位后为0(分频比= 1); A[7:4]:设置晶振频率,FOSC频率随 A[7:4]的增加而增加,反之亦然。 复位后为8,范围:0 ~ 15; 当设定值增加时频率增加。 |
0 0 | D9 A[7:0] | 1 A7 | 1 A6 | 0 A5 | 1 A4 | 1 A3 | 0 A2 | 0 A1 | 1 A0 | 设置Pre-charge间隔 | A[3:0]:1到15 DCLK的间隔, 写入0是无效的(复位值 = 2); A[7:4]:2到15 DCLK的间隔;写入0是无效的(复位值 = 2) |
0 0 | DB A[6:4] | 1 0 | 1 A6 | 0 A5 | 1 A4 | 0 0 | 0 0 | 1 0 | 1 0 | VCOMH 电压设置 | A[6:4] V COMH设置 00 0.65 x VCC 20 0.77 x VCC(复位之后) 30 0.83 x VCC |
0 | E3 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | NOP | 没有操作命令 |
6、高级图形命令表
0 0 | 23 A[6:0] | 0 * | 0 * | 1 A5 | 0 A4 | 0 A3 | 0 A2 | 1 A1 | 1 A0 | 设置褪色出去,闪烁的 | A[5:4]= 00 禁用淡出/闪烁模式(重置) A[5:4]= 10 使能消退模式。 一旦启用消退模式,对比逐渐减少 对所有像素。输出内存内容时消退模式是禁用的。 A[5:4]= 11 b启用闪烁模式。一旦启用了闪烁模式,对比减少逐步对所有像素,比对照增加逐渐正常显示。这个过程循环不断,直到闪烁模式是禁用的。 A[3:0]:设置时间间隔为每一个褪色的一步 请注意 (1)请参考10.3.1节细节。 A[3:0]时间间隔为每一个褪色的一步 0000 b 8帧 0001 b 16帧 0010 b 24帧 : 1111 b 128帧 |
0 0 | D6 A[0] | 1 0 | 1 0 | 0 0 | 1 0 | 0 0 | 1 0 | 1 0 | 0 A0 | 设置放大 | A[0]= 0禁用放大模式(重置) A[0]= 1 b使放大模式 请注意 (1)必须在替代COM销的面板配置(命令哒[4]= 1) (2)请参考10.3.2节细节。 |
7、电荷泵命令表
0 0 | 8D A[7:0] | 1 * | 0 * | 0 0 | 0 1 | 1 0 | 1 A2 | 0 0 | 1 0 | 电荷泵 设置 | A[2]= 0,禁用电荷泵(复位) A[2]= 1,在显示时使能电荷泵 请注意:在下列的命令序列之前电荷泵必须启用: 0x8d;电荷泵设置 0x14,使能电荷泵 0xAF;开显示 |
注:由于时间有限,很多是机器翻译只是加以修改,请自己参照英文对照。