一、汉字取模 我们需要先有一个取模软件,我这里演示的是PCtoLCD2002,实际为白嫖软件。 二、使用步骤 1.新建文档 点击文件→新建 之后会弹出这个窗口,输入你想要的尺寸。这里我采取12*12的格式。 之后在模式中选择字符模式 字宽字高调节为12*12 具体尺寸看最开始新建的尺寸 截图时我并没有修改 之后点击选项,弹出这个 在我画蓝线的位置进行修改,点阵索引根据刚才自己设置的规格设置 这是我设置好后的样子 之后就可以在中间的框里输入你想要显示的字 字模就已经取好了。 2.写入程序 找到程序的字符库数组 unsigned char Hzk5[16][12]={ {0x02,0x04,0x80,0x20,0x18,0x87,0x74,0x84,0x04,0x14,0x0C,0x00}, {0x02,0x01,0x08,0x04,0x02,0x01,0x00,0x01,0x02,0x04,0x08,0x00}, {0x48,0x2A,0x98,0x7F,0x28,0x4A,0x10,0xEF,0x08,0xF8,0x08,0x00}, {0x09,0x0B,0x05,0x05,0x0B,0x00,0x08,0x05,0x02,0x05,0x08,0x00}, {0xFE,0x22,0x22,0xFE,0x00,0x08,0x48,0x88,0x08,0xFF,0x08,0x00}, {0x07,0x02,0x02,0x07,0x00,0x00,0x00,0x09,0x08,0x0F,0x00,0x00}, {0x00,0xF9,0x02,0xF8,0x49,0x49,0x49,0x49,0xF9,0x01,0xFF,0x00}, {0x00,0x0F,0x00,0x03,0x02,0x02,0x02,0x02,0x0B,0x08,0x0F,0x00}, {0x20,0x10,0x2C,0x23,0xE0,0x20,0x20,0x23,0xEC,0x10,0x20,0x00}, {0x00,0x08,0x04,0x03,0x00,0x08,0x08,0x08,0x07,0x00,0x00,0x00}, {0x12,0xD2,0xFE,0x91,0x40,0x38,0x00,0xFF,0x00,0x04,0xB8,0x00}, {0x01,0x00,0x0F,0x00,0x08,0x08,0x04,0x04,0x02,0x01,0x00,0x00}, {0x62,0x22,0xBA,0xAA,0xAA,0xAB,0x6A,0x6A,0x3A,0x22,0x62,0x00}, {0x00,0x08,0x0A,0x0A,0x0A,0x07,0x0D,0x0D,0x09,0x08,0x0C,0x00}, {0x62,0x22,0xBA,0xAA,0xAA,0xAB,0x6A,0x6A,0x3A,0x22,0x62,0x00}, {0x00,0x08,0x0A,0x0A,0x0A,0x07,0x0D,0x0D,0x09,0x08,0x0C,0x00}, }; 将转换好的字模数组替换到程序源码里的字符库内,一定注意不同尺寸的字符库不是一个数组。并且这里每一个字的数组被分为了两个,所以注意修改数组定义的第一个参数。 之后再在显示函数中使用就可以了,这里一定要注意字对应的x,y坐标,往往两个字之间取2个单位作为间隔。 下面给出我的效果 三、显示图片 照片格式转换 这里需要将我们想要转换的照片进行格式转化,并且转换成像素为128*64以内的大小。 这里我使用的是Img2lcd(提取码:rw4k) 如图 点击左上角的 “打开”,选择我们想要进行转换的照片,将 **“最大宽度和高度”**设置为128和64来匹配我们的oled屏幕,上面的扫描模式不需要我们进行设置,因为 **“输出数据类型”**我们设置的是BMP格式,不同的扫描模式没有区别。 我们还可以看到右侧的图片预览图,通过调整下方的亮度与对比度来调整线条。 最后我们点击上方的保存即可。 BMP图片转换为代码 这里我们还是使用PCtoLCD2002取模软件。 点击那个文件夹图标,选择上我们的BMP照片,之后点击选项,像汉字取模一样进行设置。 生成字模之后,我们需要注意字宽,字高旁边有个图像大小,这里的大小我们需要记住,后面写函数的时候需要用到。 代码 在代码中我们先定义一个数组保存我们的这个字模数据,之后调用库里的绘图函数。 void OLED_DrawBMP(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char BMP[]) { unsigned int j=0; unsigned char x,y; if(y1%8==0) y = y1/8; else y = y1/8 + 1; for(y=y0;y OLED_SetPos(y,x0); for(x=x0;x WriteDat(BMP[j++]); } 可以看到这个函数入口参数有五个,第一个和第二个为一对,代表图片左上角坐标,第三个和第二个为一对,代表右下角坐标,这里的y坐标代表的是第几页,所以参数范围为0-8,根据y在哪一页进行写函数,第五个参数为数组指针,将这些参数正确编写之后就可以让oled进行图片的显示。 下面是样例: 但是因为图片分辨率太小,导致显示效果不佳,但是还是大致能看出效果的。 根据两个图片的延迟、切换,就能够实现gif的显示,还需要大家自己进行尝试了。 总结 OLED显示可以很有趣味显示一些自己想要的东西,这篇文章仅供参考。 |
更多回帖