IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 0.96寸OLED屏幕控制器SSD1306详解 -> 正文阅读

[嵌入式]0.96寸OLED屏幕控制器SSD1306详解

?

上一篇文章采用单片机cx32l003驱动了0.96寸OLED屏幕并实现其点亮。

CX32l003 点亮0.96寸OLED屏幕》。

这一篇将在前面的基础上对这个屏幕进行详细讲解,尤其是一些屏幕控制器SSD1306比较重要的命令。

图片

根据第9节COMMAND TABLE进行描述

图片

(Fundamental Command Table?)

图片

?0X81 xx:

根据命令描述,这是一个双字节命令,从256个对比度中选择1个,对比度随着值得增加而增加。程序中输入的是0x7f值,最高为0xff。

如下代码为适当对比度。

write_cmd(0x81);write_cmd(0x7f);//对比度

0XA4/0XA5:

图片

当选择0xA4时,屏幕输出的显示将跟随内部存储的RAM值。(此命令与0XA5/0XA7 有关)

当选择0XA5时,屏幕将输出显示,不论内部存储RAM的值是多少。

目前命令为0XA5。

write_cmd(0XA5);

若命令为0XA4时,屏幕将不显示任何画面。

0XA6/0XA7:

图片

此命令用来控制内部存储的RAM值0或1代表像素点开或者关。

当选择0XA6时,RAM处存储的0,是像素点关,1是像素点开。

当选择0XA7时,RAM处存储的0,是像素点开,1是像素点关。

就是说假如写数据写入RAM全是0,在此条命令的情况下,如果是0XA6那么屏幕就是黑屏的状态,如果是0XA7,那么屏幕就是点亮的状态。

write_cmd(0XA6);

0XAE/0XAF:

图片

根据描述很容易知道,0XAE关闭显示,0XAF打开显示。

write_cmd(0XAF);

到这里就先不根据下面的命令表格进行描述了,我们在OLED屏幕上显示一个自定义的图像来区别接下来的命令。

图像取模采用常用的文字取模软件,如下图生成数组。

图片

//数组定义unsigned char word[]={0x80,0x80,0x9F,0x80,0x80,0x80,0x80,0xFF,0xFF,0x80,0x80,0x9D,0x95,0x95,0x97,0x80,0x00,0x54,0x54,0x54,0x7C,0x00,0x00,0xFF,0xFF,0x00,0x00,0x3C,0x20,0xFC,0x20,0x20};
????//以下为初始化命令??write_cmd(0xA8);write_cmd(0x3F);  write_cmd(0xD3);write_cmd(0x00);   write_cmd(0x40);  write_cmd(0xA1);??write_cmd(0xC8);??write_cmd(0xDA);write_cmd(0x12);  
    write_cmd(0x81);write_cmd(0xff);  write_cmd(0XA4);  write_cmd(0XA6);  write_cmd(0xd5);write_cmd(0x80);    write_cmd(0x8D);write_cmd(0x14);??write_cmd(0XAF);?

要想将数组数据显示到屏幕,就需要将数据存入,此时我们就用到了SSD1306的RAM,对于RAM在8.7节有描述。

图片

GDDRAM是一个位映射的静态RAM,保持要显示的位模式。RAM大小为128x64位,RAM分为8页,从0页到7页,用于单色128x64点矩阵显示,如图8-13所示。

图片

到这里,如果将数据写入SSD1306的RAM,就需要知道其写入方式以及写入地址。

而对于地址的说明,表格中已经做了说明

图片

表格结合描述

首先,可以发现写入方式有3种:页地址模式,水平地址模式,竖直地址模式。

本篇以地址模式来说明。由于默认就是页地址,所以对于地址模式无需设置。

图片

图片

在页面寻址模式下,读写显示RAM后,列地址指针自动增加1。如果列地址指针到达列结束地址,则将列地址指针重置为列起始地址,而不对页面地址指针进行更改。用户必须设置新的页面和列地址,才能访问下一页的RAM内容。页面地址模式的页面页面和列地址点的移动顺序如图10-1所示。

图片

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

?通过命令将目标显示位置的页面起始地址设置为B0h到B7h。

?通过命令00h~0Fh设置指针的低起始列地址。

?通过命令10h~1Fh设置指针的高起始列地址。

例如,如果页面地址设置为B2h,低列地址为03h,高列地址为10h,则表示开始列为PAGE2的SEG3。RAM访问指针的位置如图10-2所示。输入的数据字节将被写入第3列的RAM位置。

根据上述说明,将文章开始所定义的文字数组写入GDDRAM。???????

?//数组定义unsigned char word[]={0x80,0x80,0x9F,0x80,0x80,0x80,0x80,0xFF,0xFF,0x80,0x80,0x9D,0x95,0x95,0x97,0x80,0x00,0x54,0x54,0x54,0x7C,0x00,0x00,0xFF,0xFF,0x00,0x00,0x3C,0x20,0xFC,0x20,0x20};????write_cmd(0XB0);?//页0  write_cmd(0X00); //0列开始  write_cmd(0X10); //16列结束  for(i=0;i<16;i++)  {    write_data(word[i]);      }    write_cmd(0XB1);  write_cmd(0X00);  write_cmd(0X10);  for(i=0;i<16;i++)  {????write_data(word[i+16]);  }

显示如下

图片

还记得最开始的时候有一个命令A6/A7,在程序中设置的是A6,如果我们将其设置成A7会如何。

现象如图:

图片

可以发现,背景和显示的文字正好反相了。正如命令描述所说,A6是正常显示,0就是像素点关闭,1是点亮;A7正好相反,0是像素点打开,1是关闭。

0XA0/0XA1:

这个命令是用来将屏幕中画面左右调换,其他扫描方式不影响。

程序中为A1,我们将其改成A0(默认值),如下图:

图片

0XC0/0XC8:

这个命令是用来将屏幕中画面竖直调换,其他扫描方式不影响。

程序中为C8,我们将其改为C0(默认值),如下图:

图片

0XDA ?XX ?:

这个命令可以说是相对重要的命令,因为这个命令配合上述C0/C8?的组合实在是太多了。并且通过手册中的描述可以看到

图片

图片

图片

图片

可以看到 ,这扫描方式实在是太多了,达到8种,扫描方式的不同导致的画面显示也各有不同。对于这个组合,可以根据源码逐个试一下。

通过对这款OLED屏幕页地址方式的说明,大概熟悉了这款OLED的应用。页地址模式有页地址模式的操作方式,还有另外两种模式后续会继续说明,或许显示起来与页地址各有千秋。不过总的来说,这款0.96寸OLED屏幕着实强大。

关注公众号嵌入式软硬件爱好者

发送消息“页模式”??获取源码

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-12-13 12:59:30  更:2021-12-13 13:00:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 2:08:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码