|
|
| | -文章搜索 - 最新文章 - | |
第12302篇:一种低成本汉字液晶显示的实现方法 |
| 发布时间:2006年9月4日 点击次数:1410 |
| 来源: 作者:四川海力电子仪表制造公司 魏东 |
在智能仪表等小型单片机应用系统中,一般采用发光二极管作功能提示,数码管显示数据。随着智能仪表功能的不断扩充和提高,这种显示方式逐渐不能满足需求。为系统添加一片液晶显示器作为显示设备,显然能够很大程度扩展系统功能,提升产品的档次。若在液晶显示器上显示汉字信息,如果采用带汉字库的液晶显示器会有一些弊端:成本高,汉字大小固定,缺乏一些特殊的功能函数。针对这种情况,本文分析了一种低成本的汉字液晶显示实现方法,并给出了其C语言实现函数的源程序,以及汉字字符串提取程序和点阵字模提取程序的源程序。显示函数的实现中还重点设计了灵活的putchar函数,以便在程序中使用printf函数作为显示输出函数。 1 基本原理 整个实现过程包括以下部分;汉字字符串的提取;汉字点阵字模的提取;图形液晶显示器驱动程序设计;汉字显示函数及putchar函数的设计。 2 汉字字符串及点阵字模的提取 汉字字符串提取出来后,就将针对这些汉字从字库中提取其对应的点阵字模了。在此之前,先要设计保存这些点阵字模数据的方式,即数据结构。图形显示的每一个点对应用一位表示,对于不同点阵的字库,需要的数据字节长度是不相同的:8×8的点阵英文字母需要8×8/8—8个字节;12×12的点阵汉字需要12×12/8=18个字节16×16的点阵汉字需要16×16/8=32个字节;24×24的点阵汉字需要24×24/8=96个字节。生成的点阵字模数据,可以用H头文件的形式存储,以上字库对应为:EN8X8.H;C12X12.H;C16X16.H;C24X24.H。文件中首先定义包含的汉字数目,例如C12X12.H中: 表明本12*12点阵字库中有50个汉字。因为只提取了需要的汉字字模数据,并且将重复的字剔除掉。为了方便索引,在汉字字库建立汉字GB码信息数组,将汉字GB码的两字节数据用unsigned int表示,例如C12X12.H中: 注意:在数据中总要预留1个汉字的空格(Oxalal),以便在以后程序设计时遇到显示没有找到字模数据的汉字时,显示空格,它对应的数据是全空。在汉字GB码信息数据后注释行中写入了对应汉字,以方便阅读。 接下来的汉字点阵字模数据以二维数组表示: 为了方便阅读和使用,除了对每个汉字将其GB码写入注释外,还将其数据直接写到注释中。 笔者发现KeiI_C51(V7.O以前的版本)在编译时,字符串中汉字GB码第二字节如果为0xfd,会错误地被忽略,造成显示错误。因此,在汉字点阵字模数据头文件内的注释中,对应的GB码后加入了一个“!”,以提示程序员在C程序的字符串中以\x??\xfd替换相应的字符。 3 液晶驱动程序设计 点击看原图 如果采用以上方法连接以后,编写驱动程序时就可用以下地址。 驱动程序除提供复位、开关显示、整屏填充、画点、读写显存等基础函数外,还提供了显示位置设定、英文显示、各点阵汉字显示、显示输出函数等。驱动程序源程序为kddrv.c及lcdd rv.h和deL_port.h。 4 汉字显示函数设计 在Keil-C51的LlB子目录下有一个putchal.c文件,提供了一个串口输出数据的putchar函数源程序。通过修改putchaI函数,设置一个标志变量,当需要将数据送液晶显示时,设置lcd_id=l,否则当Icd_jd=0时,数据仍然通过串口输出。 结语
|
|
|
|
|
[显示技术] 相关文章: 遥控LED广告牌简介: 0 引言 LED广告牌是一种面向公众的信息显示终端,有着非常广泛的民用和商用价值。而现在大多数LED广告牌显示的信息都是事先固化在系统中的,这失去了信息的实时性,特别不方便用户更换显示内容;少数LED广告牌采用与微机直接相连,用微机来传送信息,这种系统解决了信息刷新问题,但由于有线连接,制约了系统放置的随意性,特别是对于面向多地区多客户的广告公司来说,给系统的实时更新和维护带来了许多不便。 本文提出了通过手持发射机遥控LED广告牌的新方案,实现了对广告牌内容及显示方...... 在汽车中驱动LED照明的开关 对视频图像及其显示的浅见 友达光电推首款7.5代42英寸面板 十月份量产 显示器的分辨率和清晰度-视频图像 |
|
|
|