12864点阵液晶模块分为带汉字库和不带汉字库两大类,目前带汉字库的通常是ST7920驱动,它可以工作在汉字字符方式和图形点阵方式,很多制作都用它,如果需要显示较多汉字,用它最为方便。
在显示汉字数量很少的场合,我们可以使用更加廉价的、不带字库的点阵液晶模块,这正是本文重点介绍的。它们的控制电路有KS0108和ST7565两种:KS0108很简单,一共只有7条指令,可是它没有串行接口;ST7565有20多条指令(最常用的也就几条),有串行接口,可选串行或并行工作。KS0108和ST7565的指令和上述带字库的ST7920区别较大,所以初学者买液晶时一定要搞清楚是哪种驱动电路。即使同样的驱动电路,不同厂家或者不同型号的产品,具体细节仍可能不同。例如有的片选信号是高电平有效,有的却是低电平有效,有的把显示区分为左右两半分别选取,有的却不加区分。所以使用前要仔细看厂家说明,如果没有,就要看液晶模块背面给出的具体型号,根据这个型号去查找使用手册。
怎样显示字符或汉字
字符和汉字实质是在一个矩形区域内由一系列像素点构成的图形,也就是点阵图。例如在一个8×8点阵区域内,字母“L”点阵如图8左所示。如果要在第0页,第0列、……第7列显示这个字符,那么就应该在相应的显示缓冲区装入相应的数据如右边图所示,这里用1表示显示像素,不显示的像素都是0,为清楚起见图中就不标出,上方表示列号0……7,那么从0列开始,各列的二进数和16进数分别表示为:
0B00000000 : 0X00
0B01000010 : 0X42
0B01111110 : 0X7E
0B01000010 : 0X82
0B01000000 : 0X40
0B01000000 : 0X40
0B01100000 : 0X60
0B00000000 : 0X00
所以我们就用一个8元素的数组来表示这个“L”: const unsigned char L[8]={0X00,0X42,0X7E,0X82,0X40,0X40,0X60,0X00}; 要在液晶上的第3页第6列显示这个“L”,就使用如下函数: LcdShow88(unsigned x,unsigned y, const char *p);
其中p指向8点阵字符数组,那么具体代码为: LcdShow88(6,3, L); 打造字模就是按照所需显示的文字符号一一编制各自的数组,上述8×8点阵就可以在1页高度内显示,实际上其上下左右都要留空,这样有效的点阵只有6×6,要显示数字和ASCII字符尚可,简单笔画的汉字也行,可是笔画稍多的汉字就不行了。对于汉字显示我们一般使用16×16点阵的字模。这样的汉字高度占2页,宽度是16列,12864的液晶可以显示4行,每行8个字。所有的12864液晶不论尺寸大小都是如此。 一个16点阵字模数组具有32个元素,每一页有16个元素。因此显示这样的汉字时,就要给同一列的某一页和下一页分别写入各自的16个元素。例如汉字“钟”的字模数组为: const unsigned char ZHONG[ ]={0x80,0x40,0x70,0xCF,0x48,0x48,0x00,0xF0,0x10,0x10,0xFF,0x10,0x10,0xF8,0x10,0x00, 0x02,0x02,0x02,0x7F,0x22,0x12,0x00,0x07,0x02,0x02,0xFF,0x02,0x02,0x07,0x00,0x00};
我们用一个函数: LcdShow1616(unsigned x,unsigned y, const char *p); 其中参数x 是列,y是页,p指向字模数组,具体的代码为: LcdShow1616(6,2, ZHONG); 这样,汉字就显出来了。最后,交代一下取得点阵汉字字模的方法。
下一篇: LCD液晶屏的可视角度介绍
上一篇: LCD液晶模块链接的四种方式介绍
阿里巴巴
官方网站
电话: 0755-29769890-0 0760-85884486 传真:0755-27315661 0760-85884496 邮箱: jxdlx107@goodview-lcd.com