基于不带字库的图形LCD模块汉字显示解决方案 您所在的位置:网站首页 如何根据机内码判断汉字和西文字符的关系 基于不带字库的图形LCD模块汉字显示解决方案

基于不带字库的图形LCD模块汉字显示解决方案

2024-06-03 08:45| 来源: 网络整理| 查看: 265

 

摘要 针对不带汉字字库的图形点阵液晶模块的系统,嵌入GB2312-80字库芯片,利用国标区位码和液晶模块的特点实现汉字和西文字符的混合显示。本文介绍了汉字机内码与区位码的相互转换关系,以及利用T6963C作控制器的液晶模块YJ240D的基本原理,探讨了实际应用中此类液晶模块在嵌入式仪器仪表中混合显示的硬件设计和软件实现方法。

关键词 液晶模块 区位码 汉字字模库

 

引言目前,在嵌入式智能仪器仪表中,常用的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

A (LED+)

-

LED背光正电源输入端(+5V)

2

K (LED-)

0V

LED 接地端

3

VSS

0V

信号地

4

VDD

+5V

逻辑和LCD正驱动电源信号地

5

VLCD

-10V>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;

      }

}



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有