打印
[PIC®/AVR®/dsPIC®产品]

【CuriosityNano测评报告】彩色OLED屏显示图片

[复制链接]
1173|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
PIC18F57Q43具有较充实的存储空间,为此可以利用它来存储和显示图片的内容。
为配合图片的显示,这里也配以0.96寸的彩色LCD屏作为显示器件,该显示屏的分辨率为160*80
1  引脚配置
2 引脚命名
该显示屏的初始化函数为:
void Lcd_Init(void)
{
  OLED_RST_Clr();
  __delay_ms(200);
  OLED_RST_Set();
  __delay_ms(200);
  LCD_WR_REG(0x11);
  __delay_ms(100);
  LCD_WR_REG(0x21);
  LCD_WR_REG(0xB1);
  LCD_WR_DATA8(0x05);
  LCD_WR_DATA8(0x3A);
  LCD_WR_DATA8(0x3A);
  LCD_WR_REG(0xB2);
  LCD_WR_DATA8(0x05);
  LCD_WR_DATA8(0x3A);
  LCD_WR_DATA8(0x3A);
  LCD_WR_REG(0xB3);
  LCD_WR_DATA8(0x05);
  LCD_WR_DATA8(0x3A);
  LCD_WR_DATA8(0x3A);
  LCD_WR_DATA8(0x05);
  LCD_WR_DATA8(0x3A);
  LCD_WR_DATA8(0x3A);
  LCD_WR_REG(0xB4);
  LCD_WR_DATA8(0x03);
  LCD_WR_REG(0xC0);
  LCD_WR_DATA8(0x62);
  LCD_WR_DATA8(0x02);
  LCD_WR_DATA8(0x04);
  LCD_WR_REG(0xC1);
  LCD_WR_DATA8(0xC0);
  LCD_WR_REG(0xC2);
  LCD_WR_DATA8(0x0D);
  LCD_WR_DATA8(0x00);
  LCD_WR_REG(0xC3);
  LCD_WR_DATA8(0x8D);
  LCD_WR_DATA8(0x6A);
  LCD_WR_REG(0xC4);
  LCD_WR_DATA8(0x8D);
  LCD_WR_DATA8(0xEE);
  LCD_WR_REG(0xC5);
  LCD_WR_DATA8(0x0E);
  LCD_WR_REG(0xE0);
  LCD_WR_DATA8(0x10);
  LCD_WR_DATA8(0x0E);
  LCD_WR_DATA8(0x02);
  LCD_WR_DATA8(0x03);
  LCD_WR_DATA8(0x0E);
  LCD_WR_DATA8(0x07);
  LCD_WR_DATA8(0x02);
  LCD_WR_DATA8(0x07);
  LCD_WR_DATA8(0x0A);
  LCD_WR_DATA8(0x12);
  LCD_WR_DATA8(0x27);
  LCD_WR_DATA8(0x37);
  LCD_WR_DATA8(0x00);
  LCD_WR_DATA8(0x0D);
  LCD_WR_DATA8(0x0E);
  LCD_WR_DATA8(0x10);
  LCD_WR_REG(0xE1);
  LCD_WR_DATA8(0x10);
  LCD_WR_DATA8(0x0E);
  LCD_WR_DATA8(0x03);
  LCD_WR_DATA8(0x03);
  LCD_WR_DATA8(0x0F);
  LCD_WR_DATA8(0x06);
  LCD_WR_DATA8(0x02);
  LCD_WR_DATA8(0x08);
  LCD_WR_DATA8(0x0A);
  LCD_WR_DATA8(0x13);
  LCD_WR_DATA8(0x26);
  LCD_WR_DATA8(0x36);
  LCD_WR_DATA8(0x00);
  LCD_WR_DATA8(0x0D);
  LCD_WR_DATA8(0x0E);
  LCD_WR_DATA8(0x10);
  LCD_WR_REG(0x3A);
  LCD_WR_DATA8(0x05);
  LCD_WR_REG(0x36);
  LCD_WR_DATA8(0x78);
  LCD_WR_REG(0x29);
  OLED_BLK_Set();
}

相应的以色彩清除屏幕的函数为:
void LCD_Clear(u16 Color)
{
    u16 i,j;
    LCD_Address_Set(0,0,LCD_W-1,LCD_H-1);
    for(i=0;i<LCD_W;i++)
    {
       for (j=0;j<LCD_H;j++)
       {
          LCD_WR_DATA(Color);
       }
    }
}

实现字符串显示的函数为:
void LCD_ShowString(u16 x,u16 y,const u8 *p,u16 color)
{
    while(*p!='\0')
    {
        if(x>LCD_W-16)
        {
            x=0;
            y+=16;
        }
        if(y>LCD_H-16)
        {
            y=x=0;
            LCD_Clear(RED);
        }
        LCD_ShowChar(x,y,*p,0,color);
        x+=8;
        p++;
    }
}

实现满屏图片显示的函数为:
void LCD_ShowPicturea(u16 x1,u16 y1,u16 x2,u16 y2)
{
      int i;
      LCD_Address_Set(x1,y1,x2,y2);
      for(i=0;i<12800;i++)
      {
            LCD_WR_DATA8(gImage_FJ[i*2]);
            LCD_WR_DATA8(gImage_FJ[i*2+1]);
      }
}

实现字符串及图片显示的测试主程序为:
int main(void)
{
      SYSTEM_Initialize();
      Lcd_Init();
      LCD_Clear(BLACK);
      LCD_ShowString(20,10,"PIC18F57Q43 TEST",RED);
      LCD_ShowString(20,30,"0.96'  OLED",YELLOW);
      __delay_ms(2000);
      LCD_ShowPicturea(0,0,159,79);
      __delay_ms(2000);
      LCD_ShowPictureb(0,0,159,79);
     while(1)
     {
        LED0_Toggle();
        __delay_ms(500);
     }
}

经编译与下载,其输出信息如图3所示。
3 下载提示信息
在完成下载后,其显示效果如图4至图6所示。
4  显示字符串
5 显示风景图片
6  显示人物图片

使用特权

评论回复
沙发
wziyi| | 2022-7-19 09:45 | 只看该作者
最好提供下原理图

使用特权

评论回复
板凳
qiangtech| | 2022-7-19 14:04 | 只看该作者
这么快就跑起来了,

使用特权

评论回复
地板
dspmana| | 2022-11-5 15:15 | 只看该作者
PIC18F57Q43的刷屏速度还可以吗?

使用特权

评论回复
5
elsaflower| | 2022-11-5 15:24 | 只看该作者
这个屏幕分辨率还是挺高的。              

使用特权

评论回复
6
averyleigh| | 2022-11-5 15:47 | 只看该作者
这个汉字的字模是保存到外部了吗?

使用特权

评论回复
7
usysm| | 2022-11-5 16:12 | 只看该作者
如何实现彩色屏画图呢              

使用特权

评论回复
8
jinglixixi|  楼主 | 2022-11-5 17:43 | 只看该作者
averyleigh 发表于 2022-11-5 15:47
这个汉字的字模是保存到外部了吗?

内部数组或存到外部FLASH中

使用特权

评论回复
9
jinglixixi|  楼主 | 2022-11-5 17:47 | 只看该作者
usysm 发表于 2022-11-5 16:12
如何实现彩色屏画图呢

图6显示人物图片不是吗,将图片数据存入内部数组接口。

使用特权

评论回复
10
pzsh| | 2022-11-8 14:44 | 只看该作者
有彩色相框的感觉

使用特权

评论回复
11
jinglixixi|  楼主 | 2022-11-8 16:03 | 只看该作者
pzsh 发表于 2022-11-8 14:44
有彩色相框的感觉

是呀!

使用特权

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

本版积分规则

463

主题

2774

帖子

38

粉丝