利用51单片机+0.96寸iic接口oled显示图片或动图 |
您所在的位置:网站首页 › oled显示动图 › 利用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); 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格式保存。 注意如果你的图片格式大小是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/ 如果觉得对你有所帮助请给我个赞吧,这是对我创作的鼓励 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |