用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将其输出即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值