EDN China > 技术文章 > 电源技术 > 显示驱动 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

一种低成本汉字液晶显示的实现方法

来源:21IC中国电子网/四川海力电子仪表制造公司 魏东?? 2006年08月12日 ?? 收藏0
},
?


?? /*字(D7D6):0886828a8a8bcaaa9a82ca86f00000000408*/
??? {0x08,0x86,0x82,0x8a,0xSa,0x8b,0xca,0xaa,Ox9a,Ox82,0xca,0x86,0xf0,0x00,0x00,Ox00,Ox04,Ox08),
??? /*液(D2BA):88d22450e49c44a75c947404805f20508f88*/
??? {0x88,Oxd2,0x24,Ox50.0xe4,0x9c,0x44,Oxa7,Ox5c,Ox94,0x74,0x04,0x80,0x5f,0x20,0x50,0x8f,0x88},
??? /*晶(BEA7):00c0405fd51515d55f40c00000ff5555ff00*/
??? {0x00,0xc0,0x40.0x5f,0xd5,0x15,0x15,0xd5,0x5f,0x40,

0xc0.0xOO,0x

00,Oxff.0x55,0x55,0xff,0x00)
??? }:

??? 为了方便阅读和使用,除了对每个汉字将其GB码写入注释外,还将其数据直接写到注释中。
?
??? 提取字模程序的C源程序MK_CHIJlB.C,运行时除了在命令行参数中输入汉字字符串文本文件名之外,缺省字库16×16点阵,以参数S指定为12×12点阵,以参数H指定为24×24点阵。

??? 笔者发现KeiI_C51(V7.O以前的版本)在编译时,字符串中汉字GB码第二字节如果为0xfd,会错误地被忽略,造成显示错误。因此,在汉字点阵字模数据头文件内的注释中,对应的GB码后加入了一个“!”,以提示程序员在C程序的字符串中以\x??\xfd替换相应的字符。

??? 3 液晶驱动程序设计

??? 以常用的12864液晶模块为例,它与51单片机的接口非常简单。一般12864模块接口信号线的功能如表1所列。

12864模块接口信号线的功能

点击看原图

??? 如果采用以上方法连接以后,编写驱动程序时就可用以下地址。

??? 左右半部操作时:数据地址0xffff,状态地址0xfeff。

??? 仅左半部操作时:数据地址Oxefff,状态地址Oxeeff

??? 仅右半部操作时:数据地址0xf7fff,状态地址0xf6ff。

??? 驱动程序除提供复位、开关显示、整屏填充、画点、读写显存等基础函数外,还提供了显示位置设定、英文显示、各点阵汉字显示、显示输出函数等。驱动程序源程序为kddrv.c及lcdd rv.h和deL_port.h。

??? 4 汉字显示函数设计

??? C语言程序员都非常熟悉和习惯使用printf系统输出函数,在汉字显示函数设计时尽量利用printf函数的功能,方便程序设计。在Keil_C5l中,printf函数词用putchar函数完成数据输出,而缺省的putchar函数是将数据通过串口输出。我们可以通过设计自己的putchar函数来实现输出送到液晶显示。

??? 在Keil-C51的LlB子目录下有一个putchal.c文件,提供了一个串口输出数据的putchar函数源程序。通过修改putchaI函数,设置一个标志变量,当需要将数据送液晶显示时,设置lcd_id=l,否则当Icd_jd=0时,数据仍然通过串口输出。

??? 注:程序及配套字库文件见本刊网站(www.dpj.com.cn)。

??? 结语

??? 通过以上介绍,从硬件接口、底层函数、高级函数等方面,完全实现了汉字液晶显示的整个过程。通过对整个过程及原理的了解,您可以很轻松地实现和修改液晶显示函数,以配合您的系统需要,以极低的成本获取较好的效果。



上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

汉字? 液晶? 显示?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈