EDN China > 技术文章 > 汽车电子 > 人机界面 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

中文输入法在B超系统中的实现

来源:今日电子/海鹰电子医疗系统公司科研所 项四平?? 2007年02月12日 ?? 收藏0

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

  在使用高性能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 硬件框图


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

单片机? 人机界面? 中文输入?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈