如何获取I2C OLED的例程,并搭建OLED仿真电路图

LEDs

382人已加入

描述

终于可以坐在电脑前开始写订阅号~闲话少说,出发吧。

TALK IS CHEAP, SHOW  ME  THE  CODE.

展示也是一种能力。单片机的展示方式多种多样, LED,蜂鸣器,LCD,OLED,串口。从今天开始,OLED将成为我们的主角,它为我们展示文字(英文,中文),显示温度(数字),呈现菜单。 

目的地

我们旨在用20%的时间尝试把OLED用起来。具体来说,可以用OLED显示中英文,显示数字,显示菜单等内容。至于高级的显示,如动画,图片等,则不在我们的考虑范围。当然,至于OLED底层是如何工作的,我们也不关心,不在意。除非以后立志要从事嵌入式驱动工程师。

OLED类型I2C OLED。SPI OLED不在考虑范围。

初识OLED

OLED屏应用广泛,常用于智能手表、手环的显示屏。特点是屏幕小,可以显示中英文、图片等。 下图是I2C OLED,规格是0.96寸,128*64。

单片机

引脚:

- VCC:供电输入,3.3~5V。以厂家资料为准。

- GND:地

- SCL:I2C 时钟输入,由单片机提供。

- SDA:I2C数据线,双向。

淘宝上有很多店铺有卖~价格一般在15元左右。商家提供例程和资料,我们也可以基于这些例程快速入门。下面是某商家提供的资料链接:

资料下载:https://pan.baidu.com/s/1usqnK1rJ3oS4gmUtwz1Oaw

提取码:3mfc

0.96寸资料下载 链接: https://pan.baidu.com/s/1b2Z3_rReJ3ioNQTKsHlj5A?pwd=bsss

提取码: bsss

第一个链接下来后解压:

单片机

资料丰富。 进入例程文件夹

单片机

不错。找到一个C51例程:

单片机

使用KEIL 5 C51打开工程,成功编译。

单片机

单片机

手头没有I2C OLED模块怎么办? 买一块,别介。先试一试看Protues 8.6有没有OLED仿真元件吧。

运行Protues 8.6, 看到Start下面的Open Sample了吗?点它。

单片机

在Keywords下搜索ssd1306,选择第一个搜索结果,单击打开按钮。ssd1306是OLED的驱动芯片。注意,这里不要搜索OLED。

单片机

单击开始仿真,可以看到OLED显示的信息如下。由于这个sample是面向Arduino平台的。直接复制OLED相关的电路到51仿真电路就可以。懒一点就另存仿真电路到一个新文件,把左侧Arduino相关的电路都删除,在此基础上设计51仿真电路即可。我们选择懒的方法。

单片机

下图是删除了Arduino单片机,增加了AT89C51单片机。同时对OLED模块的引脚进行如下处理:

RES#引脚直接接VCC

D0的标号改为SCL,D1/D2的标号改为SDA。

单片机

装载编译好的商家例程OLED.hex,单击开始仿真~~~等待,等待,花儿都谢了,OLED怎么不显示内容。哪里不对劲吗?

是的。I2C通信中分主机(Master)和从机(Slave)。I2C总线上只能有一个主机,可以有多个从机。只有主机才能发起通信。主机通过叫号(号码就是从机地址,开始通信的第一个命令里必须包含)来选择要通信的从机。

OLED地址在驱动LQ12864.h的两个函数里使用到,如下图所示。

单片机

关于I2C OLED地址,以下两篇博文总结得很好,快去看看吧。

0.96寸OLED显示屏 IIC接口(SSD1306) - Gimiracle - 博客园 (cnblogs.com)

OLED显示屏I2C接口_哈士奇上蔚的博客-CSDN博客_oled i2c

由于仿真图里OLED的D/C#接高电平。所以I2C从机地址是0x7A,而不是驱动代码里的0x78。我们面临了两个选择:一是改电路,即把D/C#接地;二是修改代码,把0x78改为0x7A。改代码容易,哈哈。

#define SLAVE_ADDRESS  0x7A   // 0x78

单片机

为什么定义宏??~可维护性。 假设OLED实物买回来,地址是0x78。我们改一个地方就可以。

在Keil5中重新编译程序,在Protues中重启仿真。不错不错,可以显示了。自己去研究例程的main函数代码吧。

单片机

结束语

今天内容主要是教初学者如何获取I2C OLED的例程,并在Proteus里搭建OLED仿真电路图,并成功把例程跑出来。对于51单片机,其实网上有很多很多的例程和学习资料,但是如何找到这些资料,从中抓取自己需要的内容,并应用于自己的项目,这是一个软实力。有时候,我们并不需要理解每一行代码的意义,我们只要理解各个文件/函数的作用,并正确调用,就可以实现我们的功能。

编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
lyl420819 2023-04-03
0 回复 举报
学习,谢谢分享。 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分