您的位置 首页 基础

T6963C液晶控制器快速显现汉字的办法详解

T6963C液晶控制器快速显示汉字的方法详解-T6963C是一款在仪表中使用得比较多的一种液晶显示控制器。提供文本和点阵两种输出方式,但点阵输出的速度比文本显示的速度要慢很多。在文本方式下,其CGROM控制128个英文ASCII码字符,CGRAM则可由用户自定义32个汉字或128个自定义图形。

T6963C是一款在外表中运用得比较多的一种液晶显现操控器。供给文本和点阵两种输出办法,但点阵输出的速度比文本显现的速度要慢许多。在文本办法下,其CGROM操控128个英文ASCII码字符,CGRAM则可由用户自界说32个汉字或128个自界说图形

因为外表中运用的汉字常常超越32个,因而,需求对汉字的显现作特别的处理。但因为汉字的处理有些特别,因而,许多开发人员即偷闲,直接运用点阵需出。

昨日,我到一家比较有名的电力企业观赏,见其外表的显现速度十分之慢,能够判定它的显现是选用点阵而不是选用文本办法,所以写了此文章。

原理:运用液晶故有的CGRAM,将一个汉字作为四个字符,以文本办法显现汉字。

办法:CGRAM中能显现的字符从80H到FFH,共128个。其间,每接连四个字符作为显现一个汉字。故能显现的汉字量为32个。但在体系中运用的汉字数可能会超越32个。所以,选用数据缓冲技能,在需求显现汉字时,暂时构成字符显现码。

汉字点阵是以表格方式ChineseTable保存在数据区中。

树立一个长度为16的字符数组CharFlagTable,用来保存当时体系CGRAM中可显现的汉字编号。为了加速体系显现汉字的速度,将汉字分红两组:一级汉字;二级汉字,一级汉字永久保存在CGRAM中,不需求记载编号;而二级汉字在需求显现时,才调于到CGRAM中,需求CharFlagTable来记载编号。其间一级汉字为16个,规定在ChineseTable中前16个汉字为一级汉字,其他的汉字为二级汉字。

程序初始化时,将一级汉字调入和前16个二级汉字一起调入CGRAM;并将CharFlagTable的内容清为0。

WriteOneChin函数完结办法:

根据需求显现的汉字的编号,核算此汉字对应的CharFlagTable编号Num和序列编号Offset,核算办法为:

if (汉字的编号》=16)

{

Num=(汉字的编号-16)%16;

Offset=(汉字的编号-16)/16;

}

再判别对应Num编号的CharFlagTable中的序列编号,假如两者持平,则直接显现该汉字字符,不然,将对应汉字字模调入CGRAM中后,再显现该汉字。

为了进步显现速度,能够将整个显现形式改为非图形形式。

界说大局静态数组:

staTICsigned char CharFlagTable[16];

界说如下函数:

void InitCGRAM(void);

//功用:完结初始化CGRAM字符显现区,初始化CharFlagTable表格,程序逻辑如下:

{

for (I=0;I《16;I++) CharFlagTable[I]=0;

for (I=0;I《32;I++)WriteCGRAM(I);

}

void WriteCGRAM(unsigned int ChinNo);

//功用:完结将对应编号的汉字的字模点阵信息写入到对应的CGRAM内存区,程序逻辑如下:

{

if (ChinNo《16) Num=ChinNo;

else Num=(ChinNo-16)%16+16;

Num*=4;

Num+=0x80; ////得到对应编号汉字的四个字符中榜首个字符编号;

{将编号为ChinNo的汉字数组送入到Num到Num+3四个字符中}

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/jichu/347835.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部