同城约会| 杂志期刊| 小说| 两性论坛| 军事电影| 两性知识| 电脑知识| 汽车| 旅游| 收藏
频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

嵌入式系统中文输入法的设计

来源:希赛网 作者: 出处:综艺读书 2007-07-21 
关 键 词:数据结构  设计  os  c语言  
下一页 1 2 

  摘 要:在基于嵌入式系统的智能终端中,中文人机交互界面是必须的功能,某些系统还要求中文文本输入。本文介绍了一种占用较少资源并适于在MCU上实现的中文输入法。

  引言

  目前,以LCD和数字键盘实现的人机交互式界面在智能终端中广泛采用。在不同的应用场合,对人机界面的要求也不同,一些情况下只要求简单参数的显示和选择,而在一些信息终端中,还要求文字的输入。

  在使用高性能CPU和标准显示设备的情况下,实现友好的人机界面可采用商用嵌入式系统( 如Linux或WinCE)所支持的GUI程序。但很多情况下,智能终端使用MCU,且其显示设备是非标准接口的小型LCD。此时,必须找到占用较少资源的低成本实现方法。

  笔者参加的智能终端项目就是一个比较典型的基于MCU的人机界面应用,使用128×64点阵式LCD模块,要求可显示Unicode编码的一、二级常用汉字库并可进行中文输入。此应用中输入法相关的代码和数据占用约20kB。在应用开发中,我们使用了实时操作系统μC/OS-II,相关内容可参考有关文献。

  简单的中文拼音输入法

  汉字输入法的实质是建立一种按键组合到汉字编码的映射关系,因此,使用数字键盘的嵌入式系统的输入法与使用标准键盘的PC机的输入法没有本质的不同,其区别主要在于嵌入式应用中处理器、存储器等资源比较有限。如对应汉字“你”,拼音输入法下PC键盘按键组合为“ni”,而在一般数字键盘下,其按键组合则为“64”。

  在多数手持式设备(如智能电话)中,以0~9数字键与几个简单的控制键实现汉字输入,比较着名的是在手机中广泛采用的T9 和iTap 输入法。这里我们介绍一种简单的拼音输入法的实现方法。

  一般终端键盘包括12个按键,分别是0~9数字键和“*”、“#”两个特殊键。按通用规则,数字1对应空格,其功能基本等同于PC机中的空格键,用于输入空格或作为当前汉字的确认键;2~9数字键分别对应下述汉语拼音字母:

  2:a b c 3:d e f 4:g h i

  5:j k l 6:m n o 7:p q r s

  8:t u v 9:w x y z

  而“0”、“*”、“#”键则作为输入法中的控制键。我们将“#”作为“选择键”,用于选取同一数字键组合下的不同拼音组合。

  输入法中使用了两个重要数据结构,分别是PY_NODE和PY_SUBNODE。每个PY_NODE对应一个数字键组合,PY_SUBNODE则对应一组拼音组合。由于一个数字组合可对应多个拼音组合(如“226”对应“ban”、“bao”、“can ”、“cao”),因此这两个结构实现的是一个两级的对应表。

  PY_NODE按树组织,而PY_SUBNODE按双向链表组织。二者的基本关系如图1所示。

  以下是两个结构的定义:

  typedef struct py_node{

  unsigned int son[8]; //对应下次2~9按键输入时应转到的PY_NODE的ID号

  unsigned int father; //父节点ID号

  struct py_subnode *ptrpy; //指向下属第一个PY_SUBNODE的指针

  }PY_NODE;

  typedef rom struct py_subnode{

  unsigned char py[7]; //本节点的拼音字符串

  struct py_subnode *prev; //指向前一PY_SUBNODE的指针

  struct py_subnode *next; //指向下一PY_SUBNODE的指针

  unsigned char *ptrUnicode; //指向本节点对应Unicode码表的指针

  }PY_SUBNODE;

更多文章 更多内容请看.NET移动与嵌入式技术  系统安全设置  系统安装手册专题,或进入讨论组讨论。
下一页 1 2 
收藏此文】【 】【打印】【关闭
较早的文章:RSA算法的实现——java版

较新的文章:
相关图文阅读
频道图文推荐
综艺读书宗旨
相关专题
·系统优化大全 (13915篇文章)
·系统安全设置 (18535篇文章)
·系统安装手册 (16396篇文章)
·系统备份专题 (13521篇文章)
·系统维护手册 (13053篇文章)
·.NET移动与嵌入式技术 (4933篇文章)
·系统解决方案 (2044篇文章)
热点标签: 数据结构  设计  os  c语言  
最新技术文档
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
百度推荐,商机无限
搜索您感兴趣的内容
Web 全站
综艺电脑频道编辑信箱  告诉我们您想看的专题或文章

Google

友情互链 | 收藏本站 | 联系我们 | 在线留言 | 京ICP备08008424号|