第三篇:字符显示原理

news2025/4/20 11:44:55
  1. 使用PCtolLCD2003制作字库

注意,我们开始取模前一定要记得设置取模方式,这个取模方式和我们显示屏的显示方式要一致

  1. 设置字体为宋体,字体大小为16*16(这里当然可以设为别的)

  1. 输入想要显示的字

  1. 点击生成字模

u8 shuai[] = {0x10,0x04,0x10,0x04,0x12,0x04,0x12,0x04,0x92,0x3F,0x92,0x24,0x92,0x24,0x92,0x24,
0x92,0x24,0x92,0x24,0x92,0x24,0x90,0x2C,0x88,0x14,0x08,0x04,0x04,0x04,0x02,0x04};

接下里我们来分析字模如何显示:

  1. 字体大小为16*16,每一行用两个字节来表示,总共16行,也就时2*16 = 32个字节.

  1. 第一个字节为0x10,二进制位0001 0000,我们想要显示出字体,只需要判断每一个bit对应的值是0还是1,当为0是显示背景色,为1时显示字体颜色,依次类推就可以显示出完整的一个字了

  1. 由于我设置的时低位在前,因此第一个点是字节的最低位,如果选择高位在前,拿第一个点是字节的最高位.程序设计时要注意一下,否则显示的字会有乱码

2.显示16*16的字体

#ifndef MID_FONT_H
#define MID_FONT_H
#include "dev_lcd.h"

/*****************************宏替换屏蔽硬件接口*************************/

#define FONT_SET_WINDOWS(x, y, x1, y1)        LCD_SetWindows(x, y, x1, y1)
#define FONT_WRITE_COLOR(data)                Lcd_WriteData_16Bit(data)

/************************************************************************/



void FONT_Show16(unsigned int x, unsigned int y, unsigned char* zifu, u16 color);


#endif
#include "mid_font.h"

#define BACK_COLOR                0xFFFF//设置字体的背景色为白色


/*******************************************************************
函数功能:
    显示16*16大小的字体
参数:
返回值:
说明:
*******************************************************************/
void FONT_Show16(unsigned int x, unsigned int y, unsigned char* zifu, u16 color)
{
    unsigned int i,j;
    unsigned char temp;
    FONT_SET_WINDOWS(x, y, x + 15, y + 15  );
    for(i=0;i<32;i++)
    {
        temp = *(zifu + i);
        for(j=0;j<8;j++)
        {
            if(temp&0x01)
                FONT_WRITE_COLOR(color);
            else
                FONT_WRITE_COLOR(BACK_COLOR);
            temp=temp>>1;
        }
    }
}

3.效果展示

#include "stm32f10x.h"
#include "bsp_lcd.h"
#include "dev_lcd.h"
#include "mid_ui.h"
#include "mid_font.h"

u8 wan[] ={0x00,0x00,0x00,0x00,0xBF,0x3F,0x08,0x00,0x08,0x00,0x08,0x00,0xC8,0x7F,0x3E,0x09,
0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0xB8,0x48,0x87,0x48,0x42,0x70,0x20,0x00};

u8 qian[] = {0x80,0x00,0x84,0x10,0x84,0x10,0xFC,0x1F,0x00,0x04,0x44,0x04,0x44,0x7C,0xFF,0x42,
0x44,0x29,0x44,0x08,0x7C,0x08,0x44,0x08,0x44,0x14,0x7C,0x14,0x44,0x22,0x00,0x41};/*"嵌",0*/

u8 ru[] = {0x20,0x00,0x40,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x40,0x01,0x40,0x01,0x40,0x01,
0x20,0x02,0x20,0x02,0x10,0x04,0x10,0x04,0x08,0x08,0x04,0x08,0x02,0x10,0x01,0x60};/*"入",0*/

u8 shi[] = {0x00,0x12,0x00,0x22,0x00,0x22,0x00,0x02,0xFF,0x7F,0x00,0x02,0x00,0x02,0x7C,0x02,
0x10,0x02,0x10,0x02,0x10,0x04,0x10,0x44,0xF0,0x48,0x1E,0x50,0x04,0x60,0x00,0x40};/*"式",0*/

u8 de[] = {0x08,0x02,0x08,0x02,0x04,0x02,0x7E,0x3E,0x42,0x21,0x42,0x21,0xC2,0x20,0x42,0x22,
0x7E,0x24,0x42,0x24,0x42,0x20,0x42,0x20,0x42,0x20,0x7E,0x20,0x42,0x14,0x00,0x08};/*"的",0*/

u8 cai[] = {0x10,0x04,0x10,0x04,0xFF,0x7F,0x10,0x04,0x00,0x08,0x00,0x1F,0xFC,0x00,0x88,0x08,
0x10,0x04,0x80,0x00,0xFE,0x3F,0xA0,0x02,0x90,0x04,0x8C,0x18,0x83,0x60,0x80,0x00};/*"菜",0*/

u8 ji[] = {0x00,0x04,0x00,0x02,0x00,0x3F,0x3F,0x21,0x20,0x25,0x20,0x21,0x12,0x29,0x14,0x11,
0x08,0x01,0x08,0x7F,0x14,0x40,0x24,0x40,0xA2,0x5F,0x01,0x40,0x00,0x28,0x00,0x10};/*"鸡",0*/


int main(void)
{    
    unsigned int x = 50, y = 100;;
    bsp_spi_init();
    bsp_gpio_init();  
    dev_lcd_init();
    
    FONT_Show16(x,y,wan, RED);
    x = x+16; y = y+16;
    
    FONT_Show16(x,y,qian, RED);
    x = x+16; y = y+16;
     
    FONT_Show16(x,y,ru, RED);
    x = x+16; y = y+16;
    
    FONT_Show16(x,y,shi, RED);
    x = x+16; y = y+16;
    
    FONT_Show16(x,y,de, RED);
    x = x+16; y = y+16;
    
    FONT_Show16(x,y,cai, RED);
    x = x+16; y = y+16;
    
    FONT_Show16(x,y,ji, RED);
    x = x+16; y = y+16;
    while(1)
    {
    
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/396611.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML 编辑器

文章目录 HTML 编辑器HTML 编辑器推荐编辑器下载网站HBuilder步骤 1: 新建 HTML 文件步骤 2: 另存为 HTML 文件步骤 3: 在浏览器中运行这个 HTML 文件HTML 编辑器 HTML 编辑器推荐 可以使用专业的 HTML 编辑器来编辑 HTML,我为大家推荐几款常用的编辑器: Notepad++:Windows…

蓝桥dfs专题

1、dfs 路径打印 小明冒充X星球的骑士&#xff0c;进入了一个奇怪的城堡。 城堡里边什么都没有&#xff0c;只有方形石头铺成的地面。 假设城堡地面是 n x n 个方格。【如图1.png】所示。 按习俗&#xff0c;骑士要从西北角走到东南角。 可以横向或纵向移动&#xff0c;但不能…

SpringBoot基础知识

1 SpringBoot简介1.1 入门官网创建SpringBoot项目&#xff1a;https://start.spring.io/快速启动SpringBoot工程&#xff1a;SpringBoot程序可以不依赖Tomcat和IDE&#xff0c;源码工程打完jar后可以直接运行。java -jar springboot_quick_start-0.0.1-SNAPSHOT.jar1.2 简介<…

OAK相机如何将yoloV5lite模型转换成blob格式?

编辑&#xff1a;OAK中国 首发&#xff1a;oakchina.cn 喜欢的话&#xff0c;请多多&#x1f44d;⭐️✍ 内容可能会不定期更新&#xff0c;官网内容都是最新的&#xff0c;请查看首发地址链接。 ▌前言 Hello&#xff0c;大家好&#xff0c;这里是OAK中国&#xff0c;我是助手…

Hadoop 使用Linux操作系统与Java熟悉常用的HDFS操作

注意看评论区获取完整代码资料 目录 一、实验目的 二、实验平台 三、实验步骤 一、实验目的 理解HDFS在Hadoop体系结构中的角色&#xff1b;熟练使用HDFS操作常用的Shell命令&#xff1b;熟悉HDFS操作常用的Java API。 二、实验平台 操作系统&#xff1a;Linux&#xff0…

运筹系列68:TSP问题Held-Karp下界的julia实现

1. 介绍 Held-Karp下界基于1tree下界&#xff0c;但是增加了点权重&#xff0c;如下图 通过梯度下降的方法找到最优的π\piπ。 这里用到的1tree有下面几种&#xff1a; 全部点用来生成最小生成树&#xff0c;再加上所有叶子结点第二短的边中数值最大的那个任意选一个点&…

Java集合进阶(一)

文章目录一、Collection1. 概述2. 常用方法3. 集合遍历4. 案例二、List1. 概述2. 特有方法3. 并发修改异常4. 列表迭代器5. 增强 for 循环6. 数据结构6.1 栈和队列6.2 数组和链表7. List 子类特点7.1 LinkedList一、Collection 集合类的特点&#xff1a;提供一种存储空间可变的…

raspberry Pi 连接蓝牙(小爱同学)

参数valueraspberry pi MOdel4B&#xff0c;4Gbbluetooth MOdel小爱同学writeTime2023年 2月11日 下午13&#xff1a;14分raspberry System ModelLinux raspberrypi 5.15.61-v8 #1579 SMP PREEMPT Fri Aug 26 11:16:44 BST 2022 aarch64 GNU/Linux 连接蓝牙 请在小爱同学app上…

Linux 网络编程(UDP模型,libevent库使用)

1.ctags的使用安装命令&#xff1a;sudo apt install exuberant-ctags要使用ctags需要在当前目录生成 tags 文件&#xff0c;可以组织目录内所有.c间函数调用关系生成方法&#xff1a;1.在项目目录下输入命令&#xff1a;ctags ./* -R2.在任意一个文件内使用 ctrlp一些快捷命令…

python入门项目06:批量处理文件

文章目录前言一、理论知识1.1 OS模块1.2 XML的解析二、使用步骤1.引入库2.创建新文件夹3文件操作4 修改文件总结前言 本文要完成的是对于较多XML文档的自动修改&#xff0c;这部分往往在大量的图像标注的修改中会使用到&#xff0c;同时也不要局限于本文中所提到的使用场景。 …

springbboot随笔

无效的源发行版问题 改springboot版本 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:…

高校竞赛信息管理系统

摘要随着当今社会的发展&#xff0c;时代的进步&#xff0c;各行各业也在发生着变化&#xff0c;比如高校竞赛信息管理这一方面&#xff0c;利用网络已经逐步进入人们的生活。传统的高校竞赛信息管理&#xff0c;都是学生去学校查看竞赛信息然后再进行报名&#xff0c;这种传统…

linux面试高级篇

题目目录1.虚拟机常用有几种网络模式&#xff1f;请简述其工作原理或你个人的理解&#xff1f;2. Dockerfile中最常见的指令是什么&#xff1f;3.docker网络模式有哪些&#xff1f;4.Kubernetes有哪些核心组件这些组件负责什么工作&#xff1f;5. Pod是什么&#xff1f;6.描述一…

H264编码原理

1.什么是音视频&#xff1f; 比如我们下载的mp4格式&#xff08;还有rmvb、avi&#xff09;的电影 2.什么是h264&#xff1f; 对摄像头采集的每一帧视频需要进行编码&#xff0c;由于视频中存在空间和时间的冗余&#xff0c; 需要用算法来去除这些冗余。H264是专门去除这些冗…

SQL基础语句小结

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; 目录 一、SQL概述 1.简介 2.格式语法 3.SQL分类 二、DDL操作数据库 1.创建数据库 2.查询与使用 3.删除数据库 三、DDL:操作表 (1)数据类型 (2)创建表 (3)查询当前数据库的表 (4)删除表 (5)修改表 四、DML…

小鹏汽车「错失」智能化好牌

本周&#xff0c;作为小鹏品牌销售主力的P7正式迎来改款发布。3月6日&#xff0c;小鹏P7i迎来首发&#xff0c;作为P7的改款车型&#xff0c;在整车电子架构、三电系统、智能化硬件配置上都进行了全面升级。 基于和G9相同的双Orin-X计算平台两个盲区激光雷达&#xff0c;P7i实现…

RocketMQ基础篇(一)

目录一、发送消息类型1、同步消息2、异步消息3、单向消息4、顺序消费5、延迟消费二、消费模式1、集群模式2、广播模式3、消费模式扩展4、如何配置三、其他用法1、事务消息2、过滤消息1&#xff09;Tag过滤2&#xff09;SQL方式过滤源码放到了GitHub仓库上&#xff0c;地址 http…

HyperLPR3车牌识别-Android-SDK光速部署与使用

简介HyperLPR在2023年初已经更新到了v3的版本&#xff0c;该版本与先前的版本一样都是用于识别中文车牌的开源图像算法项目&#xff0c;最新的版本的源码可从github中提取&#xff1a;https://github.com/szad670401/HyperLPRHyperLPR-Android-SDK for JitPackHyperLPR3的官方源…

Prim算法和Kruskal算法到底哪个好?

Prim和Kruskal有啥区别&#xff1f;到底哪个好&#xff1f; 今天做了一道最小生成树的题&#xff0c;发现了一点猫腻&#xff01; 题目在这里 &#xff1a; 《修路问题1》 文章目录Prim和Kruskal有啥区别&#xff1f;到底哪个好&#xff1f;先说结论PrimKruskal修路问题1——…

不好!有敌情,遭到XSS攻击【网络安全篇】

XSS&#xff1a;当一个目标的站点&#xff0c;被我们用户去访问&#xff0c;在渲染HTMl的过程中&#xff0c;出现了没有预期到的脚本指令&#xff0c;然后就会执行攻击者用各种方法注入并执行的恶意脚本&#xff0c;这个时候就会产生XSS。 涉及方&#xff1a; 用户&#xff0…