我是靠谱客的博主 平常泥猴桃,最近开发中收集的这篇文章主要介绍OLED,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简介OLED
分辨率为:128*64
多种接口方式,提供 8086 并口、6800 并口、4 线 SPI 和 IIC 等五种接口方式
在这里插入图片描述
使用说明:
CS:OLED 片选信号。
WR(RW):向 OLED 写入数据。
RD:从 OLED 读取数据。
D[7:0]:8 位双向数据线。
RST(RES):硬复位 OLED。
DC(RS):命令/数据标志(0,读写命令;1,读写数据)。
模块的 8080 并口读/写的过程为:先根据要写入/读取的数据的类型,设置 DC 为高(数
据)/低(命令),然后拉低片选,选中 SSD1306,接着我们根据是读数据,还是要写数据置
RD/WR 为低,然后:在 RD 的上升沿, 使数据锁存到数据线(D[7:0])上;

8080写时序:CS拉低,RD拉高,DC控制是写数据还是命令,WR在上升沿时写入数据
在这里插入图片描述
读时序
在这里插入图片描述
在读取真正的数据之前,由一个的假读的过程。这里的假读,其实就是第一个读到的字节丢弃不要,从第二个开始,才是我们真正要读的数据。

一个典型的读显存的时序图在这里插入图片描述
简介:显存与指令
SSD1306 的显存总共为 12864bit 大小,SSD1306 将这些显存分为了 8 页
在这里插入图片描述
在单片机的内部建立一个 OLED 的 GRAM(需要 128
8 个字节),在每次修改的时候,只是修改单片机上的 GRAM(实际上就是 SRAM),在修改完了之后,一次性把单片机内部的 GRAM 写入到 OLED 的 GRAM在这里插入图片描述
写个字节函数
在这里插入图片描述

指令
在这里插入图片描述
在这里插入图片描述
初始化流程
在这里插入图片描述
画点函数在这里插入图片描述
在这里插入图片描述
显示字符函数,OLED_ShowChar
//在指定位置显示一个字符,包括部分字符
//x:0~127
//y:0~63
//mode:0,反白显示;1,正常显示
//size:选择字体 12/16/24
void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 size,u8 mode)
{
u8 temp,t,t1;
u8 y0=y;
u8 csize=(size/8+((size%8)?1:0))*(size/2);
//得到字体一个字符对应点阵集所占的字节数
chr=chr-’ ';//得到偏移后的值
for(t=0;t<csize;t++)
{
if(size12)temp=asc2_1206[chr][t]; //调用 1206 字体
else if(size
16)temp=asc2_1608[chr][t]; //调用 1608 字体
else if(size==24)temp=asc2_2412[chr][t]; //调用 2412 字体
else return; //没有的字库
for(t1=0;t1<8;t1++)
{
if(temp&0x80)OLED_DrawPoint(x,y,mode);
else OLED_DrawPoint(x,y,!mode);
temp<<=1;
y++;
if((y-y0)==size)
{
y=y0;
x++;
break;
}
}
}
}
按照从上到小,从左到右的取模方式来编写的,先得到最高位,然后判断是写 1 还是 0,画点;接着读第二位,如此循环,直到一个字符的点阵全部取完为止,这其中涉及到列地址和行地址的自增

最后

以上就是平常泥猴桃为你收集整理的OLED的全部内容,希望文章能够帮你解决OLED所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部