历史上的今天
今天是:2025年03月05日(星期三)
2018年03月05日 | 采用VB6.0编制的汉字处理程序
2018-03-05 来源:eefocus
一、LCD显示汉字的经典做法
现在越来越多的智能产品具有汉字显示功能。
如何高效、快速地完成汉字显示的编程呢?经典的做法是将16x16完整的汉字点阵库,(270k),全部装入闪存或EPROM中,单片机根据要显示的汉字的内码,计算出汉字点阵的地址,再读取32个点阵字节,按照LCD显示的特性,重新排列点阵的次序后送显示。这种方法成本高、使用芯片多、功耗大,不适合非总线单片机(不扩展总线)系统的产品开发。另外,由于所有的计算、控制工作全部由单片机来完成,增加了编程的难度,延长了开发时间。
用VB6.0编制的一个汉字处理程序(Hz_Make),可以自动生成LCD点阵屏显示汉字的单片机汇编程序(MCS-51系列)。使用简单,可以随时修改要显示的汉字,而不必人工干预。
二、VB6.0编制的汉字处理程序的功能
Hz_Make可以完成以下的功能:1.扫描要显示的汉字,删除重复的汉字。2.对汉字重新编码。3.提取汉字相对应的点阵,按LCD显示要求,纵向排列(见附图)。4.自动生成:1).点阵表(Zm_Hz.asm);2)散转程序(Zc_Hz.asm);3)跳转程序(jmp_Hz.asm)。
Hz_Make内部可以处理7000个不同的汉字,处理速度快,减少单片机程序的编制,提高了工作效率。
当显示的汉字多、点阵表无法全部装入单片机的闪存中时,可以将点阵表放入E2PROM24xx中,采用间接寻址的方法读取。
三、LCD显示汉字举例
以“银行排队主机”汉字显示的编程为例。LCD的控制芯片是KS0107、KS0108;128x64点阵纵向排列。
1.用记事本生成一个Hz.TXT文件。
每行必须有一个标号(如:shuzi:),每行的汉字个数与LCD点阵屏每行的汉字个数相同,不足的添加空格。所有符号、数字必须全角输入。
2.运行Hz_Make,生成Zm_Hz.asm、Zc_Hz.asm、jmp_Hz.asm三个单片机汇编程序。
3.在单片机汇编主程序中蕴涵上述三个文件:

四、总结
按照上述的方法,也可以提取ASCII的点阵。在实际应用中,还可以将单片机要处理的复杂运算,生成数据表格,使单片机不工作在高主频,以查表方式快速完成计算。这对手持产品降低功耗、延长工作时间,都非常有意义。

下一篇:C语言main函数的标准定义
史海拾趣
|
第一种痛 巨痛——机箱篇: DIY爱好者永远买不到合适的机箱,不是太大,就是太小,好不容易看到一个大小合适的,安装孔,插接件,开关旋钮都不合适,买回来以后,电钻,钢挫等等高精尖装备轮番上阵,熟练的话,在腰酸背痛,满手创伤,垃圾遍地的情况下搞定,要是 ...… 查看全部问答> |
|
请教:交换机的MAC芯片的MII接口和CPU连接就可以管理MAC吗 ? 本信息来自合作QQ群:电子工程师技术交流(12425841) 群主在坛子ID:Kata -------------------------------------------------------------------------------------------- 请教一个问题 交换机的MAC芯片的MII接口和CPU连接就可以管 ...… 查看全部问答> |
|
在做项目时,发现在WinCE下面,不管是播放什么采样率的音频文件,I2s都工作一个采样率下(比如不管播放44.1K还是8k的的音频文件,I2S始终都是工作在44.1K)。也就是说其实我的平台的驱动对于codec的采样率是固定的。对于这个我很疑惑。后来在网上看 ...… 查看全部问答> |
|
将两块ARM2440开发板(分别称为A板和B板)通过SPI接口对接起来,其中,A板的SPI0接B板的SPI1, A板的SPI0工作在主模式,B板的SPI1工作在从模式,现在可以确定硬件连接没有问题,使用DMA方式,从A板传输数据到B板时,如果选择SINGLE SERVICE模式,则 ...… 查看全部问答> |
|
看了一些书,大致了解了一堆概念,想做点东西,但不知学习曲线是什么? 烦请老手指点,我应该先学习哪方面驱动,再研究哪方面驱动。或者以DDK范例为准,先去研究哪个,再去研究哪个。 非常感谢! … 查看全部问答> |
|
在ads里面打开一个.mcp工程时出现下面信息:大家有知道这是什么原因的吗? The following access path in target 褼ebugInExRam?cannot be found: {Project}..\\arm The following access path in target 褼ebugInExRam?cannot be found: {Proj ...… 查看全部问答> |
|
用STM32的keil那个开发板试了试HID的DEMO,没用任何问题。现在想用它实现一个USB的键盘,结果发现DEMO里收发的数据只有1字节,在描述符里把那个ReportSize改成8了,但是只要一发送数据,USB设备就reset了。这是什么原因啊?… 查看全部问答> |
|
当我初始化串口时,因为对库函数不熟,没有找到对CR2操作的函数或方式,只有这样USART->CR2 |= 0xAC;但是我在寄存器窗口看,没有变化啊!!!请老师指点一下。void UartInit(void){ // Initial& ...… 查看全部问答> |




