LCD12864无字库 的运用(DOC)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二、LCD12864液晶的使用之无字库型(一)

2011年02月15日星期二 14:07

过年回家没办法联网,没办法上传LCD12864教程,还请大家见谅!现在就和大家一起LCD12864的使用!

LCD12864分为两种,带字库和不带字库的,个人比较喜欢不带字库的,因为显示汉字的时候可以选择自己喜欢的字体,而带字库的液晶,只能显示GB2312的宋体,当然了,也可以显示其他的字体,不过不是液晶本身字库中带的了,而是用图片的形式显示。本讲由于内容较多,故分两篇进行讲解,本人水平有限,难免有错误之处,还望大家批评改正!

首先介绍下不带字库的LCD12864,现就以Proteus中的LCD12864为例进行讲解,Proteus 中AMPIRE128*64,其液晶驱动器为KS0108,我在网上搜了好就都没找到它的datasheet,不过我们可以找到类似的芯片的手册,它的控制逻辑和HD61202是类似的,我们可以网上下载它的datasheet进行参考。

与带字库液晶不同,此块液晶中含有两个液晶驱动器,一块驱动器控制64*64个点,左右显示,这就是为什么AMPIRE128*64引脚有CS1和CS2的原因。学习液晶主要看的它的指令系统,再次先说明一下“页”的概念,此液晶有8页,一页有8行。68/8=8;

再介绍一下其他的几个重要指令:

指令一、行设置命令

由此可见其显示的其实行为0xC0,有规律的改变起始行号,可以实现滚屏的效果

指令二、页(page)设置指令

起始页为0xB8显示的RAM共64行,分为8页,每页有8行,刚才在上面已经讲过。

指令三、列(Y address)地址设置指令

第一列为0x40一直到0x7F共64列,因为此液晶有128列,所以有两块驱动芯片驱动。

指令四、读状态指令

Busy:为1内部忙,不能对液晶进行操作。0--工作正常。

ON/OFF:1------显示关闭;0------显示打开

RESET:1-----复位状态;0------正常。

说明在Busy和RESET状态时,除读状态指令外,其他任何指令均不会对驱动器产生作用。

其他的读数据和写数据和LCD1602是一样的,由于篇幅有限这里就不赘述了。不懂的可以参看下液晶手册。另外要说明的就是CS1和CS2的作用(两者都是低电平有效)

引脚图:

引脚功能说明:

CS1和CS2的屏幕选择说明

一、显示汉字

由于这块液晶补带字库我们就要自己编写字库,编写字库的软件还是Zimo21,LCD1602显示自定义字符的时候用的也是它。不过在取模之前我们要进行一些设定,根据此液晶显示显示的原理,设置如下:(若不是这样,取模的数据将不是我们想要的)

在此,我们选择楷体小四号,在文字输入框中输入要显示的字体,然后按ctrl+Enter结束输

入,上面会显示取模的效果,之后再对要显示的汉子进行取模,如下图所示:

显示效果:

下面是程序代码:

(百度空间文章有字数限制,就一个个截成图片的形式了,大家见谅啊!)

下篇继续......

应网友要求,附取模字库(空间有字数限制,所以只提供部分字库,其他的汉字显示就用上面介绍的驱取模软件来取吧,不过事先要将软件设定好,不然会出现乱码):

unsigned char code huan[]={/*-- 文字: 欢 --*/

/*-- 楷体_GB231212; 此字体下对应的点阵为:宽x高=16x16 --*/

0x00,0xA0,0x20,0x10,0xF0,0x00,0x40,0x38,0xA7,0x10,0x50,0x30,0x10,0x00,0x00,0x00, 0x10,0x08,0x05,0x02,0x05,0x20,0x10,0x0C,0x03,0x04,0x08,0x10,0x30,0x20,0x20,0x00 };

unsigned char code ying[]={/*-- 文字: 迎 --*/

/*-- 楷体_GB231212; 此字体下对应的点阵为:宽x高=16x16 --*/

0x40,0x40,0x44,0xC8,0x00,0xF8,0x08,0x84,0x06,0xF0,0x08,0x88,0xF8,0x00,0x00,0x00, 0x08,0x08,0x09,0x0E,0x08,0x09,0x09,0x08,0x10,0x17,0x10,0x30,0x30,0x10,0x10,0x00 };

unsigned char code fang[]={/*-- 文字: 访 --*/

/*-- 楷体_GB231212; 此字体下对应的点阵为:宽x高=16x16 --*/

0x40,0x40,0x20,0xE2,0x04,0x00,0x20,0x20,0x22,0xE2,0x94,0x90,0x10,0x10,0x10,0x00, 0x00,0x00,0x00,0x0F,0x14,0x0A,0x04,0x02,0x11,0x20,0x18,0x07,0x00,0x00,0x00,0x00

相关文档
最新文档