微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于单片机的智能终端中汉字显示的处理

基于单片机的智能终端中汉字显示的处理

时间:03-16 来源:互联网 点击:

引言

近年来,以单片机以及嵌入式系统平台为基础的各种智能终端广泛应用于各行各业的专用设备和产品中,也将逐渐渗透到家用电器和各种消费类电子产品中。

单片机以其价格低廉、技术成熟而广泛应用于各种低端产品之中,但是由于单片机的寻址能力有限,限定了其最大的存储空间。比如最常用的MCS-51单片机,其直接寻址的数据存储空间为64k字节,如果通过扩展来得到更大的存储空间,既增加了系统成本,也为数据读取操作带来了不便(对扩展区间的访问要通过端口操作实现)。所以在单片机系统的设计中,存储空间的大小是一个很重要的因素。

在PC机上的汉字显示,是来自存储在PC机上的汉字库。汉字库中的汉字以点阵形式组成。如果以一个16x16点阵的汉字库作为基本字模库,每个汉字占32 个字节。GB2312中规定了6763个二级汉字,则需要的存储空间大体为6763×32字节,约200多K字节。显然,如果要在单片机终端上显示汉字,不可能把以上所有的“汉字库”信息都放在单片机系统的存储空间中。

本文以我实验室独立开发的智能餐饮信息系统为例,首先介绍关于汉字显示的基础知识,然后说明在实际应用中如何对系统汉字库进行裁减,只保留需要在终端上显示的“汉字库”信息,最后介绍在实际应用中会涉及到的有关字模提取和字模转化的处理方法。

1:关于汉字显示的基础知识

在中文WIN9X下,我们输入一个双八位字节,就得到一个汉字,就会认为这双八位字节就是对应这样的字形,这是错误的。这个双八位字节被称为汉字的内码(详见下文),内码对于字库来说,只是查找字形的索引。通过这个双八位字节可以唯一的从汉字库中查询得到其对应的汉字字形数据(字模)。对应不同编码标准的字体,内码对应了不同的字形。我们常用的是国标GB2312信息交换用汉字编码字符集>>,包含了最常用的简体中文文字。

如果系统所使用的“汉字库”中每个汉字按16x16点阵模式存放,则每个汉字由16x16=256个点组成,占用16x2=32个字节的连续内存单元。每个字节有8位,每一位都有两种状态,即亮或暗,分别用1或0来表示。在16x16点阵中,用各个位的亮暗来表示一个字,凡是笔画经过的地方都为1(亮), 没有笔画的地方都为0(暗),这样就可以表示不同的汉字。

图1 是“大”字16x16点阵模式排列放大后的结果。

在PC机中,组成字模的32个字节默认的排列顺序如图2所示:每行两个字节,低字节为DB0~DB7,高字节为DB8~DB15,每字节8比特,共16行32个字节。图中标出了第1、第2个字节和第31、第32个字节的存放位置。

于是,我们可以得到“大”字的汉字字模(32个字节,10进制表示):(1,0,1,0,1,0,1,0,1,4,255,254,1,0,2,128,2,128,2,64,4,64,4,32,8,16,16,14,96,4,0,0)

2.字模提取及数据文件下载

2.1 在实际应用中,需要进行字模提取来适应有限的存储空间

我实验室独立开发的餐饮业信息系统中就是应用单片机来实现智能点菜终端。系统构成如图3所示:

在以上系统中,终端中存储着所有的菜谱信息,操作员通过点菜终端可以浏览菜谱。简单的操作流程为:当操作员通过终端点好了菜以后,终端以无线方式将菜肴信息发送到基站,基站通过串口将数据发送给服务器,服务器对数据进行处理之后要进行入库、打印和向终端返回等操作。

在本系统中所采用的单片机为MSC-51,带32K的外部RAM和128K的FLASH存储器。其中,128K字节的FLASH存储空间用作数据存储器,记录了菜谱、桌位等和业务相关的信息,另外有64K字节用作存储汉字库(字模)。

GB2312中规定常用的两级汉字6763个(每个汉字有32字节),占用200多K字节的存储空间。显然,不能把汉字库中的所有汉字字模都下载到终端上,只能是选择终端需要显示的汉字的字模进行提取和下载。终端的64K存储空间可以存储大约2000个汉字。在实际应用中一般酒店的菜肴数量在 200~600之间,要用到的汉字数在400~1800之间,所以64K的存储空间足够本系统的应用。

2.2 如何进行字模提取和下载处理

在本系统中,终端数据存储区中的字库信息、菜谱、桌位等业务信息是从服务器上下载得到的。首先,服务器中的处理程序提取相关数据并生成各个下载信息文件,然后处理程序将这些下载文件下载到终端上。系统和终端通过串口线相连,以串口通信方式将数据下传到终端的数据存储区。

字模裁减及填充终端字库下载文件流程如图4 所示:

首先,运行在服务器上的处理程序遍历数据库中的菜谱表、桌位表等所有包含下载信息的、带有汉字的表记录

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top