OLED显示

您所在的位置:网站首页 unsignedchar啥意思 OLED显示

OLED显示

2024-07-12 11:03| 来源: 网络整理| 查看: 265

一,字库和码表

在OLED显示屏上显示字符,和在点阵上显示图像是一样的 都是通过区域内的像素点的亮暗来呈现图案 以1608字体码表为例,代码中表现如下:

const unsigned char asc2_1608[95][16]={ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/ {0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xCC,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",1*/ {0x00,0x00,0x08,0x00,0x30,0x00,0x60,0x00,0x08,0x00,0x30,0x00,0x60,0x00,0x00,0x00},/*""",2*/ {0x02,0x20,0x03,0xFC,0x1E,0x20,0x02,0x20,0x03,0xFC,0x1E,0x20,0x02,0x20,0x00,0x00},/*"#",3*/ {0x00,0x00,0x0E,0x18,0x11,0x04,0x3F,0xFF,0x10,0x84,0x0C,0x78,0x00,0x00,0x00,0x00},/*"$",4*/ {0x0F,0x00,0x10,0x84,0x0F,0x38,0x00,0xC0,0x07,0x78,0x18,0x84,0x00,0x78,0x00,0x00},/*"%",5*/ {0x00,0x78,0x0F,0x84,0x10,0xC4,0x11,0x24,0x0E,0x98,0x00,0xE4,0x00,0x84,0x00,0x08},/*"&",6*/ {0x08,0x00,0x68,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/ {0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x18,0x18,0x20,0x04,0x40,0x02,0x00,0x00},/*"(",8*/ {0x00,0x00,0x40,0x02,0x20,0x04,0x18,0x18,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00},/*")",9*/ {0x02,0x40,0x02,0x40,0x01,0x80,0x0F,0xF0,0x01,0x80,0x02,0x40,0x02,0x40,0x00,0x00},/*"*",10*/ } 二,什么是1608

1608代表着字符显示的区域大小,即高度16位*宽度8位

1608区域

上图显示为1608区域图,每一个点由一个位控制点亮/熄灭 结合之前给出的码表,每个字符记录为一个16字节表达式

1608解析

即每2个字节绘制一列,共8列,即16字节显示一个字符

三,1608的赋值顺序

我们知道了16字节控制一个字符的显示,现在说一下如何显示

这16个字节按照从上到下,从左到右的方式进行赋值

1608的赋值顺序

如果我们想要显示一个字母A,那么:

1608字母A

使用工具,转化为16字节字模配置

PC2LCD_A

PC2LCD_A_Config

{0x00,0x04,0x00,0x3C,0x03,0xC4,0x1C,0x40,0x07,0x40,0x00,0xE4,0x00,0x1C,0x00,0x04},/*"A",0*/ 四,1206和2412字体

简单说一下2412,即高度24*宽度12 与1608同理,即高度24个位拆分为3字节,宽度12,即36字节控制一个字符显示

重点说一下1206: 1206,即高度12*宽度06 我们发现高度12不是8的倍数(12*6=72依然是8的倍数) 但我们还会按照从上到下,从左到右的顺序控制显示

1206分析

如图,1206的第一列有1.5字节控制,第二列由剩余0.5字节+1字节控制

所以一个1206字符由3*3 = 9字节控制

五,代码操作

现在我们知道了OLED的显示和赋值原理,那么看一下代码控制显示的实现

/** * 在指定位置显示字符 * x:0~127 * y:0~63 * mode: 0:反白显示 1:正常显示 * size: 字号 12/16/24 **/ void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 size,u8 mode) { u8 temp,t,t1; u8 y0=y; u8 csize=(size/8+((size%8)?1:0))*(size/2);//字符对应点阵字节数 chr=chr-' ';//得到在字库码表中的位置索引 for(t=0;t


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3