进入旧版 | 服务项目 | 成功案例 | 联系方式 | 过客留言 | 友情链接
   
设为首页
加入收藏
联系我们
网站首页 | 新闻资讯 | 操作系统 | 办公软件 | 网络软件 | 工具软件 | 媒体动画 | 网页制作 | 网站开发 | 程序开发 | 平面设计
Photoshop视频教程 | Word入门 | Flash入门 | JScript | VBScript | ASP | PHP | ADO | 网页特效 | 3DS MAX6.0命令 | 系统进程
您当前的位置:GOODSGY电脑学习网 -> 程序开发 -> C/C++ -> 文章内容  
嵌入式系统中文输入法的设计

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

  引言www.goodsgy.com

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

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

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

  简单的中文拼音输入法www.goodsgy.com

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

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

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

  2:a b c 3:d e f 4:g h iwww.goodsgy.com

  5:j k l 6:m n o 7:p q r swww.goodsgy.com

  8:t u v 9:w x y zwww.goodsgy.com

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

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

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

  以下是两个结构的定义:www.goodsgy.com

  typedef struct py_node{www.goodsgy.com

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

  unsigned int father; //父节点ID号www.goodsgy.com

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

  }PY_NODE;www.goodsgy.com

  typedef rom struct py_subnode{www.goodsgy.com

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

  struct py_subnode *prev; //指向前一PY_SUBNODE的指针www.goodsgy.com

  struct py_subnode *next; //指向下一PY_SUBNODE的指针www.goodsgy.com

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

  }PY_SUBNODE;www.goodsgy.com

[1] [2]  下一页

在百度中搜索:嵌入式系统中文输入法的设计
在Google中搜索:嵌入式系统中文输入法的设计
在Yahoo中搜索:嵌入式系统中文输入法的设计

收藏到网摘:新浪VIVI 365key 我摘 POCO网摘 博采中心 YouNote 和讯网摘 天天收藏
[] [返回上一页] [打 印] [收 藏]

 相关文章    最新文章
· [图文] 将字体嵌入PowerPoint文件随身携带..
· 把Google地图嵌入网页 就是这么简单
· ASP实现邮件发送普通附件和嵌入附件
· [组图] 用Photoshop打造嵌入人体的按钮
· CSS层叠样式表:链接还是嵌入?
· html页面中嵌入另一个html页面
· [组图] 如何在Dreamweaver中嵌入式框架
· 在电子邮件中嵌入Skype标签的具体方法
· 在Word中嵌入已有的Excel工作表
· [组图] Linux嵌入式无线可视门铃系统的设计..
 
· SOA与数据挖掘在税收系统的应用
· 微软架构师谈编程语言发展之二
· 微软架构师谈编程语言发展之一
· 浅谈C++/CLI中引用类型的栈对象
· [图文] 资源DLL与语言选择菜单的实现
· [图文] 用VSTS代码验证工具捕捉C/C++错误
· C/C++:如何在程序中加载JPG图片?
· 嵌入式系统中文输入法的设计
· 内存调试技巧:C 语言最大难点揭秘
· C程序实现汉字内码与GB码

∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论…]
站内搜索

精彩图文
  网站导航  
操作系统 办公软件 网络软件
Vista Windows2003 WindowsXP Windows2000/NT Windows9X/ME Linux 其他 Word Excel Powerpoint Outlook 金山系列 其他 网页浏览 上传下载 联络聊天 邮件工具 服务器软件 网络辅助
工具软件 媒体动画 网页制作
系统工具 媒体工具 压缩工具 图文处理 文件管理 其他 3DMAX Authorware Director Maya 视频处理 其他 Flash Dreamweaver FireWorks FrontPage LiveMotion Golive HTML/CSS 其它
网站开发 平面设计 程序设计
ASP JSP PHP CGI JavaScript VBScript XML/SOAP Web服务器 Photoshop PhotoImpact CorelDraw Illustrator Freehand 设计欣赏 其他 VB VC .NET C/C++ DELPHI JAVA

冀ICP备05019428号
Copyright © 2004-2008 电脑学习网 Inc.All rights reserved.
TEL:13832340607
QQ:39873155
E_Mail:goodsgy(#)hotmail.com   (把(#)替换成@)
MSN:goodsgy(#)hotmail.com   (把(#)替换成@)