- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
几个编程的好网站
HYPERLINK /index.html /index.html
HYPERLINK /c51blog/index.html /c51blog/index.html
[分享]T6963C液晶控制器快速显示汉字的实现方案
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;I16;I++) CharFlagTable=0;? ? ?? for (I=0;I32;I++)WriteCGRAM(I);}?void WriteCGRAM(unsigned int ChinNo);//功能:完成将对应编号的汉字的字模点阵信息写入到对应的CGRAM内存区,程序逻辑如下:{? ? ?? if (ChinNo16) Num=ChinNo;? ? ?? else Num=(ChinNo-16)%16+16;? ? ?? Num*=4;Num+=0x80; ?////得到对应编号汉字的四个字符中第一个字符编号;{将编号为ChinNo的汉字数组送入到Num到Num+3四个字符中}}
请教各位高手,小弟昨天用16*2的LCD做个时钟显示“时时:分分:秒秒”,奇怪的是,秒不是一秒一秒的加,而是从0开始7~8秒的加,即0,8,15,22,29,37,44,51,58,05(分:01)....分和时走时准确。查了一天都找不到原因,只有请教各位了,谢谢大家!!程序如下:#includereg51.h#define uchar unsigned char#define ADB P2sbit ELCD=P3^5;sbit R_W=P3^4;sbit RS=P3^3;//LCD的引脚定义bit secflag=0;uchar sec_0=0,sec_1=0,min_0=0,min_1=0,hour_0=0,hour_1=0;uchar sec=0,
您可能关注的文档
最近下载
- PLC应用技术(西门子S7-1200)全套教学课件.pptx VIP
- 宿州市市直机关遴选公务员考试真题2024.docx VIP
- GBT 35694-2017 光伏发电站安全规程.pdf
- DB41T 2312-2022 波形钢腹板预应力混凝土组合箱梁桥施工规范.pdf VIP
- 征信简版电子版PDF个人信用报告最新版2024年可编辑带水印模板.pdf VIP
- 胃肠道肿瘤的基因检测与个体化治疗.pptx VIP
- 部编版语文四年级上册第二单元综合素质测评B卷(含答案).pdf VIP
- 《道路深层病害探地雷达无损检测技术规范》DB41 T2525-2023.doc VIP
- 中国儿童幽门螺杆菌感染诊治专家共识(2022) .pdf
- 2021届广东省华师附属高级中学(广州总校)三下学期5月综合测试(三模)文科综合地理试卷无答案.pdf VIP
文档评论(0)