这篇文章主要记录下点阵编码如何打印出字或者字符的。
文中采用“反字模软件”和“字模3”两款软件帮助理解,感谢写这两款软件的作者。


一、点阵编码和ASCII编码对比

为了方便说明,这里用一个字举例。“火”。

1、ASCII编码

一个中文用两个字节表示 0xBB, 0xF0,非常普通,计算机可以通过ASCII编码直接打印出汉字。

2、点阵编码

点阵编码的字节数取决于使用的字体以及字体大小。
这里使用 宋体 常规 16*16 生成点阵编码。这里的16*16表示像素点。
上面十六个字节打印上半个字,下面十六个字节打印下半个字

(1)纵向取模 字节正序

0x00,0x00,0x03,0x1C,0x00,0x00,0x00,0xFF,0x00,0x00,0x02,0x04,0x18,0x00,0x00,0x00,
0x01,0x81,0x02,0x04,0x08,0x30,0xC0,0x00,0xC0,0x30,0x08,0x04,0x02,0x01,0x01,0x00,
完整字:

上半个字:

下半个字:

二、点阵编码打印成字的原理

这里引用上面 “火” 这个字的点阵编码。纵向取模 字节正序
0x00,0x00,0x03,0x1C,0x00,0x00,0x00,0xFF,0x00,0x00,0x02,0x04,0x18,0x00,0x00,0x00,
0x01,0x81,0x02,0x04,0x08,0x30,0xC0,0x00,0xC0,0x30,0x08,0x04,0x02,0x01,0x01,0x00,
这里用excel打点表示

上半个字二进制形式:
A1-A8: 0x00:0000 0000
B1-A8: 0x00:0000 0000
C1-A8: 0x03:0000 0011
D1-A8: 0x1C:0001 1100
E1-A8: 0x00:0000 0000
F1-A8: 0x00:0000 0000
G1-A8: 0x00:0000 0000
H1-A8: 0xFF:1111 1111
I1-A8: 0x00:0000 0000
J1-A8: 0x00:0000 0000
K1-A8: 0x02:0000 0020
L1-A8: 0x04:0000 0100
M1-A8: 0x18:0001 1000
N1-A8: 0x00:0000 0000
O1-A8: 0x00:0000 0000
P1-A8: 0x00:0000 0000
下半个字二进制形式:
A9-A16: 0x01:0000 0001
B9-A16: 0x81:1000 0001
C9-A16: 0x02:0000 0010
D9-A16: 0x04:0000 0100
E9-A16: 0x08:0000 1000
F9-A16: 0x30:0011 0000
G9-A16: 0xC0:1100 0000
H9-A16: 0x00:0000 0000
I9-A16: 0xC0:1100 0000
J9-A16: 0x30:0011 0000
K9-A16: 0x08:0000 1000
L9-A16: 0x04:0000 0100
M9-A16: 0x02:0000 0010
N9-A16: 0x01:0000 0001
O9-A16: 0x01:0000 0001
P9-A16: 0x00:0000 0000

这里二进制的 1 表示该像素点要打一个点,0表示该像素不打点。
纵向取模:表示一个字节的8个bit竖着打印的
字节正序:表示一个字节的8个bit是从高位到地位以此从上到下打印的

三:点阵编码的其他类型

以上例子使用的是 纵向取模 字节正序 的排法。并且是 阴码的格式。
下面列举各种不同的类型以及释意

1、阴码和阳码

阴码:1 为亮,0为灭
阳码:0 为亮,1为灭

2、纵向取模 字节正序

0x00,0x00,0x03,0x1C,0x00,0x00,0x00,0xFF,0x00,0x00,0x02,0x04,0x18,0x00,0x00,0x00,
0x01,0x81,0x02,0x04,0x08,0x30,0xC0,0x00,0xC0,0x30,0x08,0x04,0x02,0x01,0x01,0x00,


左上角为起始点,A1到A8为第一个字节,从高位到低位依次从上到下填写。
字节顺序从左到右填写。填完上半行再填下半行。

先填完上半行再填下半。

3、纵向取模 字节倒序


左上角为起始点,A1到A8为第一个字节,从低位到高位依次从上到下填写。
字节顺序从左到右填写。填完上半行再填下半行。

4、横向取模 字节正序


左上角为起始点,A1到H1为第一个字节,从高位到低位依次从左到右填写。
字节顺序从左到右填写。一行两个字节。填完上半行再填下半行。

5、横向取模 字节倒序


左上角为起始点,A1到H1为第一个字节,从低位到高位依次从左到右填写。
字节顺序从左到右填写。一行两个字节。填完上半行再填下半行。

点阵编码打印输出的原理(打印机、LCD)相关推荐

  1. 【嵌入式系统开发16】基于OLED屏显和汉字点阵编码原理显示姓名学号,湿度温度,滚动长字符

    要求 理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能: 显示自己的学号和姓名: 显示AHT20的温度和湿度: 上下或左右的滑动显示长字符,比如"H ...

  2. OLED屏显和汉字点阵编码

    目录 一.SPI协议 (1)SPI协议简介 (2)SPI物理层 (3)协议层 (4)SPI 基本通讯过程 (5)CPOL/CPHA 及通讯模式 (6)通讯引脚 (7)SPI优缺点 二.OLED (1) ...

  3. 点阵字库的生产原理(转)

    源:点阵字库的生产原理 所有的汉字或者英文都是下面的原理, 由左至右,每8个点占用一个字节,最后不足8个字节的占用一个字节,而且从最高位向最低位排列. 生成的字库说明:(以12×12例子) 一个汉字占 ...

  4. 点阵LCD12864的显示原理(不带字库)

    点阵LCD12864的显示原理(不带字库) 在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果.对于显示英文操作,由于英文字母种类很少,只需要8位(一字节 ...

  5. 彻底弄懂base64的编码与解码原理

    作者介绍 背景 base64的编码原理网上讲解较多,但解码原理讲解较少,并且没有对其中的内部实现原理进行剖析.想要彻底了解base64的编码与解码原理,请耐心看完此文,你一定会有所收获. 涉及算法与逻 ...

  6. 音视频同步原理解析;音频编码和解码原理

    视频流中的DTS/PTS到底是什么? DTS(解码时间戳)和PTS(显示时间戳)分别是解码器进行解码和显示帧时相对于SCR(系统参考)的时间戳.SCR可以理解为解码器应该开始从磁盘读取数据时的时间. ...

  7. 12864点阵液晶显示模块的原理

    12864点阵液晶显示模块的原理 12864点阵液晶显示模块(LCM)就是由128*64个液晶显示点组成的一个128列*64行的阵列. 每个显示点对应一位二进制数,1表示亮,0表示灭.存储这些点阵信息 ...

  8. OLED屏显示和汉字点阵编码原理

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.认识I2C协议 二.基于IIC协议在OLED屏上实现显示相关信息 1.显示自己的学号和姓名 2.显示AHT20的温 ...

  9. 【点阵液晶编程连载二】LCD 驱动的基本流程

    2. LCD 驱动的基本流程 介绍基本的流程控制方法,这里重在介绍方法,从时序的模拟或者是总线的连接,到利用LCD 的特性来做一些显示的处理,如单色液晶如何显示一个点,彩色LCD 如何显示一个点的关系 ...

最新文章

  1. 考前自学系列·计算机组成原理·控制器的组成及各部分的功能
  2. php json java_php 解析java传过来的json数据
  3. 锤子剪刀布 (20)
  4. boost::multi_array模块测试 index_gen 的代码
  5. 菜鸟的成长记录--linux 通配符和特殊字符集合的使用
  6. 2020 存储技术热点与趋势总结
  7. hyperledger caliper 测试配置yaml
  8. matlab随机线性微分方程,基于MATLAB的随机线性微分方程的求解
  9. CorelDRAW2022矢量绘图软件老牌的矢量图形制作工具
  10. usaco 1.1 greedy gift givers
  11. 超难打地鼠 【安卓游戏】
  12. 判断IP是否在IP段内
  13. Spark开发环境的搭建(一)
  14. 解决fileReader读取文件乱码
  15. 有什么好的学编程的网站或者是软件?『编程入门』?
  16. 关于Andriod org.gradle.api.tasks.TaskExecutionException: Execution failed for task 问题及解决办法
  17. matlab画图总结——二维图plot函数、图形标注和坐标轴控制、饼图、条形图、排列图;三维图的绘制
  18. 【Vue】qq浏览器打开空白
  19. 开始甲骨文培训了,第一天说了一下上课学习规矩及计算机基础
  20. scite可以编程c语言不,SciTE中文使用步骤.doc

热门文章

  1. PyQt使用ICE框架实现通信
  2. linux iw 命令
  3. Java中动态加载字节码的方法 (持续补充)
  4. java运维软件下载_开源运维自动化平台-opendevops
  5. WIN10笔记本偶然会出现插入USB设备的时候报错:无法识别的usb设备,前一个设备不正常......
  6. 小时候短暂的武校经历!
  7. 人工智能数学课高等数学线性微积分数学教程笔记(2. 一元函数微分学)
  8. oj记录 牛客小I白月赛50 C减法与求余 (思维
  9. 【附源码】Python计算机毕业设计美容美发店会员管理系统
  10. python最新版本安卓下载_Python文档app最新版下载-Python文档app安卓版下载v1.0- 游侠下载站...