历史上的今天
返回首页

历史上的今天

今天是: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.在单片机汇编主程序中蕴涵上述三个文件:

4563

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

25314


推荐阅读

史海拾趣

C&K Components公司的发展小趣事

进入新时代,C&K继续坚持创新驱动的发展战略,不断加大在研发和创新方面的投入。公司紧跟行业趋势,积极探索新技术、新工艺和新应用,推出了一系列具有创新性和领先性的开关产品。同时,C&K也注重与客户的沟通和合作,深入了解客户需求,提供个性化的解决方案和优质的服务。这些举措使C&K在激烈的市场竞争中始终保持领先地位,并赢得了更多客户的认可和支持。

这些故事展示了C&K Components公司在电子行业中的发展历程和取得的成就。从初创时期的坚持与探索,到60年代的转型与突破,再到90年代的行业领先地位确立,以及千禧年代的并购与融合和新时代的创新与发展,C&K始终保持着对技术的热爱和对市场的敏锐洞察,不断推动公司向前发展。

Ferranti Electric Inc公司的发展小趣事

为了更好地满足全球客户的需求,Ferranti Electric Inc公司积极实施全球化战略。公司不仅在英国本土拥有生产基地和研发中心,还在全球范围内设立了多个分支机构和办事处。通过全球化布局,公司能够更好地了解不同市场的需求和特点,为客户提供更加定制化的产品和服务。同时,公司也积极参与国际竞争和合作,提升其在全球电气行业的影响力。

Esico-Triton公司的发展小趣事

Esico-Triton公司成立于XXXX年,起初是一个小型的电子设备研发团队。当时,创始人[XXXXX]和[XXXXX]看到了电子设备市场的巨大潜力,于是决定合作创办一家公司。他们的初衷是开发一款能够简化工作流程的电子设备。在公司创立初期,资金紧张,研发条件有限,但团队成员凭借着对技术的热情和专业知识,成功研发出了第一款产品——一款便携式数据处理器。这款产品因其便携性和高效性受到了市场的欢迎,为Esico-Triton的后续发展奠定了坚实的基础。

E-tec Interconnect Ltd公司的发展小趣事

随着全球对环境保护意识的提高,E-tec也积极响应这一趋势。他们投入资金进行环保设施的建设,采用环保材料和工艺进行生产。同时,E-tec还注重资源的循环利用和节能减排,通过一系列措施降低了生产过程中的能耗和排放。这些努力不仅为公司带来了良好的社会声誉,也促进了公司的可持续发展。

Amkor公司的发展小趣事

E-tec Interconnect Ltd成立于XX世纪初,起初是一家专注于电子连接器设计与制造的小型公司。在创始团队的带领下,E-tec注重基础技术的积累,投入大量资源进行研发和创新。他们成功开发了一系列高精度、高可靠性的连接器产品,为公司的后续发展奠定了坚实的基础。

BALLUFF公司的发展小趣事

作为一家世界领先的传感器制造商,BALLUFF公司始终坚持全球化战略与本土化发展的结合。在全球60多个国家设有代表处,并在38个国家拥有销售、生产和开发的子公司。同时,公司在德国、美国、瑞典、巴西、匈牙利、中国和日本等地建立了自动化产业和能源产业生产基地。这种全球化布局使得BALLUFF能够更好地服务全球客户,满足不同地区的市场需求。同时,公司也注重本土化发展,通过深入了解当地市场和客户需求,不断推出符合当地市场需求的产品和服务。

这五个故事展示了BALLUFF公司在电子行业中的发展历程和取得的成就。从初创时期的机械修理厂到如今的全球传感器制造领军企业,BALLUFF凭借其技术创新、产品质量和市场拓展能力,不断在电子行业中取得突破和进展。同时,公司也积极适应市场变化,不断调整战略和业务模式,以适应全球化趋势和客户需求的变化。

问答坊 | AI 解惑

[ZT]DIY心中永远的痛

第一种痛 巨痛——机箱篇: DIY爱好者永远买不到合适的机箱,不是太大,就是太小,好不容易看到一个大小合适的,安装孔,插接件,开关旋钮都不合适,买回来以后,电钻,钢挫等等高精尖装备轮番上阵,熟练的话,在腰酸背痛,满手创伤,垃圾遍地的情况下搞定,要是 ...…

查看全部问答>

请教:交换机的MAC芯片的MII接口和CPU连接就可以管理MAC吗 ?

本信息来自合作QQ群:电子工程师技术交流(12425841)   群主在坛子ID:Kata -------------------------------------------------------------------------------------------- 请教一个问题 交换机的MAC芯片的MII接口和CPU连接就可以管 ...…

查看全部问答>

wince下的音频驱动关于混音问题

在做项目时,发现在WinCE下面,不管是播放什么采样率的音频文件,I2s都工作一个采样率下(比如不管播放44.1K还是8k的的音频文件,I2S始终都是工作在44.1K)。也就是说其实我的平台的驱动对于codec的采样率是固定的。对于这个我很疑惑。后来在网上看 ...…

查看全部问答>

请教关于2440SPI的DMA数据传输方式的问题

将两块ARM2440开发板(分别称为A板和B板)通过SPI接口对接起来,其中,A板的SPI0接B板的SPI1, A板的SPI0工作在主模式,B板的SPI1工作在从模式,现在可以确定硬件连接没有问题,使用DMA方式,从A板传输数据到B板时,如果选择SINGLE SERVICE模式,则 ...…

查看全部问答>

新手提问:驱动学习曲线

看了一些书,大致了解了一堆概念,想做点东西,但不知学习曲线是什么? 烦请老手指点,我应该先学习哪方面驱动,再研究哪方面驱动。或者以DDK范例为准,先去研究哪个,再去研究哪个。 非常感谢! …

查看全部问答>

ucos移植到arm7有问题

在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 ...…

查看全部问答>

贴片元件的焊接

贴片元件的焊接 随着ARM等单片机的使用增多。这些元件多数为贴片元件。对于过去只使用焊接方便的元件的人来说焊接贴片元件就有些生疏了。最近设计了一个贴片的电路。学着焊接。这里面的一些成功做法写出来给大家看一下。 首先,不要怕失败!多练 ...…

查看全部问答>

stm32做USB键盘的问题

用STM32的keil那个开发板试了试HID的DEMO,没用任何问题。现在想用它实现一个USB的键盘,结果发现DEMO里收发的数据只有1字节,在描述符里把那个ReportSize改成8了,但是只要一发送数据,USB设备就reset了。这是什么原因啊?…

查看全部问答>

STM8A关于串口问题???

当我初始化串口时,因为对库函数不熟,没有找到对CR2操作的函数或方式,只有这样USART->CR2 |= 0xAC;但是我在寄存器窗口看,没有变化啊!!!请老师指点一下。void UartInit(void){    // Initial& ...…

查看全部问答>

F5418与F5418A具体区别有哪些??

F5418与F5418A具体区别有哪些??…

查看全部问答>