当前位置:首页 > 显示光电 > 显示光电
[导读]本文分析了一种低成本的汉字液晶显示实现方法,并给出了其C语言实现函数的源程序,以及汉字字符串提取程序和点阵字模提取程序的源程序。

    在智能仪表等小型单片机应用系统中,一般采用发光二极管作功能提示,数码管显示数据。随着智能仪表功能的不断扩充和提高,这种显示方式逐渐不能满足需求。为系统添加一片液晶显示器作为显示设备,显然能够很大程度扩展系统功能,提升产品的档次。若在液晶显示器上显示汉字信息,如果采用带汉字库的液晶显示器会有一些弊端:成本高,汉字大小固定,缺乏一些特殊的功能函数。针对这种情况,本文分析了一种低成本的汉字液晶显示实现方法,并给出了其C语言实现函数的源程序,以及汉字字符串提取程序和点阵字模提取程序的源程序。显示函数的实现中还重点设计了灵活的putchar函数,以便在程序中使用printf函数作为显示输出函数。

1 基本原理
    这种低成本汉字液晶显示实现方法的基本原理是:采用一片图形液晶显示器作为显示设备,用软件实现汉字显示,汉字点阵字模直接从汉字库中提取出来后写到程序文件中。

    整个实现过程包括以下部分;汉字字符串的提取;汉字点阵字模的提取;图形液晶显示器驱动程序设计;汉字显示函数及putchar函数的设计。

2 汉字字符串及点阵字模的提取
    图形液晶显示器要显示汉字,必然需要汉字点阵字模,而要提取汉字点阵字模必须首先从程序中提取要显示的汉字字符串。一个汉字以两个字节的数据表示,这两个字节的数据有一个共同的特点就是数据最高位是“1”,这是与其他字符区分的重要特征。在C程序中,要显示的字符一般以双引号作为起始和终止,因此设计汉字字符串提取程序时只需要判断开始双引号和结束双引号之问的字符,将最高位为“1”的字符提取出来保存到另一汉字字符串文本文件中即可。C源程序FIND_CH.C,运行时可在命令行带多个C程序的文件名,输出汉字字符串文本文件到STRINGCH.TXT中。

    汉字字符串提取出来后,就将针对这些汉字从字库中提取其对应的点阵字模了。在此之前,先要设计保存这些点阵字模数据的方式,即数据结构。图形显示的每一个点对应用一位表示,对于不同点阵的字库,需要的数据字节长度是不相同的: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中:
    #define chl2x12_num 5

    表明本12*12点阵字库中有50个汉字。因为只提取了需要的汉字字模数据,并且将重复的字剔除掉。为了方便索引,在汉字字库建立汉字GB码信息数组,将汉字GB码的两字节数据用unsigned int表示,例如C12X12.H中:
    code unsigned int chl2x12_code[chl2x12一num]={0xalal,0xbaba,0xd7d6,0xd2ba,0xbea7},/*汉字液晶*/

    注意:在数据中总要预留1个汉字的空格(Oxalal),以便在以后程序设计时遇到显示没有找到字模数据的汉字时,显示空格,它对应的数据是全空。在汉字GB码信息数据后注释行中写入了对应汉字,以方便阅读。

    接下来的汉字点阵字模数据以二维数组表示:
    code unsigned char ehl2x12_dat[ehl2x12_num][18]={
    /*汉字12×12点阵库*/
    {Ox00,0x00,0x00,0x00,0x00,0x00,0x00.0x00,Ox00.0x00,0x00,Ox00,0x00,Ox00,Ox00,0x00,0x00,0x00},
    /*(BABA):88926418021e628262H0200201f20488884*/
    {0x88,0x92,0x64,0x18,0x02,0xle,0x62,0x82,0x62,OxIf,0x02,Ox00,Ox20,Oxlf,0x20,0x48,0x88,0x84},
    /*字(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,0x00,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所列。

    如果采用以上方法连接以后,编写驱动程序时就可用以下地址。
    左右半部操作时:数据地址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)。

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭