0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

B超系统中的汉字输入方案的设计与实现

电子设计 来源:今日电子 作者:项四平 2021-04-14 14:16 次阅读

在计算机迅速发展和普及的今天,用计算机对汉字进行输入、编辑和处理已经非常普遍了。在医疗电子产品中,越来越多的场合需要显示汉字。

在使用高性能CPU时,可采用嵌入式操作系统(如Linux、WinCE)所支持的GUI程序来实现友好的人机界面。在很多情况下,需要使用相对简单的MCU控制整个系统,如采用单片机STC89C516RD+实现系统控制和人机界面,此时必须寻求占用较少资源的低成本解决方案。本文对中文输入法在B超系统中的实现进行了介绍。

字库设计

通常的汉字显示方式是:先用字模软件提取所需要的汉字点阵,取得的数据可放入ASM汇编文件中,接着在单片机集成开发环境中对汇编文件进行编译——生成BIN文件,然后用编程器将BIN文件烧录到芯片。在使用时是读取芯片中的汉字点阵数据,将其写到字符存储器中。

如果需要显示的字少,点阵数据就少,将数据烧录到程序存储器即可。实现中文输入法,显示的字比较多,数据量比较大,需要专门生成字库数据,放入扩展的数据存储器中。

构造汉字库,通常有如下方法:使用程序空间做小字库;使用大容量的ROM芯片专门做汉字库,这种方法在小型便携式设备中一般不采用;为了降低成本和减小体积,对于速度要求不是很高的场合可采用大容量的串行数据存储器,如AT45DB041B。

UCDOS软件中的文件HZK16和文件ASC16分别为16×16的国标汉字点阵文件和8×16的ASCII码点阵文件,以二进制格式存储。最常用的ASCII码点阵为5×7(横向5个点,竖向7个点)或7×9。对于给定字体的字符,字形的点数越多,字形的质量越好,而所需的数据量越大,占用存储空间越多。对于不同的显示系统,要显示同一图形,所需的数据排列顺序各不相同,现有的HZK16和ASC16文件不一定能直接应用到自己的系统中,常用的方法是用排列方式可自由定义的字模软件取数据再放入程序或数据存储区。

通过比较,发现选用12×12的点阵形式表示汉字、采用8×12的点阵形式表示ASCII码可以兼顾美观和减少硬件开支,而且有部分程序模块可共用,也为后期中英文显示界面、菜单操作界面奠定了基础。字模软件取数据时必须一个方向是8的倍数,因此12×12将自动调整为16×12或12×16,点阵字符如图1所示。

图1 点阵字符

不难发现,表示一个汉字需要24B,其中12B有一半是空白的,如果将由字模取得的数据压缩一下,18B就足以存储一个汉字的点阵数据。

硬件框图

如图2所示,单片机STC89C516RD+的内部集成了64KB闪存和1280B SRAM,利用其内部资源不需要再扩展外部程序存储器,译码器、屏幕地址产生器、多路地址/数据切换、电视信号产生器、电视信号合成大都采用FPGA编程实现,信号合成后经D/A转换送监视器屏幕显示。

图2 硬件框图

软件实现

据调查,汉字输入方案中,拼音输入方式占80%以上,形码用户则少于20%。汉字输入法的实质是建立一种按键组合到汉字编码的映射关系,使用全键盘的B超系统与使用标准键盘的PC的输入法本质上是相同的。建立索引表就可实现从按键组合到汉字编码的映射,如图3所示。

图3 按键组合索引表示意图

Keil C编译环境下,“拼音输入法模块”可以从网上下载到,医疗系统常要用到医院名称和患者姓名,为此在该模块基础上,增加了一些常见的地名、姓名用字,共收录汉字4120个,用字模软件提取点阵,并进行压缩形成汉字点阵数据库,放入数据存储区,接着建立字模组合索引表,连同一些参数和表格数据共用一片EEPROM 39VF010就可以了。51系列单片机最大可寻址64KB存储空间,可用P1口作页地址实现对64KB以上数据空间的访问。

相对有限键的中文输入法(如手机),全键盘的中文输入法利用按键比较容易完成26个字母以及其他功能的操作。

字库准备好之后,接下来的软件设计关键在于构建拼音组合树(如图4所示)的遍历算法、同音字的查找算法。这里要占用51单片机的一些内部RAM资源,存放拼音代码、当前拼音组合映射的字库地址ADDR0、下一拼音组合映射的字库地址ADDR1和当前显示汉字的首地址ADDR等。根据拼音组合用遍历算法查得该拼音组合的第一个汉字的点阵地址,用向上、向下键实现翻页,通过ADDR与ADDR0或ADDR1的比较,来保证在同一拼音组合内查找汉字。

图4 拼音组合树示例

结论

本方案已在某B超系统上成功实施,目前已经实现病历号的中文拼音输入及存储,借助于该汉字库实现了中文界面显示。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1599

    文章

    21270

    浏览量

    592788
  • 单片机
    +关注

    关注

    5997

    文章

    43944

    浏览量

    620444
  • 存储器
    +关注

    关注

    38

    文章

    7119

    浏览量

    161910
收藏 人收藏

    评论

    相关推荐

    几种手机汉字输入法的测评

    由于汉字输入法的良莠不齐,汉字编码设计人员缺乏规范的科学指导,凭主观意图对汉字进行编码,造成输入汉字效率普遍偏低,难以符合信息快速传播的要求
    发表于 06-22 11:40 2433次阅读
    几种手机<b class='flag-5'>汉字输入</b>法的测评

    中文输入法在B系统的应用

    中文输入法在B系统的应用本文对中文输入法在B
    发表于 11-30 10:15

    【mfxp】Windows XP系统删除和增加汉字输入法的方法

    。  第五步:在桌面上单击“语言栏”的“输入法选择”按钮,可以看到刚才所删除的汉字输入法已经不在了。(二)增加汉字输入法。  第一步:在Windows XP
    发表于 01-31 11:24

    Protel99汉字输入补丁

    Protel99 中文汉字输入补丁程序 点击下载
    发表于 04-25 16:15

    请求大佬分享一种Microwindows的汉字输入

    请求大佬分享一种Microwindows的汉字输入
    发表于 04-22 06:36

    如何去实现基于嵌入式Linux的汉字输入法呢

    基于嵌入式Linux的汉字输入法An Approach to Chinese Input based on Embedded LinuxAbstract: The Chinese input
    发表于 11-04 06:14

    Protel 99SE 中文汉字输入补丁

    Protel 99SE 中文汉字输入补丁
    发表于 03-12 01:57 0次下载

    基于嵌入式Linux的汉字输入

    汉字输入法是嵌入式系统输入的一项重要技术,它的功能与性能直接影响到嵌入式系统在中国的推广与应用。主要研究了如何用c 语言实现
    发表于 08-06 09:47 13次下载

    基于ROM单片机的汉字输入法的实现

    在需要实时大量输入汉字的显示控制处理应用中,利用传统单片机实现显示控制的设计方法是较难实现的。带汉字字库的液晶模块的使用使得小容量ROM单片
    发表于 12-06 15:26 35次下载

    WPS汉字输入方式在CAXA电子图板上的应用

    WPS汉字输入方式在CAXA电子图板上的应用 CAXA电子图板是自主开发的一种操作简单、功能齐全、具有智能化工程标注
    发表于 10-18 18:45 1401次阅读

    单片机显控系统中的汉字输入

    单片机显控系统中的汉字输入 对于PC机来说,输入汉字是非常简单的,但在一些单片机人机接口系统中,进行
    发表于 12-08 15:25 2768次阅读
    单片机显控<b class='flag-5'>系统</b>中的<b class='flag-5'>汉字输入</b>

    汉字的表示方法有哪些?

    汉字的表示方法有哪些?    1.汉字输入编码    为了能直接使用西文标准键盘把汉字输入到计算机,就必须为汉字设计相应的
    发表于 04-13 11:27 5937次阅读

    基于VxWorks的汉字输入实现

    论述了汉字显示的基本原理,基于OpenGL提出了在VxWorks嵌入式系统汉字输入及显示的实现方案,并以1616点阵字库为例,给出了关键程
    发表于 03-01 15:56 31次下载
    基于VxWorks的<b class='flag-5'>汉字输入</b>法<b class='flag-5'>实现</b>

    pcb绘制中汉字输入软件

    pcb绘制中汉字输入软件
    发表于 09-05 18:14 0次下载

    嵌入式linux 中文输入法,基于嵌入式Linux的汉字输入

    基于嵌入式Linux的汉字输入法An Approach to Chinese Input based on Embedded LinuxAbstract: The Chinese input
    发表于 11-01 16:32 8次下载
    嵌入式linux 中文<b class='flag-5'>输入</b>法,基于嵌入式Linux的<b class='flag-5'>汉字输入</b>法