小容量系统图形LCD的汉显解决方案 北京科技大学 董国胜 郗安民 在嵌入式系统应用中,人机界面的可操作性越来越为人们所重视,而用汉字来显示菜单是可操作性的前提;由于受到存储容量的限制,在汉字较多的情况下一般的解决方案是采用内建点阵字库的LCD模块,而这一类显示模块的使用灵活性却大受限制。本文从实际应用出发,介绍了一种在图形LCD中基于查表法的软件算法,可以在不影响显示灵活性的前提下最大化地节约系统存储资源。 查表法解决方案算法 在很多的人机界面中,虽然显示的汉字数量较多,但实际无重复的汉字数却较少,一个显示了2000个汉字菜单的系统中,用到的汉字却可能只有300个。这样看来,建立一个完 在嵌入式系统的开发中,人机交互界面的设计至关重要,特别是在资源受限的小容量系统中。汉字显示对于提升用户友好性和可操作性具有决定性的作用。然而,存储大量汉字的点阵字库会占用宝贵的系统资源,限制了显示的灵活性。为解决这一问题,北京科技大学的董国胜和郗安民提出了一种基于查表法的图形LCD汉字显示解决方案。 传统方法通常是采用内置点阵字库的LCD模块,但这会限制模块的使用灵活性。查表法的思路在于,通过分析实际应用场景,发现虽然显示的汉字数量多,但实际使用中重复的汉字并不多。例如,一个包含2000个汉字的菜单,可能只需300个不同的汉字。因此,建立一个完整的国标字库并不经济。 查表法的算法主要包括两部分:存储无重复汉字的点阵数据和汉字机内码索引。在程序存储区创建两个表格,一个是WordLib[][],用于存储这300个汉字的点阵数据,每个汉字占用32字节。另一个是WordIndex[],存储这些汉字的机内码,作为它们在WordLib中的位置索引。两者保持顺序一致。例如,WordLib中前六个汉字可能是"?"、"电"、"子"、"设"、"计"、"应"的点阵数据,而WordIndex[]对应存储这些汉字的机内码字符串"?", "电子设计应用"。 在显示汉字时,通过WordFind函数查找WordIndex表中指定汉字的位置。如果找到,根据索引获取WordLib中的点阵数据并显示;如果未找到,显示默认的占位符(如"?")。如果在调试过程中发现某个汉字显示为"?",表示该字尚未录入,只需将其点阵数据添加到WordLib末尾,并更新WordIndex。 无重复汉字的提取过程通常通过编程实现,例如使用VC++。程序读取所有菜单汉字,将ASCII码和汉字分别处理。对每个汉字,检查它是否已存在于缓冲区,如果不存在则添加。这样,最终得到的缓冲区只包含菜单中实际使用的汉字,极大地节省了存储空间。 这种查表法解决方案巧妙地平衡了显示灵活性和存储资源的限制,使得在小容量系统中实现高效且灵活的汉字显示成为可能。这种方法尤其适用于嵌入式设备,如家用电器、工业控制器等,需要简洁高效的用户界面且资源有限的场合。通过优化算法,不仅可以提高系统的运行效率,还能降低开发成本,为用户提供更直观、易用的操作体验。
- 粉丝: 6
- 资源: 912
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 下载.png112分v额且财务去去
- devecostudio-windows-4.1.0.400
- STSPIN32G4-demo板资料
- 昆虫害虫检测54-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- jetbrains-JetBrains公司的IDE介绍及其在软件开发中的应用
- 284.基于java的旅游网站(含报告).zip
- python selenium爬虫用的浏览器和驱动96.0.4664.45
- 算法实现排序算法 Python 实现.zip
- JavaWeb资源代码文档资料.zip
- 哈希表-数据结构领域哈希表的概念、操作与应用场景