单片机显控系统中的汉字输入
对于PC机来说,输入汉字是非常简单的,但在一些单片机人机接口系统中,进行汉字的实时输入是很困难的,而大多只能显示事先已取好字模点阵的汉字,但是每个16×16汉字点阵由32个字节表示,对于需要灵活使用大量汉字的场合,程序量太大,实现起来有很大难度;下面针对汉字库的结构进行分析,设计一种实用的汉字拼音输入法,并给出液晶汉字显示模块的基本程序。
1 汉字的内码表示
针对不同的操作系统汉字内码表示不同,如在苹果机的OS上使用的是GB231280汉字编码,Window s系统则使用GBK汉字编码,还有Unicode编码,GB180302000,方正748编码等。由于GB 231280是最早(1980年)的、由中国国家标准局颁布的《通用汉字字符集及其交换标准码》,所以以后产生的各编码都兼容了GB2312,他共收入汉字、字母、符号等7 445个,其中汉字6 763个,包 括一级汉字3 755个,二级汉字3 008个,是中国大陆及海外使用简体中文的地区(如新加坡等)强制使用的惟一中文编码,所以也称为标准汉字库。
每个汉字的点阵数据需要占据内存32 B,有笔划显示的地方为1,无笔划显示的地方为0。然后通过单片机的C51语言将点阵数据转换成点阵液晶可显示的点阵数据形式。
2 汉字库的制作
本节中论述将16×16点阵的宋体汉字库烧录到512 kB的存储器中的具体方法。
本例中使用的存储芯片为AM29C040,该芯片是AMD公司生产的512 kB的FLASH ROM,读者也可以使用其他容量不小于256 kB的产品,但在具体电路设计时应注意引脚定义和逻辑关系,并在烧录时选择相应的型号;UCDOS软件有一个名字为HZK16DAT 的文件,这就是16×16的国标汉字点阵文件,在该文件中按汉字区位码从小到大依次存有国标区位码中的所有汉字,每个汉字占用32 B,每个区为94个汉字,其大小为262 kB,可以全部写入AM29C040,除了可以存储全部的国标汉字外还可以存储8×16的ASCII码点阵数据以及汉字语句编码数据,使用起来更加方便。
在实际操作中,硬件汉字库的制作和普通的程序存储器的编程没什么不同,注意将HZK16文件调入时要使用二进制方式打开,编程并校验成功后即可将存储器取下备用,这样一个硬件汉字库就制作好了。
3 设计思路
在本实例中,从低成本、低功耗设计理念出发,以Philips公司的P89C51RD2单片机为核心,输入用4×4的复用键盘,既可输入数字,也可输入字母或拼音,汉字库保存在AMD公司的A M29C040(512 k×8 b)FLASH上,液晶显示模块DMF50174(320×240),显示控制器SE D1335是日本SEIKO EPSON公司出品的液晶显示控制芯片。各个芯片的片选(控制信号)由74 HC138译码产生。
键盘输入汉语拼音,单片机检索区位码,从FLASH中读出汉字点阵设计,显示在LCD上,并利用P89C51RD2的IAP功能在线进行编程,在线改变用户界面或接口功能。

4 汉字输入
P89C51RD2是Philips公司于2001年发布的一款非常优秀的单片机,该单片机是基于8位80C51单片机的派生产品,他在完全保留80C51指令系统和硬件结构的大框架外,进行了多方面的加强扩展和创新,P89C51RD2将原有的对外数据和程序存储器的16位寻址机制加以利用,把片上的RAM 扩展到1 kB,片上的FLASH EPROM扩展到64 kB,具有ISP(在系统可编程)和IAP(在应用中编程),具有6时钟和12时钟模式,6时钟模式外部晶振0~20 MHz,12时钟模式外部晶振可达0~33 MHz。
作为一般应用系统来说,一二级字库的汉字已足够使用,汉
字区位码2 B表示一个汉字,64 kB片上的FLASH EPROM共可存储汉字3万多个,设计中以数组形式在FLASH中存储,一二级6 763个汉字共用13 526 B。 实例做法如下:用汉语拼音作为数组名,以该拼音所包含的汉字的区位码为数组元素,并 将所有一二级汉字以代码形式定义在程序中,这是一个比较烦琐的工作,工作量比较大。 从键盘输入汉语拼音,通过输入的汉语拼音索引查询名字相同的数组,从数组中取得汉字的区位码放入数组qwm中,所取汉字个数放入qwm_counter中,显示在LCD上,如果一页显示不完,则可通过翻页来显示,直到显示完为止,从中选取所需汉字显示并保存。还可利用IAP功能进行在应用中编程,实现代码重构。定义: 用上面所示的puthz16程序,利用区位码从FLASH中读取这些汉字的点阵数据,再用画点函数将汉字点阵写入显示缓存并利用汉字显示程序将汉字显示在LCD上或通过串口进行通讯,将汉字编码发送出去。 5 汉字显示 本设计中LCD显示使用的DMF50174是320×240点阵,由SED1335控制,每屏可显示20×15共 300个汉字,下面给出最基本的显示程序,在此基础上可以很容易地在LCD上显示汉字。 该设计方法已实际应用在某系统显控器上,证明使用可靠、效果良好,对于低成本、低功耗的设计有一定的借鉴意义。由于篇幅所限,IAP功能没有列出,读者可以参考有关文献自己设计。






- 汉字(18471)
几种手机汉字输入法的测评
2929
单片机最小系统的组成部分 使用proteus软件搭建最小单片机系统的操作方法
3612
单片机发中文短信对汉字的处理
单片机的LED汉字条屏显示工作原理是什么?
VF2-2403工程版Chromium103浏览器的汉字输入方法分享
[原创]单片机系统中的汉字显示
【mfxp】Windows XP系统删除和增加汉字输入法的方法
如何去实现基于嵌入式Linux的汉字输入法呢
如何用stm32单片机接收APP发下来的汉字
请教51单片机串口通讯发送汉字的问题
单片机应用系统设计的基本方法
40单片机在温控系统中的应用
26基于单片机的智能终端中汉字显示的处理
23基于嵌入式Linux的汉字输入法
13基于单片机控制的LED点阵显示屏系统
303基于单片机的LED汉字显示屏设计与制作
143串行EEPROM在MCS 51单片机系统中的应用
49单片机系统的工作原理设计
26应广单片机 PFS154系列 代烧录
NY8A050D单片机,AD单片机,九齐代理
基于ROM单片机的汉字输入法的实现
35基于单片机的LED汉字显示屏的设计与仿真
2972基于单片机的LED汉字显示屏的设计与Proteus仿真
4118
单片机教程十七:单片机的中断系统
5158
单片机并行扩展口在小型汉字显示屏中的应用
1259
单片机系统应用中的抗干扰措施
1125
WPS汉字输入方式在CAXA电子图板上的应用
1727Proteus在单片机系统设计中的应用简介
1678Pocket PC中汉字输入法分析与实现
18基于单片机的智能终端汉字显示处理
54基于VxWorks的汉字输入法实现
31基于单片机的LED汉字显示屏的设计
256Pocket PC中汉字输入法分析与实现
0基于DSP与单片机的LCD显示控制系统设计
7Protel 99se汉化包免费下载(附汉字输入补丁说明与安装方法)
0基于单片机的数显游标卡尺数据采集系统
30如何使你的单片机显示系统中加入中文显示的功能
1单片机中不带字库LCD液晶屏如何显示少量汉字详细方法和代码说明
451单片机最小系统是什么?51单片机最小系统的电路介绍
44使用51单片机实现点阵汉字平滑滚动显示原理图和程序及资料免费下载
18使用PIC单片机控制12864汉字液晶模块显示文字的源代码免费下载
16B超系统中的汉字输入方案的设计与实现
2667
嵌入式linux 中文输入法,基于嵌入式Linux的汉字输入法
8AVR单片机 实验一 单片机基本输入输出(GPIO)实验
17单片机IO口输入输出模式判断
16关于单片机系统中光耦的作用
7824STM32单片机的GPIO输入、输出模式与配置方法
10095单片机的最小系统由什么组成 单片机的最小系统包括哪些
14264怎么测单片机系统频率
567
电子发烧友App




评论