打印
[通用8051核FLASH系列]

【芯圣SDK-HC89F0541测评】+ 2类接口OLED屏的驱动对比

[复制链接]
3082|32
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 芯圣电子官方QQ 于 2023-7-20 09:40 编辑

OLED屏大体分为2种,一是基于I2C接口的;另一类则是SPI接口的。
为此,用HC89F0541开发板做了一下简单的尝试
OLED屏与MCU的连接关系为:
CS    --- P2_4
RST  --- P3_5
DC   --- P3_4
SCLK ---P3_3
SDIN ---P1_7

显示字符函数为:
void OLED_ShowChar(u8 x,u8 y,u8 chr)
{        
                   unsigned char c=0,i=0;   
                   c=chr-' ';
                   if(x>Max_Column-1){x=0;y=y+2;}
                   if(SIZE ==16)
                   {
                            OLED_Set_Pos(x,y);         
                            for(i=0;i<8;i++)
                            OLED_WR_Byte(F8X16[c*16+i],OLED_DATA);
                            OLED_Set_Pos(x,y+1);
                            for(i=0;i<8;i++)
                            OLED_WR_Byte(F8X16[c*16+i+8],OLED_DATA);
                   }
                   else
                   {      
                           OLED_Set_Pos(x,y+1);
                           for(i=0;i<6;i++)
                           OLED_WR_Byte(F6x8[c][i],OLED_DATA);
                                    
                   }
}

显示字符串的函数为:
void OLED_ShowString(u8 x,u8 y,u8 *chr)
{
         unsigned char j=0;
         while (chr[j]!='\0')
         {                 OLED_ShowChar(x,y,chr[j]);
                            x+=8;
                            if(x>120){x=0;y+=2;}
                            j++;
         }
}

显示汉字的函数为:
void OLED_ShowCHinese(u8 x,u8 y,u8 no)
{                                
         u8 t,adder=0;
         OLED_Set_Pos(x,y);         
         for(t=0;t<16;t++)
         {
                                     OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);
                                     adder+=1;
        }      
         OLED_Set_Pos(x,y+1);      
        for(t=0;t<16;t++)
        {
                                     OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA);
                                     adder+=1;
        }
}

若主程序如下:
void main(void)
{
         unsigned char i;
         while((CLKCON&0x20)!=0x20);
         CLKSWR = 0x51;
         while((CLKSWR&0xC0)!=0x40);
         CLKDIV = 0x01;
   
         P2M4 = 0xC2;
         P3M5 = 0xC2;
         P3M4 = 0xC2;
         P3M3 = 0xC2;
         P1M7 = 0xC2;
        
        delay_ms(5000);
        OLED_Init();
   
        while(1)
        {
            OLED_Clear();
            OLED_ShowString(22,0,"OLED TEST");
            OLED_ShowString(8,2,"  Jinglixixi");
            OLED_ShowString(20,4,"2020/07/01");
            delay_ms(50000);
            OLED_Clear();
            OLED_ShowCHinese(0,0,0);
            OLED_ShowCHinese(18,0,1);
            OLED_ShowCHinese(36,0,2);
            OLED_ShowCHinese(54,0,3);
            OLED_ShowCHinese(72,0,4);
            OLED_ShowCHinese(90,0,5);
            OLED_ShowCHinese(108,0,6);
            delay_ms(50000);
      }
}

OLED屏显示中文字符,如图1所示。
1 中文显示

显示字符串信息,图2所示。
2 字符串显示

当使用I2C接口的OLED屏时,使OLED屏与MCU的连接关系为:
SDA  ---  P3_5
SCK  ---  P3_4

在使用相同中文字库的情况下,也可显示出中文,如图3所示。
3 中文显示

结论:两种接口的OLED屏在SDK-HC89F0541开发板上均可实现显示功能,只是I2C接口的要更节省些GPIO资源。值得注意的是在定义字库时,其存储数组应定义为uc8型,否则容易出现异常。

使用特权

评论回复
沙发
xiaoqizi| | 2020-8-7 13:51 | 只看该作者
感谢楼主分享

使用特权

评论回复
板凳
木木guainv| | 2020-8-7 13:53 | 只看该作者
什么叫2类接口啊

使用特权

评论回复
地板
磨砂| | 2020-8-7 13:53 | 只看该作者
代码很详细

使用特权

评论回复
5
晓伍| | 2020-8-7 13:54 | 只看该作者
了解了 呵呵

使用特权

评论回复
6
八层楼| | 2020-8-7 13:55 | 只看该作者
现在的并口屏很少用了吧

使用特权

评论回复
7
jinglixixi|  楼主 | 2020-8-7 15:58 | 只看该作者

就是2种接口的OLED屏

使用特权

评论回复
8
jinglixixi|  楼主 | 2020-8-7 15:59 | 只看该作者
八层楼 发表于 2020-8-7 13:55
现在的并口屏很少用了吧

是的,耗GPIO口。

使用特权

评论回复
9
风凌天| | 2021-1-9 14:03 | 只看该作者
能不能发完整的代码给我啊,谢谢

使用特权

评论回复
10
jinglixixi|  楼主 | 2021-1-9 23:52 | 只看该作者
风凌天 发表于 2021-1-9 14:03
能不能发完整的代码给我啊,谢谢

已发给你,请查收。

使用特权

评论回复
11
daichaodai| | 2021-1-20 18:43 | 只看该作者
感谢楼主分享

使用特权

评论回复
12
jinglixixi|  楼主 | 2021-1-20 20:47 | 只看该作者

使用特权

评论回复
13
勇者无惧你和我| | 2021-1-21 10:51 | 只看该作者
这个真心的不错,感觉这个板子很好用的。

使用特权

评论回复
14
嵌入小菜菜| | 2021-1-21 11:16 | 只看该作者
太棒了,我恰好缺少这个芯片的资料。

使用特权

评论回复
15
jinglixixi|  楼主 | 2021-1-21 11:38 | 只看该作者
嵌入小菜菜 发表于 2021-1-21 11:16
太棒了,我恰好缺少这个芯片的资料。

使用特权

评论回复
16
两只袜子| | 2021-1-21 15:01 | 只看该作者
很棒的芯片资料

使用特权

评论回复
17
jinglixixi|  楼主 | 2021-1-21 18:52 | 只看该作者

感谢支持!!!

使用特权

评论回复
18
zhengshuai888| | 2021-1-21 19:34 | 只看该作者
学习了,感谢楼主分享。

使用特权

评论回复
19
jinglixixi|  楼主 | 2021-1-22 00:26 | 只看该作者
zhengshuai888 发表于 2021-1-21 19:34
学习了,感谢楼主分享。

多谢鼓励和支持!!!

使用特权

评论回复
20
zhengshuai888| | 2021-1-22 12:35 | 只看该作者
学习了,感谢楼主分享。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

464

主题

2783

帖子

38

粉丝