在日常的小项目制作中我们经常会接触到OLED液晶显示器,本文介绍0.96寸液晶显示器的基本原理,辅助我们后续的小项目开发
OLED被称为有机激光二极管,也被称为有机激光显示,OLED采用有机材料涂层和玻璃基板,当有电流通过时有机材料就会发光,所以OLED具有自发光特性,不需要背光源(只上电不会亮的,需要完整的程序驱动)
下图所示是我们项目中常用的0.96寸的OLED液晶显示屏(图片来源于网络),其有4pin(IIC接口)和7pin(SPI接口)两种,它的显示区域是128X64的点阵,每个点都可以自己独立发光,所以不需要背光,可以显示汉字、ASIIC码、图案等,分别对其进行介绍
0.96寸屏幕具有以下特点:
(1)0.96 寸 OLED 有黄蓝,白,蓝三种颜色可选;其中黄蓝是屏上 1/4 部分为黄光,下 3/4 为蓝;而且是固定区域显示固定颜色,颜色和显示区域均不能修改;白光则为纯白,也就是黑底白字;蓝色则为纯蓝,也就是黑底蓝字。
(2)分辨率为 128*64
(3)多种接口方式;OLED 裸屏总共种接口包括:6800、8080 两种并行接口方式、3 线或 4 线的串行 SPI 接口方式、 IIC 接口方式(只需要 2 根线就可以控制 OLED 了),这五种接口是通过屏上的 BS0~BS2 来配置的。
大家可以看出来;模块的通信接口是通过 BS0,BS1,BS2 三个管脚来配置的。
(4)本屏开发了两种接口的 Demo 板,接口分别为七针的 SPI/IIC 兼容模块,四针的IIC 模块。两种模块都很方便使用;希望大家根据实际需求来选择不同的模块。
4pin-IIC接口
接口类型 | IIC接口 |
---|---|
管脚定义 | VCC、GND、SCL、SDA |
VCC | 电源接口(电源3.3V-5V) |
GND | 电源地 |
SCL | IIC时钟线 |
SDA | IIC数据线 |
7pin-IIC接口
接口类型 | IIC接口 |
---|---|
VCC | 电源接口(电源3.3V-5V) |
GND | 电源地 |
D0 | SPI:时钟线 -//- IIC:时钟 |
D1 | SPI:数据线 -//- IIC:数据 |
RES | ILED复位,OLED在上电后需要一次复位(低电平复位) |
DC | SPI数据/命令选择脚 |
CS | OLED SPI片选,低电平有效,不用时接地 |
大家在使用的时候一定注意,如下图所示。在 SPI 接口中 R1,R2,R8 三个电阻是不焊接的,如果大家想用 IIC 接口的话需要将 R3 换到 R1 上,R8 可以焊接也可不焊接
对于七针OLED模块特别是想用 IIC 接口的朋友们,在 IIC 接口中需要将 RES 接高电平,可以与 VCC 对接,使 OLED 复位脚一直操持高电平,也就是不复位的状态;同时需要将 DC,CS 接电源地;此时 IIC 通信中只需要 GND ,VCC,D0(时钟信号),D1(数据信号)四根线了。如果大家感觉这样比较麻烦也可直接选用四针的 IIC 接口模块
0.96 寸OLED 原理图设计注意事项
SPI 接口设计
在 SPI 接口中需保证 BS0,BS1,BS2 全为 0,也就是接地;所以在接口配置电阻中R1,R2 不焊接,R3,R4 焊接就可以了;同时电阻 R8 一定不要焊接,否则会出现不稳定情况。附加说明原理图中的662K为3.3v的稳压管,如果直接用 3.3v供电的话可以省去662k
IIC 接口设计
在 IIC 接口中需要将 BS1 配置为 1,BS0 为 0;所以 R1,R4 焊接,R2,R3 不焊接,R8 可焊接也可不焊接
程序说明
很多新手工程师或是学生比较在意在某个处理器下的程序;其实这个没有必要;大家可以打开几个不同平台下的程序,会发同一通信接口类型下的程序内部的操作函数是完全一样的,只是管脚定义方式不同,还有一个就是需要包含所用平台的头文件;其它的其实都不用作修改;因为其它的函数均是对 OLED 屏的操作;与所用的处理器平台没有关系
Bmp.h 是存放的图片数据,也就是大家对一 BMP 图片取模的数据
Oledfont.H 主要是存放的字库数据,包含常用的字符和用户自己所取模的中文
Oled.c 主要是函数的操作
取模说明
取模主要有三种一是图片、字符、汉字三种,取的原理是一样的
(1)图片取模
打开 PCtoLCD2002.exe 软件
打开手机桌面图片
模式设置
生成 BMP 图像字模
(2)汉字字模取模
其方法与图像的相似, 打开软件以后,如下操作
之后操作与图像取模操作一样