历史上的今天
返回首页

历史上的今天

今天是:2025年01月16日(星期四)

正在发生

2018年01月16日 | T6963C液晶控制器快速显示汉字的方法

2018-01-16 来源:eefocus

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中后,再显示该汉字。

为了提高显示速度,可以将整个显示模式改为非图形模式。

 

定义全局静态数组:

statIC signed 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四个字符中}

}


推荐阅读

史海拾趣

广东爱晟电子(exsense)公司的发展小趣事

随着业务的不断拓展,爱晟电子意识到品质是品牌的核心。公司引进了先进的生产设备和管理体系,严格按照ISO9001质量体系运作,确保产品质量的稳定性和可靠性。同时,公司还加强了对原材料的质量控制,与国内外优质供应商建立了长期稳定的合作关系。这些举措使得爱晟电子的产品在市场上赢得了良好的口碑,品牌影响力逐渐增强。

ETC2公司的发展小趣事

为了拓宽市场,ETC2公司积极寻求与其他行业的跨界合作。他们与汽车制造商合作,将ETC设备集成到新车中,实现了出厂即装ETC的目标。这一举措不仅提高了ETC设备的普及率,也为汽车制造商带来了更多的卖点。此外,ETC2公司还与支付公司合作,推出了ETC支付功能,使得用户可以通过ETC设备实现无感支付,进一步提升了用户体验。

科山芯创(COSINE)公司的发展小趣事

科山芯创(COSINE)公司成立于2017年,由一群对射频及模拟集成电路芯片充满热情的工程师创立。他们看到了中国电子行业中对于高性能、高品质芯片的巨大需求,于是决定成立一家公司,专注于这一领域的研发与设计。他们的初心是通过自主创新和核心技术,为国内外客户提供有竞争力的解决方案。

CalRamic Technologies Llc公司的发展小趣事

在21世纪初,随着电子行业的蓬勃发展,对于微型化、高性能电子元器件的需求日益增加。在这样的时代背景下,CalRamic Technologies Llc公司应运而生。公司由几位在电子行业有着丰富经验的工程师创立,他们看到了陶瓷电容器等元器件的巨大市场潜力。初创时期,公司面临着资金紧张和技术瓶颈等挑战,但团队凭借对市场的深刻理解和技术的不断创新,逐渐在电子元器件市场上占据了一席之地。

A-BRIGHT公司的发展小趣事

随着全球环保意识的提高,A-BRIGHT公司积极响应环保号召,将环保理念融入到产品研发和生产中。公司研发了一系列节能环保的电子产品,不仅满足了客户的需求,也为全球环保事业做出了贡献。这一举措提升了A-BRIGHT的品牌形象,也为其在竞争激烈的市场中赢得了更多客户的青睐。

这些故事虽然是虚构的,但它们基于电子行业的发展趋势和可能情况,展示了A-BRIGHT公司可能的发展路径和成功因素。希望这些故事能够满足您的需求。

Corsair Memory Inc公司的发展小趣事

Corsair Memory Inc公司,由Don Lieberman、John Beekley与Andy Paul于1994年在美国加州佛利蒙创立。起初,公司专注于为英特尔系统生产Cache-On-A-Stick (COAST)模组。然而,随着英特尔将快取内存由主板移至处理器晶体中,Corsair迅速调整战略,将注意力转向电脑内存市场。这一转变不仅使Corsair避开了潜在的市场风险,更为其后续的内存业务奠定了坚实的基础。

问答坊 | AI 解惑

怎样自己做电路板?

PCB图画出来了,怎样自己做电路板?需要那些工具以及制作过程,谢谢!!…

查看全部问答>

快来,应该来算一笔账

不久前中国移动整了一个活动,充800块钱话费送一年宽带和一部家庭电话,看起来好像超实惠的样子,但是……这账算下来,可还真不省钱。 先看这手机话费,充800,即时到账200,这不用说,充了就充了,剩下的部分,分12个月返还,每个月返还50块,还 ...…

查看全部问答>

MTK射频布线详细教程

MTK射频布线详细教程…

查看全部问答>

三菱PLC坏了吗?

我现在在客户这,调试一台设备,用三菱的FX2N--32MT的LPC加个4AD和2DA的模块。 在公司调试的时候好好的,一个多月前从上海发到乐清来。今天到了客户这发现调试,发现PLC的24V电压好像不正常。 X端没有信号,那指示灯也亮。Y端输出的指示灯亮了 ...…

查看全部问答>

开关电源欠压保护电路的设计

1 引言   保护电路的设计,无疑是电源设计中一个非常重要的环节,它对于提高电源工作的安 全可靠性、延长电源的使用寿命都起着十分重要的作用。在设计保护电路时,一方面要保证其功能完善,工作稳定可靠;另一方面应力求简单明了,避免繁复 ...…

查看全部问答>

小弟新人,诚心请教各位大侠,非诚勿扰

    小弟刚刚大学毕业,现在在一家做汽车电子的公司上班,可以说是初次接触到单片机和嵌入式领域,现在公司给我的工作是做MCU软件,但上了一个多月班发现有很多疑惑。老大在这一个多月来叫我们看了一本关于单片机的英文资料,然后写了I2C ...…

查看全部问答>

怪事求助【AT91RM9200+LINUX+PC6脚】

CPU:AT91RM9200 操作系统:LINUX2.4 在我的应用中,把PC6脚作为视频中断的输入脚,在把他设置为I/O功能并且输入的状态下,只要这个脚有电平变化,LINUX就死机,在超级终端上按什么键都没用。系统中ARM控制7,8个视频类芯片,其他的脚都很正常。期 ...…

查看全部问答>

为什么加了线程后,模拟器运行速度变慢????

在EVC4下面,我做中国象棋游戏,使用了线程,并构造函数里面初始化,可是一旦编译完成后,模拟器上面的运行速度慢得吓人。不知道是什么原因。哪位大侠帮忙看看吧。 声明:CWinThread* m_pThinkThread; 在构造函数:m_pThinkThread=AfxBeginThre ...…

查看全部问答>

求教:关于can初始化的问题

关于CAN初始化的问题; 为什么CAN_Init()函数调用有时候成功有时候失败? 之前做的一个项目CAN_Init()初始化都成功, 现在在原来基础上加个函数做别的功能 这个函数初始化就失败 真是搞不懂,我那个函数就是初始化systick 的函数,不知 ...…

查看全部问答>