LCD-STM32液晶显示中英文-(7.字模及显示原理)

这篇具有很好参考价值的文章主要介绍了LCD-STM32液晶显示中英文-(7.字模及显示原理)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

字模介绍

什么是字模

字模的构成

字模显示原理

字模制作

如何制作字模

字模寻址公式

存储字模文件


字模介绍

什么是字模

        有了编码,我们就能在计算机中处理、存储字符了,但是如果计算机处理完字符后直接以编码的形式输出,人类将难以识别。因此计算机与人交互时,一般会把字符转化成人类习惯的表现形式进行输出,如显示、打印的时候。

        但是如果仅有字符编码,计算机还不知道该如何表达该字符,因为字符实际上是一个个独特的图形,计算机必须把字符编码转化成对应的字符图形人类才能正常识别,因此我们要给计算机提供字符的图形数据,这些数据就是字模,多个字模数据组成的文件也被称为字库。计算机显示字符时,根据字符编码与字模数据的映射关系找到它相应的字模数据,液晶屏根据字模数据显示该字符。

字模的构成

        已知字模是图形数据,而图形在计算机中是由一个个像素点组成的,所以字模实质是一个个像素点数据。为方便处理,我们把字模定义成方块形的像素点阵,且每个像素点只有0和1这两种状态(可以理解为单色图像数据)。

        下图两个宽、高为16x16的像素点阵组成的两个汉字图形,其中的黑色像素点即为文字的笔迹。计算机要表示这样的图形,只需使用16x16个二进制数据位,每个数据位记录一个像素点的状态,把黑色像素点以“1”表示,无色像素点以“0”表示即可。这样的一个汉字图形,使用16x16/8=32个字节来就可以记录下来。

LCD-STM32液晶显示中英文-(7.字模及显示原理),STM32_LCD原理及应用,stm32,嵌入式硬件,单片机,LCD

        16x16的“字”的字模数据以C语言数组的方式表示,见下面的代码,在这样的字模中,以两个字节表示一行像素点,16行构成一个字模。

LCD-STM32液晶显示中英文-(7.字模及显示原理),STM32_LCD原理及应用,stm32,嵌入式硬件,单片机,LCD

字模显示原理

        如果使用LCD的画点函数,按位来扫描这些字模数据,把为1的位以黑色来显示(也可以使用其它颜色),为0的数据位以白色来显示,即可把整个点阵还原出来,显示在液晶屏上。

        为方便讲解,编写一个使用串口printf利用字模打印字符到串口上位机的实验,实验效果如下:

LCD-STM32液晶显示中英文-(7.字模及显示原理),STM32_LCD原理及应用,stm32,嵌入式硬件,单片机,LCD

LCD-STM32液晶显示中英文-(7.字模及显示原理),STM32_LCD原理及应用,stm32,嵌入式硬件,单片机,LCD

LCD像素点显示字模正是运用了这个原理。

字模制作

        为方便使用,需要制作所有常用字符的字模,如程序只需要英文显示,那就需要制作包含ASCII码表中所有字符的字模,如程序只需要使用一些常用汉字,则可以选择制作GB2312编码里所有字符的字模,而且希望字模数据与字符编码有固定的映射关系,以便我们在程序中使用字符编码作为索引,查找字模。

        在网上搜索可找到一些制作字模的软件工具,可满足这些需求。下面以一取模软件“PCtoLCD”为例讲解如何制作字模,其它字模软件也是类似的。

如何制作字模

(1)配置字模格式,打开取模软件,点击“选项”菜单,会弹出一个对话框。

  • 选项“点阵格式”中的阴、阳码是指字模点阵中有笔迹像素位的状态是“1”还是“0”,像我们前文介绍的那种就是阴码,反过来就是阳码。本工程中使用阴码。
  • 选项“取模方式”是指字模图形的扫描方向,修改这部分的设置后,选项框的右侧会有相应的说明及动画显示,该设置会改变生成的字模数据位数的顺序,我们一般把它配置成“逐行式”
  • 取模走向,分为顺向(低位在前)和逆向(高位在前),此设置不影响不影响生成的字模数据位数的顺序,只是字模软件生成字体位序的不同,我们可任意设置
  • 选项“每行显示的数据”里我们把点阵和索引都配置成16,设置这个点阵的像素大小为16x16。

字模选项的格式保持不变,设置完我们点击确定即可,字模选项的这些配置会影响到显示代码的编写方式。

(2)生成ASCII字模

使用取模软件生成ASCII字库步骤如下

LCD-STM32液晶显示中英文-(7.字模及显示原理),STM32_LCD原理及应用,stm32,嵌入式硬件,单片机,LCD

LCD-STM32液晶显示中英文-(7.字模及显示原理),STM32_LCD原理及应用,stm32,嵌入式硬件,单片机,LCD

使用Sublime text 3

先打开索引文件,发现文件末尾默认添加了一个结束符,我们必须要删掉

LCD-STM32液晶显示中英文-(7.字模及显示原理),STM32_LCD原理及应用,stm32,嵌入式硬件,单片机,LCD

再打开字模文件,自动以16进制形式打开,全选之后使用ctrl+shift+L可以进行所有行同时光标操作,添加0x和','

LCD-STM32液晶显示中英文-(7.字模及显示原理),STM32_LCD原理及应用,stm32,嵌入式硬件,单片机,LCD

我们打开野火提供的两个ASCII文件

LCD-STM32液晶显示中英文-(7.字模及显示原理),STM32_LCD原理及应用,stm32,嵌入式硬件,单片机,LCD

发现除了删除了文末结束符还删除了ASCII码前面32个无意义的字符,从0x20的“ ”空格开始表示

LCD-STM32液晶显示中英文-(7.字模及显示原理),STM32_LCD原理及应用,stm32,嵌入式硬件,单片机,LCD

LCD-STM32液晶显示中英文-(7.字模及显示原理),STM32_LCD原理及应用,stm32,嵌入式硬件,单片机,LCD

(3)生成GB2312字模

        配置完字模选项后,点击软件中的导入文本图标,会弹出一个“生成字库”的对话框,点击右下角的生成国标汉字库按钮即可生成包含了GB2312编码里所有字符的字模文件。

        在《LCD—液晶显示汉字》的工程目录下的《GB2312_H1616.FON》是用这个取模软件生成的字模原文件,若不想自己制作字模,可直接使用该文件。

LCD-STM32液晶显示中英文-(7.字模及显示原理),STM32_LCD原理及应用,stm32,嵌入式硬件,单片机,LCD

字模寻址公式

        使用字模软件制作的字模数据一般会按照编码格式排列。如我们利用以上软件生成的字模文件《GB2312_H1616.FON》中的数据,是根据GB2312的区位码表的顺序存储的,它存储了区位码为0101-9494的字符,每个字模的大小为16x16/8=36字节。其中第一个字符“空格”的区位码为0101,它是首个字符,所以文件的前36字节存储的是它的字模数据;同理,36-72字节存储的则是0102字符“、”的字模数据。所以我们可以导出任意字符的寻址公式:

        Addr = (((CodeH-0xA0-1)*94) +(CodeL-0xA0-1))*16*16/8

        其中CodeH和CodeL分别是GB2312编码的第一字节和第二字节;94是指一个区中有94个位(即94个字符)。公式的实质是根据字符的GB2312编码,求出区位码,然后区位码乘以每个字符占据的字节数,求出地址偏移。

        由于区位码0000没有存储任何字符,第一个字符的区位码是0101,编码是0xA1A1,所以字符的高字节减去0xA0再减1,区码偏移量;字符的低字节减去0xA0再减1算出位码偏移量;最后乘字节数16*16/8就得到了该字符在字符数组中的起始下标。

LCD-STM32液晶显示中英文-(7.字模及显示原理),STM32_LCD原理及应用,stm32,嵌入式硬件,单片机,LCD

存储字模文件

        上面生成的《GB2312_H1616.FON》文件的大小为576KB,比很多STM32芯片内部的所有FLASH空间都大,如果我们还是在程序中直接以C语言数组的方式存储字模数据,STM32芯片的程序空间会非常紧张,一般的做法是把字模数据存储到外部存储器,如SD卡或SPI-FLASH芯片,当需要显示某个字符时,控制器根据字符的编码算好字模的存储地址,再从存储器中读取,而FLASH芯片在生产前就固化好字模内容,然后直接把FLASH芯片贴到电路板上,作为整个系统的一部分。文章来源地址https://www.toymoban.com/news/detail-585585.html

到了这里,关于LCD-STM32液晶显示中英文-(7.字模及显示原理)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32显示外设集--液晶显示模块(LCD1602)

    一、介绍 产品图 二、 资源获取 欢迎关注微信公众号--星之援工作室 发送(LCD1602) 三、线路连接图 四、代码编写 LCD1602.h LCD1602.c main.h 五、参考 LCD1602是一种字母数字液晶显示模块,可以显示16个字符和2行文本,因此被命名为LCD1602。它通常用于各种电子项目,特别是

    2024年02月11日
    浏览(49)
  • STM32—LCD液晶显示屏

    目录 LCD液晶显示屏介绍 液晶的组成  物理特性 液晶显示屏内部构造  颜色深度 点亮LCD显示屏 查看原理图 图片显示 保存到工程用户代码的Inc目录下 参数为数组名 字符显示  汉字显示 某些物质在熔融状态或被溶剂溶解之后,尽管失去固态物质的刚性,却获得了液体的易流动

    2024年02月04日
    浏览(50)
  • LCD—STM32液晶显示(1.显示器简介及LCD显示原理)(6000字详细介绍)

    目录 显示器简介 液晶显示器 液晶 像素 液晶屏缺点 LED显示器 OLED显示器 显示器的基本参数 STM32板载液晶控制原理(不带微控制器) 液晶控制原理 控制信号线(不带液晶控制器) 液晶数据传输时序 显存 总结 3.2寸液晶屏介绍(搭载液晶控制器) 3.2寸电阻触摸屏实物 ILI9341液晶

    2024年02月17日
    浏览(52)
  • LCD—STM32液晶显示(2.使用FSMC模拟8080时序)

    目录 使用STM32的FSMC模拟8080接口时序 FSMC简介 FSMC NOR/PSRAM中的模式B时序图 用FSMC模拟8080时序 重点:HADDR内部地址与FSMC地址信号线的转换(实现地址对齐)         ILI9341的8080通讯接口时序可以由STM32使用普通I/O接口进行模拟,但这样效率太低,STM32提供了一种特别的控制方

    2024年02月17日
    浏览(46)
  • STM32之LCD液晶屏(ILI9341)显示图片

    本文章基于STM32F103VET6,参考野火的驱动程序,用LCD液晶屏显示静态图像。 有纰漏请指出,转载请说明。 学习交流请发邮件 1280253714@qq.com 显示一个像素点 将rgb888图片转为rgb555 输出rgb555的C语言数组 数组的每一个元素对应一个像素点的rgb三个通道的数据,用stm32的FSMC模拟8080时

    2024年02月09日
    浏览(48)
  • LCD—STM32液晶显示(3.NOR FLASH时序结构体)

    目录 LCD结构体配置  NOR FLASH时序结构体 FSMC的NOR FLASH初始化结构体         与控制SRAM时一样,控制FSMC使用NOR FLASH存储器时主要是配置时序寄存器以及控制寄存器,利用ST标准库的时序结构体以及初始化结构体可以很方便地写入参数。 FSMC_AddressSetupTime 本成员设置地址建立

    2024年02月17日
    浏览(46)
  • STM32-LCD中英文显示及应用

    目录 字符编码 ASCII码(8位) 中文编码(16位) GB2312标准 GBK编码 GB18030标准(32位) Big5编码 Unicode字符集和编码 UTF-32(32位) UTF-16(16位/32位,变长编码方式) UTF-8(8位/16位/24位/32位,变长编码方式) 实验环节1:LCD显示中英文(字库存储在外部Flash) 存储在外部Flash的字模

    2024年02月08日
    浏览(43)
  • 一文读懂使用STM32驱动 LCD1602 液晶显示屏(基于Mbed Studio平台)

    LCD (Liquid Crystal Display) 液晶显示屏是一种广泛使用的一种字符型液晶显示模块。其中型号1602表示每行显示16个字符、一共2行。LCD1602相比于OLED最大的好处就是不用使用SPI或I2C等任何通信协议,而是由mbed直接将命令传给LCD从而实现控制。 LCD1602主要参数如下: 显示字符:16×2个

    2024年02月05日
    浏览(50)
  • STM32-基本知识梳理10-FSMC控制ST7789V-LCD液晶显示屏

    一、ST7789V-LCD液晶显示 1,一种计算机的I/O设备,即输入输出设备; 2,数据传递结构,光线的传递通过偏光片进行调整,最终传递到滤光片上,进而不同RGB数据点,即像素点; 3, LCD显示器的关键参数 ①像素:显示器的像素指它成像最小的点 ②分辨率:像素点的个数的乘积

    2024年02月12日
    浏览(47)
  • LCD—液晶显示

    本节主要介绍以下内容 显示器简介 液晶控制原理 秉火 3.2 寸液晶屏简介 使用 FSMC 模拟 8080 时序 NOR FLASH 时序结构体 FSMC 初始化结构体   显示器属于计算机的 I/O 设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。常见的有 CRT 显示器、液

    2024年02月02日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包