无线电电子与电气工程百科全书 用于图形 LCD 的位图字体编辑器。 无线电电子电气工程百科全书 作者提出了自己设计的计算机程序,旨在为当今常见的图形 LCD 创建和编辑字体。 近年来,业余无线电爱好者在其开发中越来越多地使用图形 LCD 来显示信息。 大多数这些设备的一个特点是存在由外部控制设备部分或完全加载的字符生成器,或者完全不存在。 在第一种情况下,当初始化指示器时,需要将字体(一组符号图像)加载到字符生成器存储器中。 要在屏幕上显示符号,程序只需将其代码(字符发生器中的地址)发送到 LCD 控制器,屏幕上符号的显示由 LCD 控制器提供。 在第二种情况下,在屏幕上显示符号所需的所有操作均由控制设备的程序执行。 通常,软件开发系统的库中可以找到现成的程序。 但在这两种情况下,都需要外部字体。 一方面,这很好,因为它可以使用最适合解决特定问题的字符集。 但是,您必须寻找必要的字体或自己创建它们。 这并不是说图形 LCD 的字体文件很少见。 它们很容易在互联网上找到,但并不总是可以使用找到的字体。 事实上,不同的 LCD 控制器以不同的方式展开熟悉度矩阵中的字符图像。 例如,WG0107指标的KS0108(KS12864)控制器垂直翻转图像字节,如图1所示。 6963、控制器RA240128指示器WG2-水平(图00)。 在第一种情况下,字符 R 必须由字节序列 00H、00H、7H、09FH、19H、29H、49H、1H 描述,在第二种情况下 - 11EH、11H、1H、14EH、12H、11H、00H、XNUMXH 。 因此,为具有字符图像的水平字节扫描的LCD准备的字体将在垂直扫描指示器上不正确地显示,反之亦然。
从编程的角度来看,字体是一个常量数组。 当开发在 LCD 上显示信息的程序时,不同的编程语言会使用不同的规则来描述此类数组。 例如,在汇编语言中,常量由 db(定义字节)指令指定,而在 BASIC 语言中,由数据运算符指定。 在 C 中,常量数组可以简单地通过一组值来指定。 十六进制数的表示方式也不同。 不同的编程语言使用例如 0xNN、&hNN、$NN、NNH 等格式,其中 NN 是十六进制数字。 鉴于上述情况,我们可以得出结论,找到具有合适的现成字体的文件并不是一件容易的任务,并且考虑到其中可能需要包含一些特定字符,该任务通常变得完全无法解决。 在这种情况下,您必须更正在某处找到的字体或从头开始开发一种新字体。 在专门程序(所谓的字体编辑器)的帮助下可以很方便地做到这一点。 这样的编辑器可以在互联网上找到。 它们的主要缺点(至少是作者所讨论的缺点)是焦点狭窄。 看来该程序是由一位爱好者开发的,旨在解决他的特定问题。 例如,一个程序以单一编程语言编译器可以理解的格式生成输出文件,而另一个程序则生成仅适合某种类型 LCD 的字符图像。 因此,要么无法在他们的帮助下创建所需的字体,要么必须纠正输出文件,例如使用文本编辑器,这需要花费大量时间并且很少会出现错误。 这些程序编辑其他编辑器创建的字体的能力通常非常有限。 所提出的 CG-Edit 程序是由作者开发的,作为一种更通用的工具。 它允许您以业余无线电实践中最常用的格式开发新的且正确的先前创建的(包括“外国”)字体。 允许使用以下熟悉的尺寸(第一个因素是水平像素数,第二个因素是垂直像素数):6x8、8x8、12x16、16x16、16x24、24x16、24x24。 您可以设计和编辑正像和负像图像中的字体,以及将熟悉的字节扫描方向从垂直更改为水平,反之亦然。 输出信息可以优化用于各种版本的 BASIC 和 C 的汇编语言程序。 该程序专为运行 32 位和 64 位版本 Windows 的个人计算机而设计。 它由单个可执行文件 CG-Edit.exe 组成,无需安装,易于使用且具有直观的用户界面。 启动程序后,计算机屏幕上会打开一个窗口,如图所示。 3. 在其左上方有一个表格形式的编辑字符选择区域,在该区域的单元格中放置了 Windows-1251 代码页的字符。 仅显示代码为 20H-0FFH 的字符,控制代码区域 0H-1FH 丢失,因为它们没有图形等效项。 拉丁语、西里尔语和数字的所有主要字符都位于 7FH-0BFH 代码区域之外,因此该区域可以方便地用于创建正在解决的任务所需的任何字符,而不是根据 Windows-1251 代码页创建可用的字符。
窗口右侧有一个编辑区域,其中会显示对所需字符的熟悉程度,而该区域是空的。 左下角有屏幕按钮“创建字符生成器”和“导入字符生成器”。 第一个将程序置于创建新字符生成器的模式。 这将打开一个窗口,用于输入所创建字体的参数,您必须在其中从列表中选择熟悉的大小以及其中字节扫描的方向。 需要注意的是,并非所有熟悉的大小都允许双向字节扫描。 事实上,该计划的重点是信息包装的最大密度。 毕竟,在其帮助下创建的字体的主要“消费者”是内存相对较小的微控制器设备。 上图。 从图 4 可以看出,在熟悉的 6x8 px 空间中水平扫描一个字节时,仅有效使用了六位数字,而两位数字仍然是多余的。 字符图像总共占用八个字节。 对于垂直扫描(图5),每个字符空间列占用一个完整字节,因此字符图像只需要六个字节。 每个字体字符两个字节的差异相当显着,因此在所有列数不是八的倍数的字符空间中,只允许垂直扫描。
选择字体选项后,单击“创建”屏幕按钮。 这将关闭参数输入窗口,主窗口的形式如下图所示。 6.
该程序在计算机的 RAM 中创建一个空的字符生成器映像。 它将保持为空,直到通过按“导入字符生成器”屏幕按钮从现有文件将字体加载到其中,或者直到您通过按“创建字符生成器”屏幕按钮创建自己的字符。 “字符选择”字段中的字符并不反映字符生成器图像的实际内容。 它们始终保持不变,仅用于定向。 在编辑区域中,程序会显示所选尺寸的熟悉图像。 所创建或编辑的字符生成器的符号(其单元格在“符号选择”表中被选中(在其中以红色背景突出显示))显示在“可编辑熟悉度”字段中。 最初,这是一个代码为 20H 的符号。 要移动到另一个符号,您需要用鼠标左键单击相应的表格单元格。 熟悉度上方的铭文描述了所创建字体的参数。 用鼠标左键单击像素来编辑熟悉度的内容。 每次这样的点击都会反转像素的状态。 编辑字段的底部有四个用于组像素控制的屏幕按钮。 单击其中一个可以将熟悉的内容在其中向上、向下、向左或向右移动一个像素。 按屏幕上的“擦除”按钮可以完全清除熟悉的内容,按“恢复”按钮可以恢复正在编辑的字符的原始样式。 由于删除和回滚操作会永久删除编辑符号的结果,因此程序在执行之前会发出适当的警告消息。 熟悉度的底行和右列以黄色背景突出显示。 这是一个提醒,其中包含像素是不受欢迎的,因为这些区域充当 LCD 屏幕上相邻字符的分隔符。 然而,“不受欢迎”一词并不意味着禁止。 您可以打开像素,这必须通过创建“D”或“W”等符号来完成。 当使用大的熟悉空间时,下面的两行和最右的两列会以黄色背景突出显示,因为为了更好地感知大字符,建议增加它们之间的间隙。 编辑区域下方有两个屏幕按钮,您可以使用它们完全清除字符生成器,也可以通过更改熟悉的扫描字节方向来重新编码。 如果您尝试删除未保存更改的字体,程序将显示警告消息。 允许任意顺序选择符号并对其进行多次重新编辑。 任何像素的状态第一次改变后,相应选择单元格中的字符将以粗体突出显示并放大。 这表明它已被编辑。 编辑过程中程序窗口中显示的所有内容如图所示。 7. 可以看到符号“3”和“Щ”已经被编辑过,现在符号“Щ”正在编辑中,其“尾部”位于不需要的区域中。
如有必要,您可以随时将熟悉的字节扫描从垂直更改为水平,反之亦然。 为此,请单击屏幕按钮“更改展开模式视图”。 该操作同时作用于字符生成器的所有字符。 执行后,屏幕上会显示相应的消息,并且熟悉度上方显示的字体参数将发生变化。 如果更改扫描方向会导致字体图像尺寸增大,则无法更改。 关于使用负字体的几句话。 负字体的概念本身已经成为一种返祖现象,因为许多现代 LCD 控制器可以自行反转图像。 尽管如此,该程序仍然能够创建和编辑负字体。 与使用正字体没有什么区别。 无论如何,符号在计算机屏幕上看起来都是正面的。 他们的图像向负片的转变发生在将创建的字体写入计算机磁盘的过程中。 展望未来,我们注意到,当加载包含负字体的文件进行编辑时,信息会以反转(正)形式输入计算机内存中的字符生成器图像,并在写入磁盘时再次反转。 设置字体参数后,程序窗口中会出现另一个面板,标题为“输出文件”。 它包含允许您以所需格式将字符生成器文件写入磁盘的控件。 在“行格式”下拉列表中(图 8),选择输出文本文件中的行结构。 逗号分隔的十六进制序列前面可以有关键字“Data”或“.Db”,也可以省略。
在“数字格式”下拉列表中(图 9)选择表示十六进制数字的方式。 两个十六进制数字 NN 可以附加列表中的前缀之一或后缀“h”。
通过选中“负字体”项,您可以创建具有这种字体的文件。 要将文件写入计算机磁盘,请单击“保存字符生成器”屏幕按钮。 它的路径显示在标准 Windows 对话框中。 文件的默认名称是 FontXXxYYmn.fnt,其中 XXxYY 是熟悉的格式; m - 字符“v”或“h”,分别表示字节的垂直或水平扫描; n为字符“p”或“n”,分别表示字符的正像或负像; fnt 是名称扩展。 可以通过在开头或结尾添加有效字符来修改文件名。 但是,不建议破坏“FontXXxYYmn”构造。 据此,程序在加载时识别“其”字体的参数。 否则,程序将认为该文件为“外星人”并需要手动输入参数。 如有必要,在如图 3 所示的窗口中编辑完成的字符生成器文件。 XNUMX、单击“导入字符生成器”屏幕按钮。 标准 Windows 文件上传对话框将打开,您应在其中选择要编辑的文件。 该文件的下载过程因其格式而异。 使用相关编辑器创建的文件将加载到其中,无需用户干预。 当然,如果上述结构保存在文件名中,则有关字体参数的所有必要信息都可以在文件名中找到。 如果文件名不包含识别所需的信息,程序会提示您手动输入,并打开一个窗口,您必须在其中指定熟悉的大小、扫描字节的方向、正负字体文件。 因此,在编辑“外部”文件之前,您应该了解这些参数。 如果参数正确,那么“外国”字体大概率会加载成功。 用于读取文件中包含的信息的算法“理解”各种表示形式的十进制和十六进制数字,从 Data 和 .Db 语句中提取有用的信息,并忽略注释。 也许唯一可能成为正确加载的障碍的是文件中以未注释的形式存在的任何附加信息。 编辑下载的字体的过程与创建新字体的过程没有什么不同。 最后一步是将完成的工作保存在一个文件中,该文件将成为程序“自己的”。 编辑程序文件:ftp://ftp.radio.ru/pub/2016/03/CG-Edit.zip。 作者:A. Savchenko 查看其他文章 部分 业余无线电设计师. 读和写 有帮助 对这篇文章的评论. 科技、新电子最新动态: 花园疏花机
02.05.2024 先进的红外显微镜
02.05.2024 昆虫空气捕捉器
01.05.2024
其他有趣的新闻:
免费技术图书馆的有趣材料: ▪ 文章 直到 1974 年,在不知道第二次世界大战结束的情况下,谁在哪里进行党派活动? 详细解答 ▪ 文章 无线电接收器的非接触式存储器。 无线电电子电气工程百科全书 本页所有语言 www.diagram.com.ua |