0.96寸OLED显示(7针款SPI)

这篇具有很好参考价值的文章主要介绍了0.96寸OLED显示(7针款SPI)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文章最后附源代码链接

一、OLED屏

1、各项模式配置

  • SSD1306单片机接口由8个数据引脚和5个控制引脚组成。不同接口模式下的引脚分配如表所示。在BS[2:0]引脚上通过硬件选择可设置不同的MCU模式。

0.96寸OLED显示(7针款SPI)

2、通讯模式

  • 通常我们所用的OLED屏有白色、蓝色、黄蓝双色等几种;屏的大小为0.96寸,像素点为128*64,所以我们也称之为0.96OLED屏或者12864屏。

  • 内部驱动IC为SSD1306;通信方式一般为SPI或者I2C。如下图所示,配置哪种模式主要是根据BS0、BS1和BS2这三个管脚的电平逻辑来的。

0.96寸OLED显示(7针款SPI)
0.96寸OLED显示(7针款SPI)

①IIC模式:

  • 电阻焊接R1、R4、R6、R7、R8。D1作为SCK时钟线,D0作为SDA数据线。SSD1306作为从机地址为0x78,DC脚作为更改从机地址引脚,DC接VCC,从机地址0x79,什么都不接地址为0x78。

  • 发送数据:起始信号-从机地址-应答-写数据模式(0x40)-应答-数据(8bit)-结束信号

  • 发送命令:起始信号-从机地址-应答-写命令模式(0x00)-应答-命令(8bit)-结束型号

②四线SPI模式:

  • 电阻焊接R3、R4。D1作为SClk时钟线,D0作为MOSI线,CS为片选NSS,DC为数据/命令线、RES复位线。

  • 发送数据:CS拉低-DC拉高-发送数据(8bit)-CS拉高

  • 发送命令:CS拉低-DC拉低-发送命令(8bit)-CS拉高

0.96寸OLED显示(7针款SPI)

③三线SPI模式:

  • 电阻焊接R2,R3。D1作为SCLK时钟线,D0作为MOSI线,CS片选NSS,RES复位,DC拉低不用。数据有9位,首位就是数据/命令,因此不用DC线。

  • 发送数据:CS拉低-首位为1再接着发送8位数据-CS拉高

  • 发送命令:CS拉低-首位为0再接着发送8位命令-CS拉高

0.96寸OLED显示(7针款SPI)

二、显示原理与取模方式

1、显示原理

OLED的显存分布情况。我们可以理解为:水平方向分布了128个像素点,垂直方向分布了64个像素点。而驱动芯片在点亮像素点的时候,是以8个像素点为单位的。官方的例程推荐的是垂直扫描的方式,也就是先画垂直方向的8个像素点(如下图所示),所以我们在画点的时候Y的取值为0-7,X的取值为0-127。页是芯片设计者为了方便将同一列的8个点阵编成一组,用一个8bit数表示,这样的8行128个数被称为1页。

0.96寸OLED显示(7针款SPI)
0.96寸OLED显示(7针款SPI)

2、取模方式

选择阴码、行列式(搭配页寻址模式)、逆向

0.96寸OLED显示(7针款SPI)

三、OLED命令

1、命令的格式

①单级命令:直接发送一个命令就能设置OLED屏。

OLED_WriteCmd(0xAE); //关闭显示OLED_WriteCmd(0xA4); //设置整个显示打开/关闭OLED_WriteCmd(0xAF); //开启显示OLED_WriteCmd(0xA4); //设置整个显示打开/关闭

②多级命令:先发送一个命令,紧接着发送该命令的参数

OLED_WriteCmd(0x20); //打开寻址模式选择OLED_WriteCmd(0x02); //寻址模式选择页寻址模式

2、寻址模式设置命令

寻址模式命令:0x20

模式

命令

水平寻址模式

0x00

垂直寻址模式

0x01

页寻址模式

0x02

①页寻址模式(默认模式):

  • 从设定的页和列开始发送数据,列地址自动累加,页地址不会更新,如果超出范围则超出部分无效,可以不用事先指定每页中每列的长度。

0.96寸OLED显示(7针款SPI)

地址设置:

  • y是页地址的编号:

使用或命令将这低四位与固定前缀0xb连接起来(0xb0 | y)

  • x是列地址的编号:

发送高四位的程序,先使用与命令(&)取得x的高4位(x & 0xf0)之后向右移4位,将高4位数据放到低4位((x & 0xf0) >> 4)之后使用或命令(|)加上固定前缀0x1即可(((x & 0xf0) >> 4) | 0x10)

发送低四位命令因为地址低四位的高四位为0x0,因此只需要使用与命令(&)将高四位置零即可(x & 0x0f)

②水平寻址:

  • 横向编码,列地址自动加,遇到设置范围的页尾时自动跳转到下一页,传输到设置范围的最后一页最后一列时自动复位。

0.96寸OLED显示(7针款SPI)

地址设置:

OLED_WriteCmd(0x20) //寻址模式选择:(0x00水平/0x01垂直/0x02页)OLED_WriteCmd(0x00) //水平寻址模式OLED_WriteCmd(0x21) //设置列地址OLED_WriteCmd(0x00) //设置列起始位置OLED_WriteCmd(0x7F) //设置列终止位置OLED_WriteCmd(0x22) //设置页地址OLED_WriteCmd(0x00) //设置页起始位置OLED_WriteCmd(0x07) //设置页终止位置

③垂直寻址:

在垂直寻址模式下,当对显示内存进行读写操作后,页面地址指针自动加1。如果页地址指针到达页结束地址,则页地址指针重置为页开始地址,并且列地址指针加1。垂直寻址模式下页和列地址点的移动顺序如图所示。当列地址和页地址指针都到达结束地址时,指针被重定向到列的开始地址和通道的开始地址。

0.96寸OLED显示(7针款SPI)

地址设置:

OLED_WriteCmd(0x20) //寻址模式选择:(0x00水平/0x01垂直/0x02页)OLED_WriteCmd(0x01) //垂直寻址模式OLED_WriteCmd(0x21) //设置列地址OLED_WriteCmd(0x00) //设置列起始位置OLED_WriteCmd(0x7F) //设置列终止位置OLED_WriteCmd(0x22) //设置页地址OLED_WriteCmd(0x00) //设置页起始位置OLED_WriteCmd(0x07) //设置页终止位置

3、基本命令

①对比度设置命令

进入对比度设置模式:0x81

之后输入对比度数值范围是0x00 - 0xFF(对比度实际上在这里就是设置发光部分的亮度,数值越大,亮度越大)

0.96寸OLED显示(7针款SPI)

②显示开启/关闭

显示开启:0xA4

显示关闭:0xA5

0.96寸OLED显示(7针款SPI)

③显示模式

阳码显示:0xA6

阴码显示:0xA7

0.96寸OLED显示(7针款SPI)

④显示控制命令

关闭显示:0xAE

开启显示:0xAF

0.96寸OLED显示(7针款SPI)

4、滚动命令

关闭滚动:0x2E(设置滚动参数前要先关闭滚动,防止RAM错乱)

开启滚动:0x2F

向右滚动:0x29

向左滚动:0x2a

A-F滚动参数配置,5个字节配置参数。

0.96寸OLED显示(7针款SPI)
0.96寸OLED显示(7针款SPI)

5、硬件配置(面板分辨率和布局相关)命令

①设置显示开始行

默认起始行:0x40

0.96寸OLED显示(7针款SPI)

②设置列重映射(就是设置是否水平镜像)

将列地址0映射到SEG0:0xA0

将列地址127映射到SEG0:0xA1

设置左右方向,0xA1正常 0xA0左右反置

0.96寸OLED显示(7针款SPI)

③设置多路复用率

开启多路复用率:0xA8

参数:A[5:0] 0到63配置参数。

0.96寸OLED显示(7针款SPI)

④设置COM输出扫描方向

设置上下方向,0xC8正常 0xC0上下反置

0.96寸OLED显示(7针款SPI)

⑤设置显示偏移量

开启显示偏移量:0xD3

参数:A[5:0] 垂直偏移量0-63

0.96寸OLED显示(7针款SPI)

⑥设置COM引脚硬件配置

开启COM应交硬件配置;0xDA

参数:

A[4]=0b,顺序COM引脚配置

[4]=1b(RESET),可选COM引脚配置

A[5]=0b(RESET),禁用COM左右重映射

A[5]=1b,启用COM左右重映射

0.96寸OLED显示(7针款SPI)

6、定时驱动方案设置命令

①设置显示时钟分频率/振荡器频率

开启命令:0xD5

参数A[7:0]:

A[3:0]:定义显示时钟(DCLK)的分割比(D):除比= A[3:0] + 1, RESET为0000b(除比= 1)

A[7:4]:设置振荡器频率,FOSC。振荡器频率随着A[7:4]的值增加,反之亦然。RESET为1000b范围:0000 ~ 1111 b频率随设定值增加而增加。

0.96寸OLED显示(7针款SPI)

②设置预充电周期

开启命令:0xD9

参数A[7:0]:

A[3:0]:阶段1周期最多15个DCLK时钟,0是无效的条目(重置= 2h)

A[7:4]:阶段2周期最多15个DCLK时钟,0是无效的条目(重置= 2h)

0.96寸OLED显示(7针款SPI)

③设置VCOMH取消选择级别

开启命令:0xDB

参数A[6:4]

0.96寸OLED显示(7针款SPI)

④无操作命令

开启无操作:0xE3

0.96寸OLED显示(7针款SPI)

四、代码

  1. 引脚初始化和OLED初始化配置

2、显示功能代码(部分)

3、滚动显示代码

源文件连接:

链接:https://pan.baidu.com/s/1xlNhgYBokVcr8njH9ntNjQ

提取码:xiao文章来源地址https://www.toymoban.com/news/detail-427742.html

到了这里,关于0.96寸OLED显示(7针款SPI)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32配合CubeMX硬件SPI驱动0.96寸OLED

    目录 一、简单介绍 1.1 OLED 1.2 SPI协议 接口 优点 缺点 数据传输 二、实战 2.1 工程配置 2.2 测试工程 2.3 波形分析 三、驱动OLED 3.1 初始化代码 3.2 清屏函数 3.3 设置坐标函数 3.4 显示字符函数 3.5 显示字符串函数 3.6 显示图片函数 附录 驱动代码文件 oled.c oled.h f6x8.h 1.1 OLED 有机发

    2024年02月02日
    浏览(35)
  • 0.96寸OLED显示屏介绍

    OLED显示屏简介       OLED,即有机发光二极管(Organic Light Emitting Diode)。OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。

    2024年03月25日
    浏览(92)
  • 0.96寸OLED液晶显示器

    在日常的小项目制作中我们经常会接触到OLED液晶显示器,本文介绍0.96寸液晶显示器的基本原理,辅助后续项目开发 一、简介 OLED被称为有机激光二极管,也被称为有机激光显示,OLED采用有机材料涂层和玻璃基板,当有电流通过时有机材料就会发光,所以OLED具有自发光特性,

    2023年04月22日
    浏览(47)
  • 【mcuclub】0.96寸oled显示屏

     proteus8.9版本中没有OLED,通常用LCD12864模拟代替,而proteus8.13中有OLED,大家有兴趣可以下载测试 OLED(Organic Light-Emitting Diode),又称为有机电激光显示、有机发光半导体。OLED显示技术具有自发光的特性,采用非常薄的有机材料涂层和玻璃基板,当有电流通过时,这些有机材料

    2024年03月28日
    浏览(47)
  • OLED 液晶屏显示模块(0.96寸)

           OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。因为具备轻薄、省电等特性,因此从 2003 年开始,这种显示设备在 MP3 播放器上得到了广泛应用,而对于同属数码类产品的 DC与手机,此前只是在一些展会上

    2024年02月05日
    浏览(51)
  • 中景园0.96寸 OLED 显示屏 学习笔记

    OLED ,即 有机 发光二极管( Organic Light Emitting Diode )。OLED由于同时具备 自发光,不需背光源、对比度高、厚度薄 、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。 LCD都需要背光,而

    2023年04月08日
    浏览(37)
  • 0.96寸OLED显示汉字图片及简单GIF

    只是做一些简单显示,具体逻辑大家自行添加。 网上的OLED驱动很多,我懂的也不是很深,这里就不说了,我这里用的是中景园的驱动。这里重点说怎么改可以显示这些东西。 首先我们需要两个重要的东西,一个是字取模软件,另一个是图片的处理取模软件。感谢大佬。 首先

    2024年02月01日
    浏览(45)
  • 0.96OLED显示原理及FPGA驱动程序

    很久以前玩的OLED,现在整理一下。 OLED:organic/polymer light emitting diode 高分子有机电激发光二极管 OLED模块原理图: OLED模块结构图: 市面上统一尺寸的配置和设计大差不差的,OLED生产商大部分都是中景园电子,官网可以下载OLED 显示屏裸屏的资料。 以驱动芯片为SSD1306的屏为

    2024年02月04日
    浏览(38)
  • stm32实现0.96oled图片显示,菜单功能

    本期内容,我们将学习0.96寸oled的进阶使用,展示图片,实现菜单切换等功能,关于oled的基础内容,这里我不做介绍,大家可以学习 : 夜深人静学32系列17——OLED ,里面讲述了oled的基本知识并实现了一个简单页面的编写。 这个菜单一共有三个等级, 一级菜单:原神启动界

    2024年02月03日
    浏览(126)
  • 0.96寸OLED(SSD1306)屏幕显示(二)——超长文字水平滚动

    (一)基础功能介绍 (二)超长文字水平滚动 (三)屏幕垂直水平滚动 文章目录 前言 一、内置水平滚动方法 二、自定义水平滚动方法 总结 最近,我突发奇想去翻阅了一些我本科期间所做的一些小项目,发现都挺有意思的!当年做这些项目的时候可走了很多弯路,所以想

    2023年04月08日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包