当前位置: 首页 > news >正文

用python输出OLED字模库的符号

 提示:博主是小白,如有不足,望海涵和指出

        在单片机上练习使用OLED显示屏时,可以看到有个OLED字模库

        本文用python将这些字符打印出来,代码如下(本文只适用与128*64的OLED,如果是其它OLED,借鉴思路即可):

data = [
    0x00, 0xE0, 0x10, 0x88, 0x88, 0x18, 0x00, 0x00,
    0x00, 0x0F, 0x11, 0x20, 0x20, 0x11, 0x0E, 0x00
]
line = []
data_begin = data[8:]
data_end = data[:8]
for row in range(8):
    for byte in data_end:
        # 从低位低位到高位提取bit
        bit = (byte >> (row)) & 0x01
        line.append('████' if bit else '    ')
for row in range(8):
    for byte in data_begin:
        # 从低位到高位提取bit
        bit = (byte >> (row)) & 0x01
        line.append('████' if bit else '    ')
for i in range(16):
    for j in range(8):
        print(line[i*8+j],end="")
    print()

        输出效果:

        使用方法:将代码中的字符数组替换为字模库中字符数组即可

实现思路:

        data数组中保存的16进制数分为上面8个和下面8个十六进制数 

 

        进制转换:在OLED显示时,十六进制是转换为二进制显示的,每一个十六进制代表着8行1列的区域,例如:

data = [
    0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
]

        当data等于上面的数据时,显示如下,其中0xFF代表的二进制数为1111_1111

        每一个16进制读取方式要按照从低位到高位,例如0xE0=1110_0000,在读取时我们先读最低位的0,而不是最高位的1

        读取方式:先读上半部分每个16进制数的最低位,依次到上半部分每个16进制数最高位。下半部分同理,先读最低位,再读最高位,最后使用python将其输出即可

相关文章:

  • 顺的品牌网站建设独立站优化
  • 商业网站的特点北京seo加盟
  • 个人站长怎么样做网站才不会很累永久不收费免费的软件
  • 顺德公司网站制作惠州seo管理
  • cpanel伪静态wordpress天津seo排名扣费
  • 吉林做网站给公司做网站的公司
  • xLua环境控制+xLua的Lua调用C#的1
  • 数据字典的转换逻辑是什么?是在前端转换,后端 Service 层转换还是在数据库层转换?
  • 柱状图中最大的矩形
  • Graylog 索引配置详解与优化建议
  • 纯个人整理,蓝桥杯使用的算法模板day4(图论 最小生成树问题),手打个人理解注释,超全面,且均已验证成功(附带详细手写“模拟流程图”,全网首个
  • [论文阅读]PMC-LLaMA: Towards Building Open-source Language Models for Medicine
  • 自然语言处理
  • 《安富莱嵌入式周报》第352期:手持开源终端,基于参数阵列的定向扬声器,炫酷ASCII播放器,PCB电阻箱,支持1Ω到500KΩ,Pebble智能手表代码重构
  • 中国剩余定理
  • AI重构SEO关键词智能布局
  • TS中is关键字详解
  • Day51 | 3. 无重复字符的最长子串、12. 整数转罗马数字、49. 字母异位词分组、73. 矩阵置零
  • Class<?> 和Class<T >有什么区别
  • 设计模式简述(一)设计原则
  • 1.0 软件测试全流程解析:从计划到总结的完整指南
  • C++浅谈转型操作符
  • 看爬山虎学本领 软爬机器人来创新 各种场景能适应
  • @reduxjs/toolkit 报错,解决
  • CF每日5题(1300-1500)
  • M-CTC-T: 面向大规模多语言语音识别的伪标签技术