2019年7月29日
文末附0.96OLED I2C程序代码及取模软件
之前解释了一下怎么在OLED显示汉字,大致就是先把想要显示的汉字的字模放在一个数组中,之后在主函数里一个一个把它调出来,那么这样汉字就显示出来了。
那么汉字显示是显示出来,那么你怎么在OLED液晶屏上排版那?怎么安排它的位置那,今天就以下面的代码为例子详细解释一下。
先贴代码:
OLED_ShowChinese(0,0,0,16);//中
OLED_ShowChinese(18,0,1,16);//景
OLED_ShowChinese(36,0,2,16);//园
OLED_ShowChinese(54,0,3,16);//电
OLED_ShowChinese(72,0,4,16);//子
OLED_ShowChinese(90,0,5,16);//科
OLED_ShowChinese(108,0,6,16);//技
就以上面这七个汉字为例
(0,0,0,16)
我们知道前面两个0分别代表的是x(列)、y(行),第四个数字代表的是顺序(也就是我们字模数组中汉字的排序),16代表的是汉字的大小。
我们之前是不是开辟了一个 128*64的内存,那么这里就用到了。
因为“中”的大小是1616,因为我们是从(0,0)左上角开始显示的,所以一个1616的汉字就像一
16*16的正方形占用了这块内存。
(18,0,1,16)
x=18,y=0,序号为1,大小还是16*16
y=0那么就和上一个汉字排在了同一行;
我们知道上一个汉字写完占用了16列16行,第二个字x=18:他的意思是让这两个汉字之间有两个 bite的间隙
那么显示了前面这两个汉字,就占用了 16+2+16=34列、16行(同一行)
(36,0,2,16) (54,0,3,16) (72,0,4,16) 。。。我想大家也就都知道了。
接下来紧接着下面的代码:
OLED_ShowString(8,16,“ZHONGJINGYUAN”,16);
OLED_ShowString(20,32,“2014/05/01”,16);
OLED_ShowString(0,48,“ASCII:”,16);
OLED_ShowString(63,48,“CODE:”,16); //显示的是字符
(8,16,“ZHONGJINGYUAN”,16)
为什么这样写那? 我们先开y=16,也就是行从16行开始写的,这就明了了啊,这是紧挨着上面的汉字,也就是排在了汉字的下面啊;
x=8:它的意思是在开头空了8个bite,字体的大小还是16*16。
(20,32,“2014/05/01”,16)
y=32:因为前面有两行了啊,大小均是16bite 。
x=20:开头空了20bite。
(0,48,“ASCII:”,16) (63,48,“CODE:”,16)
这两个的y=48也就是说他们在同一行,并且紧挨上面的, “ASCLL:" x=0:说明顶头写
"CODE:" x=63:我们想一下“A S C L L : ”一共6个字符,占用空间为8*6=48 bite,所以x=63 也就说
他们之间有间隙。
OLED_ShowString(0,0,“ABC”,12); //ABC
OLED_ShowString(0,12,“ABC”,16); //ABC
OLED_ShowString(0,28,“ABC”,24); //ABC
分析到这,相信你这三行代码一眼明了啊。
若有错误,轻指正。
//-----------------------------------------------------------------
//********************************************************
怎么将程序里的文字替换成自己想要显示的文字那?
里面有取模教程的详细介绍,通过取模软件生成文字所代表的数组,然后替换上图中我们用到的汉字,之后再一个个调用。
附:
链接: OLED详细代码
提取码:ivs4