10 指令说明

10.1 基本命令

10.1.1 设置页面寻址模式的下列起始地址(00h〜0Fh)

该命令指定显示数据RAM的8位列起始地址的低半字节页面寻址模式。列地址将随每次数据访问而增加。请参阅部分有关详细信息,请参见表9-1和第10.1.3节。

10.1.2为页面寻址模式设置较高的列起始地址(10h〜1Fh)

该命令指定显示数据RAM的8位列起始地址的高半字节页面寻址模式。列地址将随每次数据访问而增加。请参阅部分有关详细信息,请参见表9-1和第10.1.3节。

10.1.3设置存储器寻址模式(20h)

SSD1306中有3种不同的内存寻址模式:页面寻址模式,水平寻址模式和垂直寻址模式。此命令将内存寻址方式设置为上述之一三种模式。此处的“ COL”表示图形显示数据RAM列。

页面寻址模式(A [1:0] = 10xb)

在页面寻址模式下,读取/写入显示RAM后,增加列地址指针自动按1。如果列地址指针到达列结束地址,则列地址指针为重置为列起始地址,并且页面地址指针不变。用户必须设置新页面,然后列地址以访问下一页RAM内容。 PAGE的移动顺序页寻址模式的列地址点如图10-1所示。

在正常的显示数据RAM读写或页面寻址模式下,需要执行以下步骤定义起始RAM访问指针位置:

•通过命令B0h至B7h设置目标显示位置的页面起始地址。
•通过命令00h〜0Fh设置指针的下起始列地址。
•通过命令10h〜1Fh设置指针的高位起始列地址。

例如,如果页面地址设置为B2h,则下列地址为03h,上列地址为10h,那么这意味着起始列为PAGE2的SEG3。 RAM访问指针的位置如图所示图10-2。输入数据字节将写入第3列的RAM位置。

图10-2:页面寻址模式下的GDDRAM访问指针设置示例(无行和列重新映射)

水平寻址模式(A [1:0] = 00b)

在水平寻址模式下,读取/写入显示RAM后,增加列地址指针自动按1。如果列地址指针到达列结束地址,则列地址指针为重置为列起始地址,页面地址指针加1。水平寻址模式的页面和列地址点如图10-3所示。当两列并且页面地址指针到达结束地址,指针将重置为列起始地址和页面起始地址(图10-3中的虚线。)

垂直寻址模式:(A [1:0] = 01b)

在垂直寻址模式下,读取/写入显示RAM后,页面地址指针增加自动按1。如果页面地址指针到达页面结束地址,则重置页面地址指针到页面的起始地址和列地址指针增加1。页面的移动顺序垂直寻址模式的列地址点如图10-4所示。当列和页面都地址指针到达结束地址,指针将重置为列起始地址和页面起始地址(图10-4中的虚线。)

在正常显示数据RAM的读取和写入以及水平/垂直寻址模式下,以下步骤是定义RAM访问指针位置所需:

•通过命令21h设置目标显示位置的列开始和结束地址。
•通过命令22h设置目标显示位置的页面开始和结束地址。

示例如图10-5所示。

10.1.4设置列地址(21h)

该三字节命令指定显示数据RAM的列起始地址和结束地址。这个命令还将列地址指针设置为列起始地址。该指针用于定义图形显示数据RAM中的当前读/写列地址。如果水平地址递增模式为通过命令20h启用后,完成对一列数据的读/写后,它会自动递增到下列地址。每当列地址指针完成对末尾列地址的访问时,重置回起始列地址,行地址递增到下一行。

10.1.5设置页面地址(22h)

该三字节命令指定显示数据RAM的页面起始地址和结束地址。这个命令还将页面地址指针设置为页面起始地址。该指针用于定义当前图形显示数据RAM中的读/写页地址。如果通过以下方式启用了垂直地址递增模式命令20h,完成读/写一页数据后,它会自动递增到下一页地址。每当页面地址指针完成对结束页面地址的访问时,都会将其重置回开始页面地址。

下图通过示例显示了列和页面地址指针的移动方式:列起始地址设置为2,列结束地址设置为125,页面起始地址设置为1,页面结束地址设置为6;水平地址递增模式由命令20h启用。在这种情况下,图形显示数据RAM列的可访问范围仅从第2列到第125列以及从第1页到第6页。此外,列地址指针设置为2,页面地址指针设置为1。完成后读/写一个数据像素,列地址自动加1以访问下一个RAM下一个读/写操作的位置(图10-5中的实线)。每当列地址指针
完成访问结束列125后,将其重置回到列2,并且页面地址自动增加1(图10-5中的实线)。而第6页末尾和第125列末尾的RAM位置是访问后,页面地址被重置为1,列地址被重置为2(图10-5中的虚线)
)。

10.1.6设置显示起始行(40h〜7Fh)

该命令通过选择显示起始行寄存器来确定显示RAM的起始地址。
值从0到63。值等于0,RAM行0映射到COM0。值等于1,RAM
第1行映射到COM0,依此类推。

有关更多说明,请参见表10-1。

10.1.7设置BANK0的对比度控制(81h)

该命令设置显示器的对比度设置。该芯片具有从00h到FFh的256个对比度阶跃。的
分段输出电流随着对比度阶跃值的增加而增加。

10.1.8设置路段重映射(A0h / A1h)

此命令更改显示数据列地址和段驱动器之间的映射。它允许OLED模块设计的灵活性。请参考表9-1。

该命令仅影响后续数据输入。已经存储在GDDRAM中的数据将保持不变。

10.1.9全屏显示(A4h / A5h)

A4h命令启用根据GDDRAM内容显示的输出。如果发出了A5h命令,则通过使用A4h命令,显示将恢复到GDDRAM内容。换句话说,A4h命令从整个显示“ ON”阶段恢复显示。无论显示数据RAM的内容如何,​​A5h命令都将整个显示器强制为“ ON”。

10.1.10设置正/反向显示(A6h / A7h)

此命令将显示设置为正常显示或反向显示。在正常显示中,RAM数据为1表示反向显示时,“ ON”像素为0,表示RAM数据为“ ON”。

10.1.11设置多路传输比率(A8h)

此命令将默认的63复用模式切换为16到63之间的任何复用率。输出焊盘COM0〜COM63将切换到相应的COM信号。

10.1.12设置显示ON / OFF(AEh / AFh)

这些单字节命令用于打开或关闭OLED面板显示。当显示屏打开时,通过“设置主站配置”命令选择的电路将打开。当显示屏关闭时,这些电路将关闭,并且段和公共输出在VSS中状态和高阻抗状态。这些命令将显示设置为两种状态之一:

o AEh:显示关闭
o AFh:显示开

10.1.13设置页面寻址模式(B0h〜B7h)的页面起始地址

此命令在页面寻址模式下将页面起始地址从0定位到GDDRAM中的7。有关详细信息,请参见表9-1和10.1.3节。

10.1.14设置COM输出扫描方向(C0h / C8h)

此命令设置COM输出的扫描方向,从而在OLED模块中提供布局灵活性设计。此外,发出此命令后,显示屏将显示。例如,如果此命令是在正常显示期间发送,则图形显示将立即垂直翻转。请参阅详情见表10-3

10.1.15设置显示偏移量(D3h)

这是一个双字节命令。第二条命令指定显示起始行到以下一项的映射COM0〜COM63(假设COM0是显示起始行,则显示起始行寄存器等于0)。例如,要将COM16朝COM0方向移动16行,第二个字节中的6位数据应指定为010000b。要沿相反方向移动16行,应通过以下方式给出6位数据:64 – 16,因此第二个字节为100000b。以下两个表(表10-1,表10-2)显示了设置命令C0h / C8h和D3h的示例。

10.1.16设置显示时钟分频比/振荡器频率(D5h)

该命令包含两个功能:

•显示时钟分频比(D)(A [3:0])
设置分频比以从CLK生成DCLK(显示时钟)。分频比为1到16复位值为1时,DCLK和CLK的详细关系请参考8.3节。
•振荡器频率(A [7:4])
如果将CLS引脚拉高,则对作为CLK源的振荡器频率Fosc进行编程。 4位值会产生16种不同的频率设置,如下所示。默认设置是1000b。

10.1.17设定预充电时间(D9h)

此命令用于设置预充电时间的持续时间。间隔以DCLK,其中RESET等于2个DCLK。

10.1.18设置COM引脚的硬件配置(DAh)

此命令设置COM信号引脚配置以匹配OLED面板的硬件布局。下表为不同条件下的COM引脚配置(MUX ratio =64):

10.1.19设置VCOMH取消选择级别(DBh)

该命令调整VCOMH调节器输出。

10.1.20 NOP(E3h)

无操作命令

10.1.21状态寄存器读取

这个命令是在数据读取期间通过将D/ c#设置为低来发出的(并行接口波形参见图13-1到图13-2)。它允许MCU监视芯片的内部状态。串行模式不提供状态读取。

10.2图形加速命令

10.2.1水平滚动设置(26h / 27h)

此命令由连续的字节组成,用于设置水平滚动参数并确定滚动开始页面,结束页面和滚动速度。
发出此命令之前,必须禁用水平滚动(2Eh)。否则,RAM内容可能会被破坏。
SSD1306水平滚动设计用于128列滚动。以下两个图(图10-7,图10-8,图10-9)显示了使用水平滚动的示例:

图10-7:水平滚动示例:向右滚动1列

图10-8:水平滚动示例:向左滚动1列

图10-9:水平滚动设置示例

10.2.2连续垂直和水平滚动设置(29h / 2Ah)

此命令由6个连续字节组成,用于设置连续垂直滚动参数和确定滚动的起始页,结束页,滚动速度和垂直滚动偏移量。
命令29h / 2Ah的字节B [2:0],C [2:0]和D [2:0]用于设置连续水平滚动。字节E [5:0]用于设置连续垂直滚动偏移量。所有这些字节在一起用于设置连续对角线(水平+垂直)滚动。如果垂直滚动偏移字节E [5:0]设置为零,然后仅执行水平滚动(如命令26 / 27h)。
在发出此命令之前,必须禁用滚动(2Eh)。否则,RAM内容可能是损坏了。下图(图10-10)显示了使用连续垂直方向和水平滚动:

图10-10:连续垂直和水平滚动设置示例

10.2.3取消滚动(2Eh)

此命令停止滚动运动。发送2Eh命令停用滚动操作后,ram数据需要重写。

10.2.4激活滚动(2Fh)

该命令开始滚动运动,仅在滚动设置参数设置为由滚动设置命令:26h / 27h / 29h / 2Ah定义。最后滚动设置中的设置命令将覆盖先前的滚动设置命令中的设置。

激活滚动后,禁止执行以下操作

1. RAM访问(数据写入或读取)
2.更改水平滚动设置参数

10.2.5设置垂直滚动区域(A3h)

该命令由3个连续字节组成,用于设置垂直滚动区域。对于连续垂直滚动功能(命令29 / 2Ah),在垂直滚动中可以设置的行数小于或等于MUX比率。

iic四线OLED 屏幕相关推荐

  1. 51单片机IIC 12864 OLED屏幕滚动显示仿真

    51单片机IIC 12864 OLED屏幕滚动显示仿真 程序代码接着前面文章<STC15W408AS单片机IIC驱动0.96寸OLED显示> 这里不再贴出代码了,前面有一篇有实物效果演示, ...

  2. ESP8266(NodeMCU)+Lua语言+IIC驱动OLED屏幕

    前言 本来打算用Arduino IDE驱动OLED屏幕,但是因为在家无法安装Arduino的第三方库,改用ESPlorer和Lua语言驱动. 硬件准备 1. NodeMCU开发板 2. OLED屏幕( ...

  3. STM32使用IIC总线通讯协议在OLED屏幕上显示字符串、汉字、图像(硬件IIC)

    参考:基于STM32-Oled(IIC)的使用 作者:奋斗的小殷 发布时间: 2021-05-07 13:09:26 网址:https://blog.csdn.net/boybs/article/de ...

  4. 【矿渣】【玩客云】玩客云驱动OLED屏幕

    玩客云上驱动iic的OLED屏幕 在闲鱼买了花50块买了一台玩客云,拆开刷了armbian系统后发现玩客云这块板子预留了一个单片机芯片的封装,心想这个单片机应该是连接玩客云的GPIO的,所以查了点资料 ...

  5. STM32使用IIC总线通讯协议在OLED屏幕上显示字符串、汉字、单总线获取DHT11模块温湿度并通过IIC显示到屏幕(软件IIC)

    参考:基于stm32软件IIC的oled显示温湿度 作者:ZPZ DayUp 发布时间: 2021-07-25 20:52:43 网址:https://blog.csdn.net/m0_5619768 ...

  6. OLED屏幕的IIC驱动程序

    目录 一.IIC驱动 二.自己动手写的模拟IIC 三.OLED驱动 四.常用的OLED函数 五.咕咕咕 今天有个小老弟问我OLED的IIC驱动问题,正好我前段时间写了SPI的OLED驱动程序,也想把I ...

  7. IIC协议下的OLED屏幕的三种寻址方式

    根据手册SSD1306我们可以知道,OLED屏幕一共有三种寻址方式.分别是页面寻址,水平寻址和垂直寻址.本篇文章将分别使用以上三种方式对OLED屏幕进行全部点亮和熄灭的操作.(使用到了IIC底层驱动代 ...

  8. 51单片机 IIC OLED屏幕驱动+Proteus仿真+实物验证示例程序

    51单片机 IIC OLED屏幕驱动+Proteus仿真+实物验证示例程序 Proteus仿真效果 注意点击运行仿真后,图像刷新出来比较慢. 示例主程序 #include "REG51.h& ...

  9. Arduino 驱动OLED屏幕IIC接线方式简单入门

    OLED一款小巧的显示屏,感觉可以做出很可爱的东西. 这次实验的这款是128X64的OLED屏幕 , 芯片是SSD1306,请确认自家模块芯片型号,不然对不上号啊 使用IIC的方法,简单实验显示示例程 ...

最新文章

  1. Windows2008/2012多用户同时远程连接终端服务授权
  2. 查看自己电脑可以支持的最大内存量
  3. MATLAB(四)在高等数学中的应用
  4. RocketMQ(二)——系统架构及基本知识
  5. Chpater 10: Sorting
  6. 在Tomcat 与weblogic 中的 日志(log4j) 配置系列一
  7. 一体机服务器性能,一体机的服务器
  8. LeetCode 53.最大子序和(动态规划)
  9. D3D12渲染技术概述
  10. 全球五十家知名传感器制造商分布盘点、特点分析
  11. linux日志过大怎么查看,Linux查看日志常用命令
  12. Java并发之-队列同步器AQS
  13. 纯前端集成视频会议和聊天室
  14. java 中的radix_Java Scanner radix()用法及代码示例
  15. Android 更换皮肤
  16. 安装了yarn还是有 The project seems to require yarn but it‘s not installed
  17. cad指定许可服务器,AutoCAD许可证版本
  18. js控制excel打印完美解决方案(转)
  19. 永恒之蓝(Eternal Blue)复现
  20. Linux WIFI 驱动

热门文章

  1. windows基于face_recognition实现人脸识别
  2. mysql优化 个人笔记 - 非礼勿扰 -m17
  3. python 使用osl的时候会出错
  4. 我曾七次鄙视我的灵魂--纪伯伦
  5. java jsch shell_Jsch支持shell模式
  6. html视频播放 禁止播放进度条
  7. Qt图形视图实例:飞舞的蝴蝶
  8. TPC-H:22个SQL语句说明
  9. python课程介绍-少儿Python编程课程的具体介绍
  10. python频谱分析_基于Python的频谱分析(一)