您的位置:首页 > 其它

SSD1306驱动的0.91寸OLED屏上手(128*32)

2020-04-20 12:53 197 查看

附帧驱动代码

  花了几天时间去看驱动手册和IIC协议,终于把程序写出来了。到上手的时候,本以为128x32像素的是只接入了COM0~COM31,结果是接入了全部COM脚但只用一半(COM反置之后可以用另一半),一个PAGE的一列SEG里只显示4个像素(原本是8个),搞得我又去写了个程序转换数据格式。。。
  不过这么搞也有个好处,一帧数据可以通过切换COM反置来达成显示两帧。通过COM反置命令可以在一帧里的两半数据里自由切换,达成“显示隐藏数据”的效果。
  随后会发布介绍IIC和SSD1306的文章,后面打算买个128x64的7Pin SPI版,熟悉下STC12C5A的SPI模块,然后联合ESP8266来做一个WIFI无线显示。


  点阵数据由PCtoLCD2002取模

帧驱动代码(C51)

void OLED_Frame(unsigned char P[8][128])
{
unsigned char i,j;

OLED_WriteCMD(0X20);	// 设置GDDRAM寻址模式
OLED_WriteCMD(0X00);	// 水平寻址模式
OLED_WriteCMD(0X21);	// 设置列起始和结束地址
OLED_WriteCMD(0X00);	// 列起始地址 0
OLED_WriteCMD(0X7F);	// 列终止地址 127
OLED_WriteCMD(0X22);	// 设置页起始和结束地址
OLED_WriteCMD(0X00);	// 页起始地址 0
OLED_WriteCMD(0X07);	// 页终止地址 7

for(i=0; i<8; i++)		// 写入一帧数据
for(j=0; j<128; j++)
OLED_WriteData(P[i][j]);
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
DaveoCKII 发布了5 篇原创文章 · 获赞 2 · 访问量 1070 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: