位置:51电子网 » 技术资料 » 测试测量

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

发布时间:2008/6/3 0:00:00 访问次数:2533

        

    

    摘 要:在实际应用中,特别是在需要实时大量输入汉字的显控处理应用中,利用传统单片机显控设计方法是无法实现的;通过对汉字内码的分析,给出硬件汉字库的制作方法,提出针对一、二级汉字库编码检索的拼音输入检索方法, 利用philips p89c51r d2单片机为核心处理芯片,设计一种具有通过键盘用汉语拼音输入法输入汉语拼音, 利用相应程序通过编码检索,在显控系统中实时输入汉字,并在lcd上显示或通过rs 232串口输出汉字点阵数据的方法。

    关键词:p89c51rd2;汉语拼音;汉字库;lcd;c51

    对于pc机来说,输入汉字是非常简单的,但在一些单片机人机接口系统中,进行汉字的实时输入是很困难的,而大多只能显示事先已取好字模点阵的汉字,但是每个16×16汉字点阵由32个字节表示,对于需要灵活使用大量汉字的场合,程序量太大,实现起来有很大难度;下面针对汉字库的结构进行分析,设计一种实用的汉字拼音输入法,并给出液晶汉字显示模块的基本程序。

    1 汉字的内码表示

    针对不同的操作系统汉字内码表示不同,如在苹果机的os上使用的是gb231280汉字编码,window s系统则使用gbk汉字编码,还有unicode编码,gb180302000,方正748编码等。由于gb 231280是最早(1980年)的、由中国国家标准局颁布的《通用汉字字符集及其交换标准码》,所以以后产生的各编码都兼容了gb2312,他共收入汉字、字母、符号等7 445个,其中汉字6 763个,包 括一级汉字3 755个,二级汉字3 008个,是中国大陆及海外使用简体中文的地区(如新加坡等)强制使用的惟一中文编码,所以也称为标准汉字库。

    每个汉字的点阵数据需要占据内存32 b,有笔划显示的地方为1,无笔划显示的地方为0。然后通过单片机的c51语言将点阵数据转换成点阵液晶可显示的点阵数据形式。

    2 汉字库的制作

    本节中论述将16×16点阵的宋体汉字库烧录到512 kb的存储器中的具体方法。

    本例中使用的存储芯片为am29c040,该芯片是amd公司生产的512 kb的flash rom,读者也可以使用其他容量不小于256 kb的产品,但在具体电路设计时应注意引脚定义和逻辑关系,并在烧录时选择相应的型号;ucdos软件有一个名字为hzk16dat 的文件,这就是16×16的国标汉字点阵文件,在该文件中按汉字区位码从小到大依次存有国标区位码中的所有汉字,每个汉字占用32 b,每个区为94个汉字,其大小为262 kb,可以全部写入am29c040,除了可以存储全部的国标汉字外还可以存储8×16的ascii码点阵数据以及汉字语句编码数据,使用起来更加方便。

    在实际操作中,硬件汉字库的制作和普通的程序存储器的编程没什么不同,注意将hzk16文件调入时要使用二进制方式打开,编程并校验成功后即可将存储器取下备用,这样一个硬件汉字库就制作好了。

    3 设计思路

    在本实例中,从低成本、低功耗设计理念出发,以philips公司的p89c51rd2单片机为核心,输入用4×4的复用键盘,既可输入数字,也可输入字母或拼音,汉字库保存在amd公司的a m29c040(512 k×8 b)flash上,液晶显示模块dmf50174(320×240),显示控制器se d1335是日本seiko epson公司出品的液晶显示控制芯片。各个芯片的片选(控制信号)由74 hc138译码产生。

    键盘输入汉语拼音,单片机检索区位码,从flash中读出汉字点阵设计,显示在lcd上,并利用p89c51rd2的iap功能在线进行编程,在线改变用户界面或接口功能。

    

    

    4 汉字输入

    p89c51rd2是philips公司于2001年发布的一款非常优秀的单片机,该单片机是基于8位80c51单片机的派生产品,他在完全保留80c51指令系统和硬件结构的大框架外,进行了多方面的加强扩展和创新,p89c51rd2将原有的对外数据和程序存储器的16位寻址机制加以利用,把片上的ram 扩展到1 kb,片上的flash eprom扩展到64 kb,具有isp(在系统可编程)和iap(在应用中编程),具有6时钟和12时钟模式,6时钟模式外部晶振0~20 mhz,12时钟模式外部晶振可达0~33 mhz。

    作为一般应用系统来说,一二级字库的汉字已足够使用,汉字区位码2 b表示一个汉字,64 kb片上的flash eprom共可存储汉字3万多个,设计中以数组形式在flash中存储,一二级6 763个汉字共用13 526 b。

    实例做法如下:用汉语拼音作为数组名,以该拼音所包含的汉字的区位码为数组元素

        

    

    摘 要:在实际应用中,特别是在需要实时大量输入汉字的显控处理应用中,利用传统单片机显控设计方法是无法实现的;通过对汉字内码的分析,给出硬件汉字库的制作方法,提出针对一、二级汉字库编码检索的拼音输入检索方法, 利用philips p89c51r d2单片机为核心处理芯片,设计一种具有通过键盘用汉语拼音输入法输入汉语拼音, 利用相应程序通过编码检索,在显控系统中实时输入汉字,并在lcd上显示或通过rs 232串口输出汉字点阵数据的方法。

    关键词:p89c51rd2;汉语拼音;汉字库;lcd;c51

    对于pc机来说,输入汉字是非常简单的,但在一些单片机人机接口系统中,进行汉字的实时输入是很困难的,而大多只能显示事先已取好字模点阵的汉字,但是每个16×16汉字点阵由32个字节表示,对于需要灵活使用大量汉字的场合,程序量太大,实现起来有很大难度;下面针对汉字库的结构进行分析,设计一种实用的汉字拼音输入法,并给出液晶汉字显示模块的基本程序。

    1 汉字的内码表示

    针对不同的操作系统汉字内码表示不同,如在苹果机的os上使用的是gb231280汉字编码,window s系统则使用gbk汉字编码,还有unicode编码,gb180302000,方正748编码等。由于gb 231280是最早(1980年)的、由中国国家标准局颁布的《通用汉字字符集及其交换标准码》,所以以后产生的各编码都兼容了gb2312,他共收入汉字、字母、符号等7 445个,其中汉字6 763个,包 括一级汉字3 755个,二级汉字3 008个,是中国大陆及海外使用简体中文的地区(如新加坡等)强制使用的惟一中文编码,所以也称为标准汉字库。

    每个汉字的点阵数据需要占据内存32 b,有笔划显示的地方为1,无笔划显示的地方为0。然后通过单片机的c51语言将点阵数据转换成点阵液晶可显示的点阵数据形式。

    2 汉字库的制作

    本节中论述将16×16点阵的宋体汉字库烧录到512 kb的存储器中的具体方法。

    本例中使用的存储芯片为am29c040,该芯片是amd公司生产的512 kb的flash rom,读者也可以使用其他容量不小于256 kb的产品,但在具体电路设计时应注意引脚定义和逻辑关系,并在烧录时选择相应的型号;ucdos软件有一个名字为hzk16dat 的文件,这就是16×16的国标汉字点阵文件,在该文件中按汉字区位码从小到大依次存有国标区位码中的所有汉字,每个汉字占用32 b,每个区为94个汉字,其大小为262 kb,可以全部写入am29c040,除了可以存储全部的国标汉字外还可以存储8×16的ascii码点阵数据以及汉字语句编码数据,使用起来更加方便。

    在实际操作中,硬件汉字库的制作和普通的程序存储器的编程没什么不同,注意将hzk16文件调入时要使用二进制方式打开,编程并校验成功后即可将存储器取下备用,这样一个硬件汉字库就制作好了。

    3 设计思路

    在本实例中,从低成本、低功耗设计理念出发,以philips公司的p89c51rd2单片机为核心,输入用4×4的复用键盘,既可输入数字,也可输入字母或拼音,汉字库保存在amd公司的a m29c040(512 k×8 b)flash上,液晶显示模块dmf50174(320×240),显示控制器se d1335是日本seiko epson公司出品的液晶显示控制芯片。各个芯片的片选(控制信号)由74 hc138译码产生。

    键盘输入汉语拼音,单片机检索区位码,从flash中读出汉字点阵设计,显示在lcd上,并利用p89c51rd2的iap功能在线进行编程,在线改变用户界面或接口功能。

    

    

    4 汉字输入

    p89c51rd2是philips公司于2001年发布的一款非常优秀的单片机,该单片机是基于8位80c51单片机的派生产品,他在完全保留80c51指令系统和硬件结构的大框架外,进行了多方面的加强扩展和创新,p89c51rd2将原有的对外数据和程序存储器的16位寻址机制加以利用,把片上的ram 扩展到1 kb,片上的flash eprom扩展到64 kb,具有isp(在系统可编程)和iap(在应用中编程),具有6时钟和12时钟模式,6时钟模式外部晶振0~20 mhz,12时钟模式外部晶振可达0~33 mhz。

    作为一般应用系统来说,一二级字库的汉字已足够使用,汉字区位码2 b表示一个汉字,64 kb片上的flash eprom共可存储汉字3万多个,设计中以数组形式在flash中存储,一二级6 763个汉字共用13 526 b。

    实例做法如下:用汉语拼音作为数组名,以该拼音所包含的汉字的区位码为数组元素

相关IC型号

Warning: Undefined variable $stockkeys in G:\website_51dzw\www.51dzw.com\code\tech\view.php on line 152

热门点击

 

推荐技术资料

音频变压器DIY
    笔者在本刊今年第六期上着重介绍了“四夹三”音频变压器的... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式