利用51单片机+0.96寸iic接口oled显示图片或动图

利用51单片机+0.96寸iic接口oled显示图片或动图

前言:之前讲过如何使用oled显示数字以及字符,但并未讲述如何显示BMP格式的图片,

这篇将在之前的基础上加以封装一些函数用来显示图片

硬件电路:

  • 1.led接51单片机的P2^0,点亮led用来提示系统正常运行中
  • 2.oled共VCC,GND,SCL,SDA四个引脚分别接入单片机VCC,GND,P1^7,P1^6。

1.封装iic操作函数:

用到的iic操作函数:

1.1 起始时序:void I2cStart(void);

1.2 终止时序:void I2cStop(void);

1.3 iic写入一字节数据:unsigned char I2cSendByte(unsigned char dat);

具体是如何封装的可查看https://linxinloningg.space/archives/51%E5%8D%95%E7%89%87%E6%9C%BAoledds18b20%E6%A3%80%E6%B5%8B%E5%B9%B6%E6%98%BE%E7%A4%BA%E6%B8%A9%E5%BA%A6%E7%AC%AC%E4%B8%80%E7%AF%87%E5%88%9D%E5%A7%8B%E5%8C%96oled%E6%98%BE%E7%A4%BA](https://linxinloningg.space/archives/51单片机oledds18b20检测并显示温度第一篇初始化oled显示)

上面链接有详细的iic操作函数的封装分析,以及下面oled操作函数封装的分析

2.封装oled操作函数:

用到的oled操作函数:

2.1 oled写命令:void oled_Write_cmd(unsigned char cmd);

2.2 oled写数据:void oled_Write_data(unsigned char dat);

2.3 oled清屏函数:void oled_clear(void);

2.4 oled初始化函数:void oled_initial(void);

扫描二维码关注公众号,回复: 11540505 查看本文章

3.封装显示图片的操作函数:

3.1 设立图片显示位置的函数: void oled_setpos(unsigned char x,unsigned char y);

3.2 图片显示函数:void oled_showpictues(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char BMP[]);

其中设立图片显示位置的函数oled_setpos已经包含在图片显示函数 oled_showpictues中,我们只要在主函数中调用oled_showpictues即可;

其中x0,y0为初始坐标:一般为(0,0)

x1,y1为终止坐标:可以看做是取模的图片的大小;一般填入(128,64)或者(64,64)

(由于0.96oled的分辨率为128*64,所以取模方式主要有两种:64*64和128*64,分别是半屏显示和全屏显示)

在这里插入图片描述
(这是半屏显示)

unsigned char y1,unsigned char BMP[]是取模出来得图片数据。

4.图片取模

4.1 修改图片的格式以及大小:

例:在这里插入图片描述

选择一张图片右键选择打开方式→以画图方式打开→重新调整大小(选项在大概左上角位置)→点击像素→取消勾选保持纵横比→修改宽高为128*64或者为64*64;

在这里插入图片描述

最后选择另存为→以bmp格式保存。

在这里插入图片描述

4.2 利用Img2Lcd.exe将以上修改好的bmp图片进一步转换为二值化图片

在这里插入图片描述

注意如果你的图片格式大小是128*64,软件中就要选择128*64,如果是64*64,则为64*64,然后通过调节亮度和对比度是图片更清晰

4.3 利用取模工具PCtoLCD2002.exe将图片数据取模出来

打开软件时点击模式选择选择图片模式,点击选项配置成下图

在这里插入图片描述

然后打开Img2Lcd.exe生成的bmp图片

在这里插入图片描述

点击生成字模,将字模数据复制进数组即可。

最后附上源代码地址:https://github.com/linxinloningg/51-Singlemicrocomputer-oled

相关源码以及用到的软件都在链接上
同时欢迎大家来我的空间踩踩
https://linxinloningg.space/
如果觉得对你有所帮助请给我个赞吧,这是对我创作的鼓励

猜你喜欢

转载自blog.csdn.net/linxinloningg/article/details/107710686