OLED原理、时序和操作+自己源码程序

转载博客:http://blog.csdn.net/abap_brave/article/details/53022540

一,OLED简介

OLED,即有机发光二极管,采用非常薄的有机材料图层和玻璃基板制成 
当有电流通过时,有机材料会发光,OLED屏幕可视角度大,节省电能

优点:分辨率高,自发光,不需背光源,对比度高,厚度薄,视角广,反应速度快,温度范围广,制造及制程简单

缺点:价格贵,尺寸难以大型化(价钱随尺寸几何倍数增长)

用途:可穿戴智能设备显示,MP3显示灯

oled应用

OLED分为两部分:原理,时序和操作 + OLED显示实验


二,ALINETEK 0.96寸OLED模块参数

OLED模块

1)双色:1/4黄色 + 3/4蓝色
2)尺寸:0.96存.模块尺寸:27mm*26mm
3)分辨率:128*64
4)支持接口方式4种(通信方式)
    1:6800,8080并行接口
    2:4线串行SPI
    3:2线IIC
5)模块工作电压3.3V

三,OLED模块原理图

OLED模块原理图

如图:
     BS1和BS2与OLED的连接方式
     BS1与BS2各有上中下三个引脚,LP与GND相连,HP与VCC相连
     OLED的13-25引脚为外接引脚,对应开发板的排针组P1
     OLED其他引脚暂不介绍,如图连接处理即可

四.OLED工作模式选择

OLED工作模式选择

通过模块BS1/BS2设置OLED工作模式,关系如下:

BS1/BS2设置OLED工作模式

由OLED模块图片背部焊点可以看到,默认TP引脚与VCC焊接 
即BS1=1,BS2=1,为8080并口通信方式


五,8080并口读写时序

并口写时序:

并口写时序

因为要写数据,由WR控制,所以RD设置为高电平
DC: 1,写数据 0 写命令
CS:要操作OLED前,先进行片选,拉低CS引脚,操作完成后拉高
WR:写数据,在WR的上升沿,使数据写入到SSD1306控制器内

并口读时序:

并口读时序

因为要读数据,由RD控制,所以WR设置为高电平
DC: 1,读数据 0 读命令
CS:要操作OLED前,先进行片选,拉低CS引脚,操作完成后拉高
RD:读数据,在RD的上升沿,使数据锁存到数据线D[7:0]上

总结:

无论读操作还是写操作:
     DC=1 数据操作 , DC=0 命令操作
     操作OLED前拉低片选CS引脚
     都是在上升沿进行数据采集
写操作:
     WR的上升沿,数据/命令写入SSD1306
读操作:
     RD的上升沿,数据/命令锁存到数据线D[7:0]

六,OLED模块显存

SSD1306显存为128*64bit大小, SSD1306将全部显存分为8页,每页128字节

SSD1306分页

OLED相当于64行128列点阵,每个像素点,0点亮,1熄灭 
OLED将纵向64行分为8页,每页8行


七,程序实现

采用每次全量更新的策略 
基于OLED128*64bit的分布,程序内部建立一个缓存数组128*8字节 
每次修改时,先修改缓存对应的值,修改完成后,一次性写入OLED的GRAM刷新显示


八,SSD1306命令

SSD1306命令

0:OLED设置对比度
     发送两个字节
     第一个字节为命令-0x81
     第二个字节为设置对比度值,值越大屏幕越亮(0X00-0XFF)

1:关闭/开启OLED显示
     发送一个命令字节,高七位固定,最低位X0=0关闭显示,X0=1开启显示
     0xAE:关闭显示
     0xAF:开启显示

2:关闭/开启电荷泵
     发送两个字节
     第一个字节为命令-0x8D
     第二个字节为设置电荷泵开关
          位0,1,4,5,6固定,位6位7随意,位2控制电荷泵开关
          A2=0关闭电荷泵
          A2=1开启电荷泵
     注意:在模块初始化时,必须开启,否则看不到屏幕显示

3:0xB0-0xB7 设置页地址
     发送一个字节,高5位固定
     位0-位2 , X[2:0]共3位, 值范围0-7对应页0-7地址(共8页)

4:0x00-0x0F设置列地址起始低四位
     高四位固定
     低四位设置列地址起始低四位

5:0x10-0x1F设置列地址起始高四位
     高四位固定
     低四位设置列地址起始高四位

九,OLED初始化过程

1,SSD1306复位 - 硬复位RST(RES)引脚
2,驱动IC初始化-代码由OLED供应商提供
3,开启显示-设置显示命令
4,清0显示-点阵全灭复位显示
5,开始显示-将要显示的内容写入GRAM

实例驱动代码讲解:--参考原子程序

1)代码初始化:--一般芯片参考手册有





注意:


竖向显示取模方式:


显示字符串水平显示:



  • 18
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F103C8T6是一款高性能的ARM Cortex-M3芯片,它可以被用于广泛的应用领域,诸如电子仪表、家具家电、工业自动化等。在本次问题中,我们需要编写STM32F103C8T6程序源码控制OLED显示器的显示。 首先,我们需要准备好硬件和软件的环境。按照硬件接口定义,我们需要将STM32F103C8T6的引脚连接到OLED显示器上。同时,我们需要使用Keil或者CubeMX来编写程序源码程序源码的编写可以分为以下几个步骤: 1. 在程序开始时,需要初始化STM32F103C8T6的引脚,包括OLED显示器的引脚和通信接口。通常,OLED显示器使用I2C或者SPI接口进行通信。 2. 在进行通信之前,需要对OLED显示器进行初始化,以确保其能够正常显示。一般而言,初始化的流程包括设置显示区域、清除显示区域、设置显示参数等。 3. 当OLED显示器完成初始化之后,我们可以通过程序源码向其发送需要显示的内容。可以通过DMA或者直接写入单个像素点的方式进行绘制。需要注意的是,在进行连续显示时,需要及时更新显示区域,以免内容被覆盖。 4. 最后,在程序结束时,需要释放资源并清除屏幕内容,以便下一次显示。 编写程序源码是一项复杂的任务,需要具备一定的技术水平和丰富的经验。总之,编写STM32F103C8T6程序源码控制OLED显示器的显示需要耐心和细心,以确保其功能稳定和性能优良。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值