一种汉字实时输入显控系统设计
扫描二维码
随时随地手机看文章
0 引言
随着电子信息技术的发展,中文操作界面在控制系统中的应用越来越广泛。而在一些单片机人机接口系统中,大多只能显示事先取好字模点阵的汉字,在需要实时大量输入汉字的显控处理应用中,利用传统显控设计方法是无法实现的;本文设计一种显控系统,该系统以单片机为核心,通过键盘输入汉语拼音,通过汉字区位码索引表查找汉字,最后在LCD上实时显示所输入的汉字。
1 系统结构及硬件电路设计
为使系统硬件电路结构简单,采用4×4行列式键盘实现按键输入;采用带有汉字字库的液晶显示模块RT12864M实现显示功能,RT12864M是128×64点阵的图形液晶显示模块,内置国家标准的一、二级汉字字库,可显示汉字及图形;CPU选取了常见的AT89C52单片机,可完全实现控制要求。系统的硬件接口电路如图1所示。
2 系统的软件设计
2.1 主程序设计思路
系统的主程序设计流程为:首先在键盘上输入所要显示的汉字的拼音键,利用单片机来扫描与识别键盘,得到正确的拼音组合,然后根据输入的拼音组合查找汉字区位码索引表找到相同音汉字的区位码与汉字个数,在液晶屏的最后一行显示所输入的拼音对应的汉字,最后通过光标的移动,按确认键来选择所要输入的汉字,并让其在液晶屏的第一行显示,至此,完成了一个汉字的查找与显示。
2.2 按键处理程序
2.2.1 按键排布及处理
CPU采用中断方式扫描键盘,提高CPU效率;由图1可知,P1.0~P1.3为行线,P1.4~P1.7为列线,列线经与门和AT89C52的INT1相连。无键闭合时,INT1为高电平,有键闭合时,INT1为低电平,向CPU申请中断,CPU响应此中断,转向中断服务程序。首先通过程序读取按键的行首键号和列值,并求出键号(键号=行首键号+列值),即地址偏移量,然后查键值表即可确定对应的键值。从图2系统按键排布图中可以看出,本系统按键数为16个,而显示汉字所需拼音个数为26个,因此需进行复键编排与处理。
2.2.2 四复键判别处理子程序
某个键上有四个拼音字母,对于这样的键应特殊处理。例如表1所示,偏移量为05的四复键,上有字母PQRS。具体算法为:40H里存的是该键的地址偏移量,计数器计的是按键次数,当第一次按下此键时,计数器为0,所得键值就是地址偏移量,当第二次按下此键时,计数器为1,键值为1×8+05H=0DH,当第三次按下此键时,计数器为2,键值为2×8+05H=15H,当第四次按下此键时,将计数器清0,并以键值18H查表,如此循环。
2.2.3 三复键处理子程序
对于三复键,即键上有三个字母,例如表2所示,此键上有字母ABC,表示为三复键。具体算法为:40H里存的是该键的地址偏移量,计数器计的是按键次数,当第一次按下此键时,计数器为0,所得键值就是地址偏移量,当第二次按下此键时,计数器为1,键值为1×8+0=08 H,当第三次按下此键时,计数器为2,键值为2×8+0=10H,然后再将计数器清0,如此循环。
2.2.4 查找汉字区位码及汉字显示处理方法
区位码表的结构为:DB'B',00,00,00,0B0H,0C5H,12H。其中前四个单元为四个拼音键值,后两个是汉字的区位码,最后一个是该拼音对应汉字的个数,所以区位码每行有七个单元。区位码的查找方法:先让地址指针指向表头,也就是第一行,让每行的前四个拼音键值与存入到内存中的拼音键值比较,若相同则为找到区位码,若不等则要修改地址指针,让地址指针指向下一行的拼音键值,直到找到该拼音的区位码。若地址指针大于地址表中的最大地址值则表示该拼音组合不存在。当汉字区位码查找成功时,就要在LCD上显示汉字,首先要调用液晶初始化程序,在LCD显示该拼音对应的所有汉字,然后通过光标的移动,按确认键来选择所要输入的汉字并显示。
3 结束语
文中对复键输入作了详尽的分析,在此基础上编写了复键处理程序;介绍了液晶显示模块RT12864M,并根据该模块的特点编制了汉字查找与显示程序;最后利用伟福仿真试验系统对所编写程序进行仿真检测,所有程序均通过检测并可实现所设定的功能。此系统可用于控制及检测领域,可模块化生产,为多种产品提供实时输入显示汉字模块,为现有产品的人机界面改造提供新的方法。