0.96寸显示屏logo设置

前置学习:【江协科技】

[模块教程] 第1期 0.96寸OLED显示屏_哔哩哔哩_bilibili

简介:

        学完对应教程后,想设计一个属于自己的英文logo,但是发现模块中已经有了定义英文字符且大小固定,那么怎样才能显示出不固定大小的任意英文logo呢?

错误展示:

        最开始的想法,将想要的英文字符输入取模软件,并通过调节字宽字高【像素点个数】来控制大小,然后将字符看作是图像定义,最后调用:如下

 生成字模【注意设置为C51格式

 在OLED_Data.c中以图像的形式定义:

 OLED_Data.h中声明

 在主函数中调用:

 看似很简单,但是当应用时会发现显示的图像与想要的完全不同:

错误原因:

        这里单片机在写入显示屏是是按照字节从左往右写入,且一个字节8位相应对应8个像素点,但是这8个像素点在显示屏中为上下连续的8个像素点的8个像素点,如:上面代码中“Y”字符的第一个数据0x00对应写入第1到8行的第一列像素点,0x40写入第1到8行的第二列像素点......

        所以当代码图像如上定义时显示屏写入的数据就成为了:这就导致了显示的错位

    0x00,0x40,0x40,0xC0,0xC0,0xC0,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0xC0,
    0xC0,0x40,0x40,0x00,//第1-8行前20列
    0x00,0x00,0x00,0x01,0x07,0x1F,0x7C,0xF0,0xC0,0x00,0x00,0x80,0xE0,0x38,0x0E,0x03,
    0x00,0x00,0x00,0x00,//第1-8行21-40列
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0xFF,0xFC,0x03,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,//第1-8行41-60列
    0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x0C,0x0F,0x0F,0x08,0x08,0x08,0x00,0x00,
    0x00,0x00,0x00,0x00,//第9-16行前20列
    /*"Y",0*/

    0x00,0x40,0x40,0xC0,0xC0,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x40,
    0xC0,0x40,0x40,0x00,//第9-16行21-40列
    0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0xFF,0x00,0x00,0x00,//第9-16行41-60列
    0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0xFF,0x00,0x00,0x00,//第17-24行前20列
    0x00,0x00,0x00,0x01,0x03,0x07,0x04,0x0C,0x08,0x08,0x08,0x08,0x04,0x04,0x02,0x03,
    0x00,0x00,0x00,0x00,//第17-24行21-40列
    /*"U",1*/

    0x00,0x40,0x40,0xC0,0xC0,0xC0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xC0,0x80,0x80,
    0x00,0x00,0x00,0x00,//第17-24行41-60列           
    0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0x73,0x7F,
    0x3F,0x00,0x00,0x00,//第25-32行前20列          
    0x00,0x00,0x00,0xFF,0xFF,0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x8E,
    0xFC,0xF8,0x60,0x00,//第25-32行21-40列         
    0x00,0x08,0x08,0x0F,0x0F,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x06,0x07,
    0x03,0x01,0x00,0x00,//第25-32行41-60列
    /*"B",2*/

 解决方式:

        将对应需要显示的图像块放入对应的行列【类似拼图】,即可显示正确的图像:

    0x00,0x40,0x40,0xC0,0xC0,0xC0,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0xC0,
    0xC0,0x40,0x40,0x00,//第1-8行前20列 原/*"Y",0*/第1-8行前20列

    0x00,0x40,0x40,0xC0,0xC0,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x40,
    0xC0,0x40,0x40,0x00,//第1-8行21-40列 原/*"U",1*/第9-16行21-40列

    0x00,0x40,0x40,0xC0,0xC0,0xC0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xC0,0x80,0x80,
    0x00,0x00,0x00,0x00,//第1-8行21-40列 原/*"B",2*/第17-24行41-60列

    0x00,0x00,0x00,0x01,0x07,0x1F,0x7C,0xF0,0xC0,0x00,0x00,0x80,0xE0,0x38,0x0E,0x03,
    0x00,0x00,0x00,0x00,//第9-16行前20列 原/*"Y",0*/第1-8行21-40列

    0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0xFF,0x00,0x00,0x00,//第9-16行21-40列 原/*"U",1*/第9-16行41-60列
    
    0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0x73,0x7F,
    0x3F,0x00,0x00,0x00,//第9-16行41-60列 原/*"B",2*/第25-32行前20列
    
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0xFF,0xFC,0x03,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,//第17-24行前20列 原/*"Y",0*/第1-8行41-60列

    0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0xFF,0x00,0x00,0x00,//第17-24行21-40列 原/*"U",1*/第17-24行前20列

    0x00,0x00,0x00,0xFF,0xFF,0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x8E,
    0xFC,0xF8,0x60,0x00,//第17-24行41-60列 原/*"B",2*/第25-32行21-40列

    0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x0C,0x0F,0x0F,0x08,0x08,0x08,0x00,0x00,
    0x00,0x00,0x00,0x00,//第25-32行前20列 原/*"Y",0*/第9-16行前20列
  
    0x00,0x00,0x00,0x01,0x03,0x07,0x04,0x0C,0x08,0x08,0x08,0x08,0x04,0x04,0x02,0x03,
    0x00,0x00,0x00,0x00,//第25-32行21-40列 原/*"U",1*/第17-24行21-40列

    0x00,0x08,0x08,0x0F,0x0F,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x06,0x07,
    0x03,0x01,0x00,0x00,//第25-32行41-60列 原/*"B",2*/第25-32行41-60列

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值