深海迷航坐标传送代码_详细解析OLED及相关代码,基于SH1107的1.3寸OLED屏

本文详细介绍了基于SH1107的1.3寸OLED屏幕的工作原理,包括显示地址、页地址模式以及相关的编程代码。内容涉及设置内存地址模式、显示坐标设置及代码实现,同时讲解了如何在不同位置点亮像素点,并提供了显示字符和图片的函数解析。
摘要由CSDN通过智能技术生成

最近在做一些基于SH1107的1.3寸OLED屏幕相关的项目,现在对一些相关的命令、地址和代码做些总结。

一、显示地址

1、SH1107最大是支持128x128的矩阵面板的,现在以分辨率为64(H)x128(V)为准进行说明

H:Horizontal(横),即横向为64个像素点

V:Vertical(竖),即竖向为128个像素点

SH1107可参考以下的显示地址列表:

ac7cf00b0bd62ed771595cdb8e9a0dfd.png

① SH1107具有16页即page0-page15,每一页都为8行总共128行,也就是Seg0-Seg127

② SH1107具有128列,即Column0-Column127,也就是0-7F

这里使用的设置内存地址模式命令(Set memory addressing mode)为0x20,即页地址模式。页地址模式是指列写入数据后,列地址的指针会自动加1,如果列地址指针到达终止地址(0x7F)后,列地址指针将会返回到起始地址(0x00),但是页地址指针不会改变,如果需要访问下一页的内容,我们需要手动设置下一页的页地址和列地址,所以此模式下是OLED是一页一页刷新显示的,命令格式如下图:

fe3b1b4391ac4953e33a84abb95aeaac.png


2、这里我所使用的液晶屏以16页、64列为准,具体可参考下图的实物显示位置图

① OLED屏上每一行和每一列的显示方向,下图白色指标为行(H)的方向,一行为64个点,红色指标为列(V)的方向,一列为128个点,如下图:

11286fdfc416093a657b1dab97b3b238.png

② OLED屏对应的全部显示地址列表,16页对应page0-page15,64列对应col0-col63,如下图:

dd70e97fc8f491210ef573dfff45ff42.png

③ OLED屏对应的8192(64*128)个像素点,每一页里每一列都为D0-D7的8个点,程序里点亮的话也是8位数据传输,如下图:

f3c1aeaf5b98f4e4198c5205f71c1cb4.png

二、相关代码

1、在对应的页和列写数据

OLED_WR_Byte(0xb0,OLED_CMD);      // 设置页地址
OLED_WR_Byte(0x0f,OLED_CMD);      // 设置显示的列的低地址
OLED_WR_Byte(0x10,OLED_CMD);      // 设置显示的列的高地址
OLED_WR_Byte(0xff,OLED_DATA); 

在第一页的第16列写入全高电平,也就是将第16列的D7-D0写入11111111,将这八位对应的像素点全点亮,如下图(图1为OLED屏第16列被点亮的八个点,图2红框是对应的显示地址列表里的第16列):

5906e23a9809d4c3fc20730e6d55eff0.png
图1

ad5dc51e83a98991481350e3ad57947c.png
图2

① 程序OLED_WR_Byte (0xb0,OLED_CMD)的0xb0是设置页的地址,格式是根据设置页地址命令(Set Page Address)进行编写,该命令格式高四位的1011是固定的,而低四位是根据SH1107的16个页(00H-0FH)进行改变,第一页为0,所以传送的是0xb0,命令如下:

c50ce1f57dbf769bed8e87adb24fb4fe.png

这里需要注意,列地址范围是00H-3FH,但是在发送命令的时候需要将列地址的高四位和低四位分开进行发送,程序里面设置的是0FH,即第16列。

③ 程序OLED_WR_Byte (0x0f,OLED_CMD)的0x0f是设置列的低地址,格式是根据设置列低地址(Set Column Address 4 Lower Bits)进行编写,该命令格式高四位的0000是固定的,而低四位则需要将程序指定的第16列的列地址0x0f(0000

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值