当前位置:首页 > 电源 > 数字电源
[导读]引言目前,在嵌入式智能仪器仪表中,常用的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
 

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

作者 Mohamad Ali| IBM咨询首席运营官 北京2024年5月24日 /美通社/ -- 生成式AI的兴起几乎在所有面向上给业务带来改变。根据 IBM 商业价值研究院最新的年度 CEO 研究,近60%...

关键字: IBM AI BSP 模型

台北2024年5月21日 /美通社/ -- 提供针对AMD WRX90和TRX50主板优化的DDR5 OC R-DIMM 提供容量128GB(16GBx8)到768GB(96GBx8),速度5600MHz到8...

关键字: AMD 内存 BSP GB

上海2024年5月20日 /美通社/ -- 2024年5月16日,世界知名的生命科学公司 Eppendorf 集团于第二十三届生物制品年会上成功举办了"疫路超越 推流出新"的产品发布会,正式推出大规模...

关键字: RF PEN BSP IMAC

北京2024年5月20日 /美通社/ -- 过去五年里,支付和收款方式日新月异,其发展和变化比过去五十年都要迅猛。从嵌入式数字商务的出现,到"一拍即付"的...

关键字: VI BSP PAY COM

华钦科技集团(纳斯达克代码: CLPS ,以下简称"华钦科技"或"集团")近日宣布致敬 IBM 大型机 60 载辉煌历程,并将继续实施集团大型机人才培养计划。

关键字: IBM BSP 研发中心 PS

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

上海2024年5月16日 /美通社/ -- 2024年5月10日至5月13日,富士胶片(中国)投资有限公司携旗下影像产品创新力作亮相北京P&E 2024。在数码相机展览区域,全新制定的集团使命"为世界绽...

关键字: 富士 数码相机 影像 BSP

贝克曼库尔特目前已成为MeMed Key免疫分析平台和MeMed BV检测技术的授权经销商 在原有合作的基础上,继续开发适用于贝克曼库尔特免疫分析仪的MeMed BV检测 加州布瑞亚和以色列海法2024年5月16日...

关键字: BSP IO 检测技术 免疫分析仪

英国英泰力能的燃料电池是可产业化的产品解决方案 英国首个专为乘用车市场开发的燃料电池系统 在 157kW 功率下,此燃料电池比乘用车的其他发动机更为强大 &...

关键字: ENERGY INTELLIGENT 氢燃料电池 BSP

深爱人才,共赴"芯"程 深圳2024年5月15日 /美通社/ -- 5月11日,深圳国资国企"博士人才荟"半导体与集成电路产业专场活动在深圳市重投天科半导体有限公司(简...

关键字: 半导体 集成电路产业 BSP 人工智能
关闭
关闭