找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 41191|回复: 62
收起左侧

51单片机OLED12864 I2C接口使用教程 含注释详细的源代码

  [复制链接]
ID:295986 发表于 2018-3-24 13:09 | 显示全部楼层 |阅读模式
OLED12864_I2C接口使用教程_51单片机
       现在能买到的OLED12864显示屏大多为SPI和I2C接口的,I2C通信协议只需要两条总线就可以进行通信,下面介绍一下如何用51单片机使用I2C接口的OLED12864。

       首先介绍一下I2C通信协议,I2C(Inter-Integrated Circuit)字面上的意思是集成电路之间,它其实是I2CBus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。I2C的正确读法为I平方C("I-squared-C")。
       I2C只使用两条双向漏极开路(Open Drain)(串行数据(SDA)及串行时钟频率(SCL))总线,且利用上拉电阻将两条总线的电位上拉。I2C允许相当大的工作电压范围,但典型的电压准位为+3.3V或+5V。
       I2C的参考设计使用一个7比特长度的地址空间但保留了16个地址,所以在一组总线最多可和112个节点通信[a]。常见的I2C总线依传输速率的不同而有不同的模式:标准模式(100 Kbit/s)、低速模式(10 Kbit/s),但时钟频率可被允许下降至零,这代表可以暂停通信。而新一代的I2C总线可以和更多的节点(支持10比特长度的地址空间)以更快的速率通信:快速模式(400 Kbit/s)、高速模式(3.4 Mbit/s)。
       我们在51单片机中使用I2C通信协议的时候,需要编写程序去模拟I2C总线的通信,详细的I2C通信协议的介绍可以参考:http://www.51hei.com/bbs/dpj-110328-1.html
       对于I2C通信协议,需要补充的一点是:在实际通信传输数据时,SCL总线拉高的时间只要大于1.5μs都能够正常传输数据。
       OLED12864的裸屏是由SSD1306驱动的,I2C接口的OLED12864模块对外一共有4个接口,从左到右分别是GND(接地)、VCC(电源正极,可加3.3V,也可加5V)、SCL(时钟总线)、SDA(数据总线):

Oled_12864_1

Oled_12864_1


       模块背面的IIC ADRESSSELECT表示该模块在I2C通信作为从机时的地址,当中间的脚用电阻和左边接起来时,地址为0x78,当和右边接起来时,地址为0x7A。

Oled_12864_2

Oled_12864_2


       SSD1306的I2C总线数据格式,可以看出,往OLED12864写数据时,先发送一个起始信号,接着发送从机地址,从机地址带有读写位(低电平为写),之后就可以发送指令或数据。在发送指令或数据之前,一般都需要发送一个控制字节,如图,控制字节的最高位为连续位(如果连续位为0,接下来发送的信息只能包含数据字节),次高位为数据/指令选择位(该位声明接下来发送的是数据还是指令,0为指令,1为数据),控制字节的低六位为0。可以在一个声明连续发送数据的控制字节后面跟上多个数据字节。

Data Format.png
作者:Ace
转载请注明作者,谢谢!

0.png
发现直接贴代码有问题,,所以就把源代码作为附件传上来。
Oled12864_SRC.rar (39.86 KB, 下载次数: 842)

评分

参与人数 2黑币 +10 收起 理由
123sada123 + 5 很给力!
任来疯 + 5 很给力!

查看全部评分

回复

使用道具 举报

ID:375003 发表于 2018-7-28 01:15 | 显示全部楼层
你的东西搞得我好累啊.好不容易才搞好了.看看我弄的效果,有图有真象
IMG_0193.JPG

OLED12864.zip

74.58 KB, 下载次数: 398, 下载积分: 黑币 -5

评分

参与人数 1黑币 +90 收起 理由
admin + 90 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:6428 发表于 2018-4-16 05:17 来自手机 | 显示全部楼层
不错,可以参考,看能不能搞出svr程序
回复

使用道具 举报

ID:374655 发表于 2018-7-19 10:54 | 显示全部楼层
好像很有趣,想下载看看
回复

使用道具 举报

ID:374655 发表于 2018-7-24 09:41 | 显示全部楼层
可不可以在程序里建一个字库
回复

使用道具 举报

ID:416136 发表于 2018-10-27 10:11 来自手机 | 显示全部楼层
guangshi_wq 发表于 2018-7-28 01:15
你的东西搞得我好累啊.好不容易才搞好了.看看我弄的效果,有图有真象

确实不错,找了超长时间的资料。
回复

使用道具 举报

ID:446095 发表于 2018-12-14 00:45 | 显示全部楼层
真透彻的资料
回复

使用道具 举报

ID:454947 发表于 2018-12-25 22:16 来自手机 | 显示全部楼层
很不错的程序
回复

使用道具 举报

ID:255919 发表于 2018-12-26 16:42 | 显示全部楼层
很有帮助
回复

使用道具 举报

ID:255919 发表于 2018-12-29 15:23 | 显示全部楼层
好东西,好好学习
回复

使用道具 举报

ID:198608 发表于 2018-12-29 19:21 | 显示全部楼层
pavlos96 发表于 2018-7-24 09:41
可不可以在程序里建一个字库

可以的,我就在用
回复

使用道具 举报

ID:488454 发表于 2019-3-11 12:42 | 显示全部楼层
清楚,可以
回复

使用道具 举报

ID:499534 发表于 2019-3-27 22:40 | 显示全部楼层
厉害了,老哥
回复

使用道具 举报

ID:425673 发表于 2019-4-3 11:25 | 显示全部楼层
顶一下!
回复

使用道具 举报

ID:158956 发表于 2019-4-3 17:03 | 显示全部楼层
顶一下,问一下为什么没有主函数
回复

使用道具 举报

ID:509145 发表于 2019-4-10 21:03 | 显示全部楼层
很给力!
回复

使用道具 举报

ID:509260 发表于 2019-4-10 23:02 | 显示全部楼层
很好的东西,学到了
回复

使用道具 举报

ID:509260 发表于 2019-4-10 23:02 | 显示全部楼层
看了之后感觉很有用,给力
回复

使用道具 举报

ID:371331 发表于 2019-4-15 00:15 | 显示全部楼层
谢谢老哥。棒
回复

使用道具 举报

ID:73182 发表于 2019-4-15 10:21 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:480881 发表于 2019-4-15 12:59 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:520617 发表于 2019-4-24 16:51 | 显示全部楼层
很给力
回复

使用道具 举报

ID:70609 发表于 2019-5-1 16:34 | 显示全部楼层
谢谢楼主分享好东西
回复

使用道具 举报

ID:556829 发表于 2019-6-6 21:06 | 显示全部楼层
可以可以
回复

使用道具 举报

ID:560621 发表于 2019-6-13 01:23 | 显示全部楼层
代码注释很全,也很规范,值得学习
回复

使用道具 举报

ID:566562 发表于 2019-6-19 10:58 | 显示全部楼层
非常的好
回复

使用道具 举报

ID:400651 发表于 2019-7-14 12:17 来自手机 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

ID:480106 发表于 2019-7-17 16:08 | 显示全部楼层
非常好,感谢LZ
回复

使用道具 举报

ID:382507 发表于 2019-7-18 16:45 | 显示全部楼层
谢谢分享,前来学习。
回复

使用道具 举报

ID:485786 发表于 2019-7-24 17:04 来自手机 | 显示全部楼层
厉害了,大佬
回复

使用道具 举报

ID:164385 发表于 2019-8-25 16:40 | 显示全部楼层
不错,不错,可以参考的代码
回复

使用道具 举报

ID:595771 发表于 2019-8-26 21:51 | 显示全部楼层
不太明白为什么第一行是黄色的 后面的是蓝色呢 这个是如何设置的啊
回复

使用道具 举报

ID:605328 发表于 2019-8-30 00:35 | 显示全部楼层
大佬,厉害了,感谢分享
回复

使用道具 举报

ID:604177 发表于 2019-8-30 21:43 | 显示全部楼层
为什么65行data要++呢?(小白一个
回复

使用道具 举报

ID:599561 发表于 2019-8-31 00:31 | 显示全部楼层
谢谢分享,不错不错
回复

使用道具 举报

ID:149799 发表于 2019-8-31 09:28 | 显示全部楼层
代码注释很全,也很规范,值得学习,确实很详细的分析了,有这样的教程,是不是学习更给力。
回复

使用道具 举报

ID:282095 发表于 2019-8-31 17:01 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

ID:136392 发表于 2019-9-23 16:47 | 显示全部楼层
想把这个OLED玩好没这么简单,以前用过LCD1602/LCD12864。现在学习STM32,看了正点原子的视频,感觉视频里讲的只是一个点。程序为什么要这样写。怎么写。把每个函数都写一遍,都能讲很久。感觉正点原子的原子和视频有点坑了。或着是我学艺不精。
回复

使用道具 举报

ID:475957 发表于 2019-10-21 10:01 | 显示全部楼层
发现了学单片机一定要来51hei,这里的资料真棒。
回复

使用道具 举报

ID:617176 发表于 2019-10-25 10:24 | 显示全部楼层

SH1106 V2.3.pdf

736.37 KB, 下载次数: 26, 下载积分: 黑币 -5

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表