DIY编程器网
标题:
基于LPC2138的中文输入系统设计
[打印本页]
作者:
liyf
时间:
2012-1-27 13:59
标题:
基于LPC2138的中文输入系统设计
???? 摘要:给出一种基于Philips公司的ARM7微控制器LPC2138的中文输入系统的设计方法。系统采用4×4接口键盘、LCM240128图形液晶模块以及存储器等实现T9中文输入法,可以进行汉字、英文、数字符号等文本信息的输入。该中文输入系统可广泛地应用于各类电子设备的研发,具有较高实用价值。
引言
目前,以液晶和数字键盘实现的人机交互式界面在智能终端中广泛采用。在不同的应用场合,对人机界面的要求也不同,一些情况下只要求简单参数的显示和选择,而在一些信息终端中还要求中文的输入。因此,研究基于单片机的中文输入方法,对于各类电子装置的开发具有一定的现实意义。本系统基于ARM7微控制器LPC2138,通过扩展4×4键盘和液晶实现了T9中文输入系统的设计。
1 LPC2138简介
Philips公司的32位ARM7微控制器LPC2138具有强大的存储空间,内嵌32 KB片内静态RAM和512 KB的Flash存储器;可以实现在系统可编程(ISP)、在应用可编程(IAP);2个8路10位A/D转换器,1个D/A转换器,转换迅速准确;引脚资源丰富,多达47个可承受5 V电压的通用I/O口;多个串行接口,包括2个16C550工业标准UART、2个高速I2C接口、SPI,以及具有缓冲作用和数据长度可变功能的SSP协议。LPC2138可以移植μC/0S-II操作系统,软件的可移植性好,工作可靠。
2 硬件系统
2.1 系统体系结构
一个完整的文本输入系统由主控器、输入设备和显示设备3部分构成。本系统结构如图1所示。采用LPC2138芯片作为主控器,扩展4×4接口键盘作为输入设备,扩展LCM240128图形液晶模块作为显示设备。此外,系统还扩展了E2PROM AT24C256作为字库字模数据存储芯片。
2.4 液晶模块电路
液晶模块电路如图5所示。采用图形液晶显示模块LCM240128作为显示设备。其内部不含中文字库,配合字库存储芯片AT24C256可以实现24×24中文汉字的输入。
3 软件系统
T9拼音输入系统软件部分的主要任务是将键盘输入的数字序列转换成汉字。其主要由3部分构成:
①将键盘输入的数字序列转换为拼音编码;
②根据拼音编码找到对应的汉字编码;
③根据汉字编码找到二级字库存储芯片中对应的汉字字模数据的首地址。
3.1 拼音、汉字表格式定义
在程序中,拼音编码的数据格式如下:
汉字编码表为多个常量数组构成。其格式如下:
在E2PROM中,二级字库字模的存储格式为一维数组,而在汉字输出匹配时采用的是汉字内码格式(2个十六进制数表示),所以需要将汉字内码的行和列二维地址换算成一维地址,从而对应找到24x 24字库中汉字字模的起始位置。
对于最终匹配好的汉字编码表中的汉字,取出其汉字内码的行和列分别作为code_a和code_b(以“白”字为例,其汉字内码为B0D7,则code_a=0xb0、code_b=0xd7)。则其对应的存储器中24×24汉字字模首地址的计算关系为:存储器中汉字字模首地址=[(code_a一0xal)+(code_b一0xb0)×94]×(24×24/8)。
3.3 文字输入判断
T9键盘输入时,需要对键值进行一系列的判断。根据功能的不同,分别需要对数字键、翻页键、退格键、数字/汉字切换键、字母/汉字切换键、符号键以及确定、取消键进行顺次的判断。其判断流程如图7所示。
①系统针对于所输入的数字序列“224”,在拼音编码索引表中进行匹配,得到两个拼音“bai”和“cai”;
②通过光标选择“bai”后,在拼音编码索引表中可以获得汉字编码表中对应汉字的位置,即T9PY_IDX数组中的*hz_bai;
③在汉字编码表中获取hz_bai[]数组数据,送屏幕进行显示“白百摆败拜佰柏稗”;
④通过数字键选择对应的汉字后,获取该汉字的ASCII码BOD7;
⑤将汉字内码的ASCII码通过汉字内码地址的转换,找到存储芯片中该汉字字模数据的首地址,将字模数据送液晶显示,完成一个汉字的输入。
结语
本文介绍了基于Philips公司的ARM7微控制器LPC2138的T9中文输入系统的设计方法,实现了汉字、英文字母、数字符号等文本信息的输入。本方案可以为基于单片机的产品开发、中文输入法研究等提供参考,具有一定的实用价值。
欢迎光临 DIY编程器网 (http://diybcq.com/)
Powered by Discuz! X3.2