stc89c52rc转移到面包板,使用oled屏

1、芯片转移到面包板上:

stc89c52引脚图:
在这里插入图片描述
面包板的导通:
在这里插入图片描述

stc89c52芯片接在插在面包板上,每一排引脚在面包板的一边。

按照芯片的引脚图,需要接线的有,VCC接高电平,VSS接低电平,XTAL1XTAL2接晶振,脱离了C51的最小系统板,需要将EA接上高电平,模块才能运作。其余的就是下载器的5VGND接在面包板两侧,下载器的RXD接芯片的TXD,下载器的TXD接芯片的RXD,然后顺着之前的流水灯程序,在p10~p17接四个二极管。
在这里插入图片描述
下载程序和之前C51一样,使用stc下载器下载:
在这里插入图片描述
5V和接地可以使用三节7号电池替换下载器的供电:
在这里插入图片描述

2、oled屏:
(1)接线:

我买的是4针脚的oled屏,7针脚的也买了,后面再捣鼓一下。

oled屏资料:https://pan.baidu.com/s/1mH0SXCwlmXdry7x5uQJhZQ
提取码:elq8

里面有一些现成的源码和生成好的hex文件。

两种接线方式对应的程序驱动也不同:

SPI接口:

3、4线SPI,通过背后的电阻来选择。

  • GND:电源地
  • VCC2.2V~5.5V
  • SCL(D0)CLK 时钟 (高电平2.2V~5.5V
  • SDA(D1):MOSI 数据(高电平2.2V~5.5V
  • RST:复位(高电平2.2V~5.5V
  • D/C:数据/命令(高电平2.2V~5.5V
  • CS:接地

例程中指示的接线是:

  • GND 电源地
  • VCC5V3.3v电源
  • SCL P1^0
  • SDA P1^1
  • RESP12
  • DCP13
  • CS 接地
IIC 接口:
  • GND: 电源地
  • VCC2.2V~5.5V
  • SCLCLK 时钟 (高电平 2.2V~5.5V
  • SDAMOSI 数据 (高电平 2.2V~5.5V

如果使用例程的代码或者hex文件,就是:(4针
SCLP1^3
SDAP1^2

下面的实验以IIC模式为例。

(2)取字模:

资料中有生成字模软件,配置直接按照文档中的来,像下面这样配置导出的字模才能用到程序中:
在这里插入图片描述

生成文字时,在模式中选择字符模式,然后可以在下面的框框中输入文字,点击生成字模,生成的字模是放到程序里面的,也可以点击上面的文本按钮导入文本,还可以设置字体等:(导出的字模可以看到是一个一个的16进制数,转为16位的二进制的0、1后,应该就是每16个像素点的状态是亮还是暗)
在这里插入图片描述

使用图片时,就选择图形模式,然后点击最左边的白色文本按钮创建bmp,然后输入屏幕大小,比如我的oled屏是128*64,然后可以左键画图,右键擦除图案。第二个按钮可以用来导入bmp图像。完成后一样到处字模:
在这里插入图片描述
导入图片生成字模有限制条件,首先图片必须是bmp格式,其次图片只能有黑色和白色两种颜色,还有一点,图片不能太大,不然打开图片软件会卡住,支持的最大图片尺寸是128*64

一张图片想要导入进去可以进行以下操作:

  • 使用画图工具打开图片。
  • 文件->另存为,选择bmp图片,保存类型选择单色位图。
    在这里插入图片描述
    在这里插入图片描述
  • 打开另存后的图片,选择重新调整大小,图片设多大自定义,不要超过128*64就行了。(不要先调整大小再另存,那样像素太低,再另存线条会很少)
    在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

(3)字模添加到程序:

这里以iic接线方式进行烧写程序。

使用keil5,打开项目,项目地址为资料中V6.0_S13-IIC->例程->(03)C51例程(STC89C52),项目中就有一个已经生成的hex文件,仅做实验的话可以拿这个烧录。初次打开用到的头文件可能会显示感叹号,编译一下.c文件后就会消失。构建时可能会提示程序代码太长了,那是因为正版keil5就限制了你的代码长度,该怎么做就不用我说了吧,解决以后,project->clean target然后重新进行构建。

  • 显示图片:

显示图片的方法是:Draw_BMP(unsigned char x0, y0,x1, y1,unsigned char BMP[])(x0,y0)表示图片的左上角在屏幕上的坐标,(x1,y1)表示图片右下角在屏幕上的坐标,屏幕的划分为128*8(不是128*64,将纵长度除以8),等于竖直方向切成8块。看到主程序中的使用的方法为Draw_BMP(0,0,128,8,BMP2),即表示图片显示区域为整个屏幕,(0,0)是左上角,(128,8)是右下角,显示图片为字模BMP2

打开codeTab.h,里面里面就是已经添加好的字模,在这里添加一个新的图片字模,比如我刚刚添加的图片,就添加一个字模BMP3,为了适配屏幕,把生成字模的图片尺寸调整为128*64,这样就只要在(0,0)位置显示,就不需要去调整位置了:

unsigned char code BMP3[] =
{
//code C:\Users\jcy\Desktop\1.bmp(0)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x60,
0xB0,0x98,0xC8,0xCC,0xCC,0x44,0x44,0x44,0x44,0x44,0xC4,0xC4,0xCC,0x98,
0x30,0x30,0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x80,0xC0,0x00,0x00,0x00,0xE0,0x78,0x0C,0xFE,0xFF,
0xDF,0xFF,0x79,0x7F,0x07,0x03,0xC7,0xEC,0x0E,0x0E,0x0C,0x0C,0xCC,0xD8,
0x18,0x39,0xF3,0xE7,0xC6,0xFC,0x1F,0xFF,0x78,0xF0,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0E,0x3F,0xF7,0xC1,0x03,0x07,0x0F,0x1C,0x7F,0x40,0x40,
0x41,0x4F,0x7F,0x77,0x06,0x0E,0x0C,0x08,0x19,0x1D,0x14,0x1D,0x15,0x14,
0x13,0x11,0x10,0x1C,0xD9,0xDD,0x7F,0x7C,0x0E,0x07,0x00,0xFF,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0F,0x0C,0x18,0xF0,0x30,
0x30,0x30,0x30,0xF0,0x30,0xF0,0x3E,0x7E,0x7E,0x7E,0x7E,0x1E,0x76,0x5E,
0x4C,0x7C,0x74,0x04,0x04,0x80,0x81,0x03,0x03,0x06,0x0C,0x18,0x38,0xFF,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0F,0xFE,0x60,0x60,0x3C,0x0F,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x81,0x03,0x86,0xFC,0x38,0x70,
0x60,0xC0,0x83,0x0F,0x1C,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,
0x1C,0x0C,0x07,0x03,0x00,0x20,0x00,0x00,0x80,0xC0,0x40,0x70,0x18,0x08,
0x08,0x78,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x01,0x47,0x1D,0x79,0xE0,
0x00,0x00,0x00,0x01,0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x7C,
0x0F,0x03,0x00,0x00,0x00,0x00,0xC0,0xE0,0x3C,0x0F,0x03,0x01,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x03,0x0F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
0x03,0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x01,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x04,0x0C,0x0C,0x18,
0x18,0x30,0x30,0x3F,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,//C:\Users\jcy\Desktop\1.bmp0,

};

修改OLED12864.c中的代码,注释掉原来的显示两张图片的代码,并添加BMP3:

Draw_BMP(0,0,128,8,BMP2);
delay(8000);

编译构建完以后,将hex文件下载到芯片中,然后就可以刚刚这张图片看到已经显示在oled屏幕上面了:

在这里插入图片描述

  • 显示文字:

例程中的代码使用的字模的字宽是16的,再去字模软件上模拟一下确实16是显示效果比较好的,就不要去纠结改字宽了。

显示16*16点阵字符的代码在LQ12864.h中,方法为OLED_P16x16Ch(x,y,n),默认读取的F16x16数组。F16x16定义在codetab.h中,可以将生成的字模放到F16x16中,或者自建创建一个数组。

xy表示显示文字的横坐标和纵坐标,范围也是128*8N表示F16*16数组中的第几个字符(根据代码,每30个数组元素表示了一个字符,即表示显示哪30个数组元素,导出的字模一定要配置对了符合30一字符):
在这里插入图片描述
比如我将字符点阵改为:

unsigned char code F16x16[] = 	  	 
{  	   
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//空格0,
	
0x00,0xFE,0x02,0x22,0xDA,0x06,0x00,0xFC,0x04,0x04,0x04,0x04,0x04,0xFC,0x00,0x00,
0x00,0xFF,0x08,0x10,0x08,0x07,0x00,0xFF,0x41,0x41,0x41,0x41,0x41,0xFF,0x00,0x00,//阳1,

0x00,0xF8,0x08,0x08,0x0C,0xCA,0x49,0x48,0x48,0xC8,0x08,0x08,0x08,0xF8,0x00,0x00,
0x00,0xFF,0x00,0x00,0x00,0x1F,0x08,0x08,0x08,0x1F,0x00,0x40,0x80,0x7F,0x00,0x00,//向2,

0x08,0x08,0xE8,0x29,0x2E,0x28,0xE8,0x08,0x08,0xC8,0x0C,0x0B,0xE8,0x08,0x08,0x00,
0x00,0x00,0xFF,0x09,0x49,0x89,0x7F,0x00,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00,0x00,//前3,

0x00,0x02,0x0C,0xC0,0x00,0xF0,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0xF0,0x00,0x00,
0x02,0x02,0x7F,0x00,0x00,0x0F,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x0F,0x00,0x00,//冲4,
};

主程序中添加:

//水平方向连在一起的两个字符横坐标差值为`16`,竖直方向连在一起的两个字符纵坐标差值为`2`
OLED_P16x16Ch(0,0,1); //阳
OLED_P16x16Ch(16,2,2); //向
OLED_P16x16Ch(32,4,3); //前
OLED_P16x16Ch(48,6,4); //冲
OLED_P16x16Ch(64,6,0);  //空格

注意,如果两个文字坐标一样,由于重写的是16*16点阵,而非字符的像素,所以后面的会把前面的覆盖。不用记字符的次序,实际就是告诉程序,哪一个区域去显示哪一个字。

下载完程序就可以显示了:
在这里插入图片描述

  • 显示英文:

显示英文字母时,由于自宽占不到16,长度只有中文的一半,只能占到8*16,所以不能使用OLED_P16x16Ch来显示了。例程中就有代码,直接通过OLED_P8x16Str(0,2,"OLED Display")就行。

  • 图片和文字同时显示:

其实很简单,就是先显示一张图片,然后不要清屏,把图片当作背景,再在某个区域显示文字即可。

我生成了一张超级马里奥兄弟的图片的字模作为背景:

unsigned char code BMP3[] =
{
 //C:\Users\jcy\Desktop\3.bmp(0)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34,
0xFC,0x0A,0x0A,0xE2,0xF2,0xF2,0x32,0xF2,0xF2,0xE2,0xE2,0x0A,0x02,0xFC,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xEF,0xFF,0xE0,0xE0,0xC0,0xC1,0xC1,0xFF,0xFF,0xF7,0xC3,0xC1,0xE0,
0xC0,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0,0x60,0x60,0xE0,
0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0x60,0x60,0x60,
0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xE0,0x60,0x60,
0x60,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0x60,0x60,0x60,
0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF0,0xF8,0xF8,0xFC,0xFC,0xFC,0xFC,
0xFC,0xFC,0xF8,0xF8,0xF8,0xF0,0xF0,0xE0,0x80,0x80,0x77,0xFB,0xFA,0xF8,
0xF8,0xFF,0xF6,0x74,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xC0,0x60,0x30,0x30,0x38,0x18,0x0F,0x07,0x19,0x08,0x08,
0x00,0x04,0x0C,0x09,0x03,0x03,0x02,0x1C,0x18,0x0F,0x07,0x11,0x18,0x08,
0x00,0x00,0x04,0x09,0x02,0x01,0x1E,0x1C,0x18,0x0F,0x07,0x11,0x08,0x08,
0x00,0x04,0x0C,0x09,0x03,0x03,0x02,0x1C,0xF0,0xE0,0x70,0xF0,0xE0,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,
0xF0,0xF8,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xEF,
0xE3,0xE1,0xE1,0xF3,0x1F,0xEF,0xEC,0xE0,0xF0,0xF0,0xE0,0xE0,0xE0,0xE0,
0xE0,0xE0,0xE0,0xF0,0xF0,0xE0,0xE0,0xE0,0xE0,0xF0,0x10,0xE0,0xE0,0xE0,
0xE0,0xE0,0xE6,0xFF,0x9B,0xE1,0xE0,0xE0,0xF0,0xF0,0xF0,0xE0,0xE0,0xE0,
0xE0,0xE0,0xE0,0xF0,0xF0,0xE0,0xE0,0xE0,0xE0,0xF0,0x10,0xE0,0xE0,0xE0,
0xE0,0xE0,0xE0,0xE0,0xF0,0xF0,0xE0,0xE0,0xE0,0xF0,0xF0,0xE0,0xE0,0xE0,
0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,0xE0,0xE0,0xE0,0xF0,0x10,0xE0,0xE0,0xE1,
0xE3,0xEB,0xEF,0xE0,0xF0,0x10,0xE0,0xE0,0xE0,0xF8,0x1C,0xEE,0xEF,0xEF,
0xEF,0xEF,0xEF,0xFF,0xFF,0xDF,0xEF,0xEF,0xEF,0xFF,0x1F,0xEF,0xEF,0xEF,
0xEF,0xEF,0xEF,0xEF,0xFF,0x1F,0xEF,0xEF,0xEF,0xFF,0xFF,0xEF,0xEF,0xEF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xE1,0xFD,0xFD,0xFD,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFD,0xFD,0xFD,0xFF,0x30,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF1,0xFD,0xFD,0xFD,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFD,0xFD,0xFD,0xFF,0x30,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xDF,0xFD,0xFD,0xFD,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFD,0xFD,0xFD,0xFD,0xFF,0x30,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xDF,0xF1,0xFD,0xFD,0xFD,0xFF,0x30,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xDF,0xF9,0xFD,0xFD,0xFD,0xFF,0x30,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xDF,0xF1,0xFD,0xFD,0xFD,0xFF,0xFE,0xFF,
0xFF,0xFF,//C:\Users\jcy\Desktop\3.bmp0,
}

添加中文字模:

unsigned char code F16x16[] = 	  	 
{  	   
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//空格0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	
 //今(0) 天(1) 也(2) 要(3) 加(4) 油(5) 啊(6)

0x80,0x80,0x40,0x20,0x10,0x08,0x24,0xC3,0x04,0x08,0x10,0x20,0x40,0x80,
0x80,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x82,0x42,0x22,0x1A,0x06,
0x00,0x00,0x00,0x00,//今1,

0x40,0x40,0x42,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0x42,0x40,
0x40,0x00,0x80,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,
0x40,0x80,0x80,0x00,//天2,

0x80,0x80,0x40,0xFC,0x40,0x20,0x20,0xFF,0x10,0x10,0x08,0xF8,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,0x40,0x4F,0x40,0x42,0x44,0x43,
0x40,0x40,0x78,0x00,//也3,

0x00,0x02,0xF2,0x92,0x92,0xFE,0x92,0x92,0x92,0xFE,0x92,0x92,0xF2,0x02,
0x00,0x00,0x00,0x02,0x82,0x92,0x9A,0x56,0x63,0x22,0x32,0x4A,0x46,0x42,
0x82,0x02,0x00,0x00,//要4,

0x10,0x10,0x10,0xFF,0x10,0x10,0xF0,0x00,0x00,0xF8,0x08,0x08,0x08,0xF8,
0x00,0x00,0x80,0x40,0x30,0x0F,0x40,0x80,0x7F,0x00,0x00,0x7F,0x20,0x20,
0x20,0x7F,0x00,0x00,//加5,

0x10,0x60,0x02,0x8C,0x00,0xF0,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0xF0,
0x00,0x00,0x04,0x04,0x7E,0x01,0x00,0xFF,0x42,0x42,0x42,0x7F,0x42,0x42,
0x42,0xFF,0x00,0x00,//油6,

0xFC,0x04,0xFC,0x00,0xFE,0x42,0xBE,0x00,0xF2,0x12,0xF2,0x02,0xFE,0x02,
0x00,0x00,0x0F,0x04,0x0F,0x00,0xFF,0x10,0x0F,0x00,0x0F,0x04,0x4F,0x80,
0x7F,0x00,0x00,0x00,//啊7,
}

在主程序中添加代码:

#include "intrins.h"
#include "codetab.h"
#include "LQ12864.h"

void main(void)
{
	OLED_Init(); //OLED初始化
	//显示图片
	Draw_BMP(0,0,128,8,BMP2); 
	OLED_P8x16Str(70,0,"by:jcy");
	
	while(1)
	{
        OLED_P16x16Ch(0,2,1); //今
		OLED_P16x16Ch(16,2,2); //天
		OLED_P16x16Ch(32,2,3); //也
		OLED_P16x16Ch(48,2,4); //要
		OLED_P16x16Ch(64,2,5); //加
		OLED_P16x16Ch(80,2,6); //油
		OLED_P16x16Ch(96,2,7); //啊
		OLED_P8x16Str(112,2,"!");
		delay(1000);
		//把前面的内容清除掉
		OLED_P8x16Str(0,2,"                 ");
        OLED_P8x16Str(0,2,"never give up!");
		delay(1000);
		OLED_P8x16Str(0,2,"                 ");
}
}

这里我偷了一下懒,清除字符应该去研究一下怎么清屏的,我这里直接就使用空的8位字符填充来清除对应位置的字符的。

运行结果:

在这里插入图片描述

  • 12
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值