当前位置:首页 > 电源 > 数字电源
[导读]引言目前,在嵌入式智能仪器仪表中,常用的LCD模块一般不带有字库,而实际应用中的人机界面需要显示汉字,如果直接把汉字点阵字库放在程序空间需要占有大量的程序空间,并且字库不一定完整。本文以深圳莱德电子的LCD

引言

目前,在嵌入式智能仪器仪表中,常用的LCD模块一般不带有字库,而实际应用中的人机界面需要显示汉字,如果直接把汉字点阵字库放在程序空间需要占有大量的程序空间,并且字库不一定完整。本文以深圳莱德电子的LCD显示模块YJ240D和国标汉字库GB2312-80为例,介绍了一种基于无汉字字库的图形LCD模块汉字显示的解决方案。

1 单片机与液晶模块的接口

1.1 YJ240D的基本结构

YJ240D是一款图形点阵液晶显示模块,它由控制器T6963C、行驱动器、列驱动器及240×128全图形点阵液晶显示器组成。可显示常用字符及图形,也可以显示15×8个(16×16点阵)汉字,内带32K显示缓冲数据存储器,可储存八屏图形显示数据。5V单电源供电,模块内带负压发生器,用于驱动LCD,内带LED背光,通过调节VLCD的电压可以调节液晶的对比度。

T6963C 是日本东芝公司专门为中等规模LCD模块设计的一款控制器,它通过外部MCU方便地实现对LCD驱动器和显示缓存的管理。其特点为8位总线,内部有128 个常用字符表,可管理外部扩展显示缓存64KB(本模块为32KB),并具有丰富的指令供MCU实现对LCD显示屏幕的操作与编辑

YJ240D接口简单,可通过软件编程方便地对液晶控制,其硬件接口定义如表1

表1 YJ240D的硬件接口

1.2 YJ240D与单片机的接口

图1为单片机和液晶显示器的接口示意图,其中用单片机的P1.2、P1.3来控制液晶模块的片选(CE)和指令/数据选择(C/D);P0口与液晶的8位数据线(P0-P7)相接;读(WR)写(RD)线分别与MCU的读写线相连。

1.3 YJ240D的读写时序

该液晶模块与MCU的接口采用八位并行数据线,可交换命令和数据。向液晶模块写时,如果C/D为高,表示向液晶模块传输命令;如果C/D为低,表示向液晶模块传输数据。当从液晶读时,C/D必须为高,读出的值为模块内的状态字。

液晶模块的详细命令集可参见T6963C数据手册。

[!--empirenews.page--]

2 字库芯片与单片机的接口

2.1 汉字的编码标准

为了用0、1代码串表示汉字,规定了汉字的信息交换码:GB 2312-80,简称国标码,共有字符7445个,包括汉字和其他字符。一级汉字3755个,按汉语拼音顺序排列;二级汉字3008个,按部首和笔画排列。其他字符有常用符号、序号、GB1988图形字符集、希腊字符、制表符等。国标码的每一个符号都用两个字节(16位二进制)代码来表示一个汉字。

1) 国标码:行、列各94(0-93),用先行后列的两个7位二进制数表示。

2) 区位码:由于二进制国标码表示不很方便,因此汉字也可用十进制区位码表示。区、位各94(1-94),用先区后位的两个2位十进制数表示。

3) 机内码:是计算机内部表示汉字的代码,在微机中多用两字节(最高位为1)代码作为机内码。

2.2区位码和机内码的相互转换

西文系统的交换码和机内码都采用美国标准信息交换码ASCII,用一个字节表示,一般只用低七位,可以表示128可符号。在软件中嵌入的汉字经编译器编译后存放的格式为机内码。区位码和机内码之间的转换关系可概括为:(区位码的十六进制表示)+A0A0H=机内码。以汉字“大”为例,“大”字的区内码的十六进制表示为1453H,加上A0A0H得到机内码为B4F3H。

2.3 汉字字模库

汉字的输出是将汉字的笔划离散化,用点阵来表示。点阵的中每个点位只有两种状态:有笔画(1)、无笔画(0)。

描述汉字点阵信息的二进制代码集称为汉字的字模。所有汉字和符号的点阵信息就组成了汉字库。

2.3 混合字符的显示

在本系统中,每个汉字的显示采用16×16图形点阵方式显示。国标GB2312-80一、二级汉字点阵库存放在一片ROM芯片AT27C040中,每个汉字占用32个字节。当需要显示汉字时,首先根据区码和位码计算出该汉字点阵在ROM中存放的起始地址,然后从此地址连续的取出32个字节的汉字点阵,并写入LCD模块对应的地址中,就可以显示出该汉字。根据汉字区位码和该汉字计算汉字在字库ROM位置的转换关系可概括为:起始地址=(区码×94+位码)×32

在应用中,常需要汉字和英文字符混合显示,在软件处理时需要判断显示的内容是汉字的编码还是英文字符的编码,如果是汉字编码则根据其机内码计算区位码,并根据区位码计算出该汉字在字模中的起始地址。图3是混合显示的软件流程图。


 

 

3 应用实例

在某检测设备中,需要给用户显示电流、电压、频率值以及一些事件记录等。用户的命令通过设备的8键键盘输入,显示的内容有汉字、数字和英文字符。

以下列出了显示汉字、数字和英文字符串部分软件

/*-----------------------------------------------------------------------------------------
                           混合显示一串汉字和英文字符
row:行(1-8), column: 列(1-15)
str:字符代码(标准机内码)指针
 ---------------------------------------------------------------------------------------*/

[!--empirenews.page--]


void DispStr(unsigned char row, unsigned char column, unsigned char *str)
{
    while (*str)
    {
        if (*str > 0xa0)                           //如果是汉字机内码
              {
                     if (column == 30)                        //如果是最后一列,则换行
                     {
                            row ++;
                    column = 1;
                     }
                     DispHZ(row, column, str);           //显示一个汉字
                     column += 2;
                     str    += 2;
              }
              else                                                   //如果是英文字符
              {
                     DispChar(row * 2, column, str);   //显示一个英文字符
                     column++;
                     str++;
              }
}
/*----------------------------------------------------------------
                     在指定位置显示一个汉字(16*16点阵)
row:行(1-8), column: 列(1-29)
str:汉字标准机内码指针
LINE_CHAR = 30 一行的字符数
-----------------------------------------------------------------*/
void DispHZ(unsigned char row, unsigned char column, unsigned char *str)
{
       unsigned char idata i, hz_buf[32];
       unsigned int StartAddr;
      
       //定位起始行
       StartAddr = (((row - 1) * 16) * LINE_CHAR + (column-1)) + 0x4000;
       GetMatrix(str, hz_buf);
       for (i = 0; i < 16; i++)
 {
              LCDInData( (unsigned char) (StartAddr) );
              LCDInData( (unsigned char) (StartAddr>>8) );
              LCDInCmd(0x24);
              LCDInData(hz_buf[i * 2]);
              LCDInCmd(0xc0);
              LCDInData(hz_buf[i * 2 + 1]);
              LCDInCmd(0xc4);
              StartAddr += LINE_CHAR;
       }
}
/*-----------------------------------------------------------------------------------
                     从字库芯片中取汉字字模数据
     s: 汉字标准机内码指针
hz_buf: 存放汉字字模数据缓冲区指针
-------------------------------------------------------------------------------------*/
void GetMatrix(unsigned char *s, unsigned char *hz_buf)
{
    unsigned char i ,j, k;
    unsigned long address;
 
     for (k = 0; k < 31; k++)
       {
              i = *s - 0xA1;                                                  //计算区码
              j = *(s + 1) - 0xA1;                                                 //计算位码
              address = (((unsigned long)i * 94) + j)*32 + k;    //计算该汉字在字模芯片中的起始位置
 
              high_addr = 1;
            P0 = (unsigned char) (address >> 16);               //送高位地址
        high_addr = 0;
              P0 = 0xff;
              zk_cs = 0;
        *hz_buf = XBYTE[(unsigned int) address];         //取汉字模数据
              hz_buf++;
        zk_cs = 1;
      }
}

4 结束语

在图形液晶模块中嵌入中文字库点阵字模芯片,其最大的特点是可以显示所有的一、二级汉字、硬件接口简单、软件编程容易、可混合显示汉字、英文字符和图形。作为人机接口的一个重要部分,可被广泛应用在工业仪器仪表、监控装置、保护装置及汽车等各种领域中。

5 参考文献
1 徐爱均彭秀华单片机高级语言C51应用程序设计电子工业出版社2001
2 莱德电子 YJ240D液晶模块手册
3 Toshiba CMOS digital integrated circuit silicon monolithic T6963C dot matrix LCD control LSI, 1997-04-07
4 GB2312-80《信息交换用汉字编码字符集》,1980
 

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

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 信息技术
关闭
关闭