用单片机在屏幕上显示字库中的汉字

本文介绍了如何在单片机上显示汉字,包括显示原理、字体模型的取模和字库,以及具体显示函数的实现,如点亮像素点、驱动函数的编写,以12*12汉字和6*12字符为例,使用SSD1351屏幕和GT30L32S4W字库。
摘要由CSDN通过智能技术生成

  最近在搞屏幕,顺便弄了一个字库芯片,刚刚测试完毕。个人认为项目中人机交互是少不了的,而显示是人机交互中的重要一环,所以准备写一篇教程记录一下。

显示原理

  首先要知道屏幕显示的原理。屏幕显示的原理其实很简单,其实就是和点阵一样,只不过屏幕集成度高,本质控制输出高或者低,跟点灯一样。   

  拿0.96寸的oled来举个例子。0.96oled分辨率128*64,也就是说横向128个led,竖向64个led,你想点亮某个led(假设1为亮,0为灭),那么只需要将那个led对应的位置1即可。那如何显示汉字呢。其实原理也是一样的。如下图所示,只需要将对应的点点亮,而这些对应的点可以拼成一个汉字的模样。 

在这里插入图片描述

  再具体一点就是,单片机将想要显示的点的数据通过spi或者iic传给屏幕驱动芯片,屏幕驱动得到命令后就会将对应的点点亮,具体怎么点后面介绍。 

字体模型

  看到这里可能会有疑问,我不可能每个汉字都去照着样子去点亮led吧?那多费劲!
  确实费劲,不过有简单的方法。1.取模 2.用字库(本质还是取模)

1.取模

  什么是取模?就上上图看到的一样,将汉字对应的点转换成单片机能识别的二进制数去点亮led,从而显示到屏幕上。只不过这一步可以用软件自动生成,不需要你自己比对这汉字去一个一个点点儿了。下面是三个字取模之后得到的数组,我们只需要将汉字输入到软件中,点击生成字模就行了,是不是很简单。
(0) (1) (2)

{
   0x01,0x80,0x31,0x8C,0x31,0x8C,0x3F,0xFC,0x00,0x30,0x33,0x30,0x33,0x3F,0xFF,0xE3},
{
   0x33,0xDE,0x33,0x18,0x3F,0x18,0x33,0x18,0x33,0x3C,0x3F,0x3C,0x33,0x66,0x00,0xC3},/*"嵌",0*/

{
   0x06,0x00,0x03,0x00,0x01,0x80,0x01,0x80,0x01,0x80,0x03,0xC0,0x03,0xC0,0x03,0xC0},
{
   0x06,0x60,0x06,0x60,0x0C,0x30,0x0C,0x30,0x18,0x18,0x30,0x18,0x60,0x0C,0xC0,0x07},/*"入",1*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值