优游

文章详情

3.5寸240128点阵OLED显示屏HGS2401281参考例程

日期:2020-05-26 11:32
浏览次数:127
摘要:3.5寸240128点阵OLED显示屏低温-30℃,黑底黄字或者黑底绿字

   3.5寸240128点阵OLED显示屏HGS2401281是清达光电提供的,这款240128宽温OLED屏优游黑底黄字和黑底绿字,接口是8080 8位并口,供电电压为3.3v,的,主控IC为SSD1322主控,另外同样尺寸的也优游带优游文字库SPI接口/UART接口/RS232接口的款式,HGS2401281参考例程如下:

#include<reg51.h>

优游 #include <string.h>

#include <intrins.h>

#include <math.h>

#define uchar unsigned char

优游 #define uint unsigned int

#define DATA  P1

sbit CD  = P3^0;

优游 sbit WR1 = P3^1;

sbit RD1 = P3^2;

sbit CS  = P3^3;

sbit RES = P3^4;

优游 uchar RAM_data[4];

优游 uchar INV=0;

//逐行式  顺向(高位在前)

优游 uchar code table_88[]={};//篇幅优游制 省略

uchar code table_816[]={};//篇幅优游制 省略

uchar code table_1616[]={};// 篇幅优游制 省略

uchar code table_3232[][128]={};//篇幅优游制 省略

优游 /******************************************************************

     延时子程序

优游 *****************************************************************/

优游 void uDelay(uchar n)

{

优游 while(n--);

}

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

  for(y=124;y>0;y--);

}

优游 void delay_100us(uchar z)

{

z=z*16;

while(z--);

}

优游 /*********************************************************************

  写入指令和数据

优游 ************************************************************************/

void wr_data(uchar b) //写数据  ;

{

优游 RD1=1;

CS=0;

CD=1;

WR1=0;

优游 DATA=b;

//uDelay(1);

WR1=1;

优游 //_nop_();

CS=1;

}

void wr_com(uchar com)  //写命令;

{

优游 RD1=1;

CS=0;

CD=0;

优游 WR1=0;

DATA=com;

优游 WR1=1;

CS=1;

}


/*********************************************************************

优游   初始化函数;

优游 ************************************************************************/

优游 void init(void)

{

     delay(50);

     RES=1;delay(1);

优游      RES=0;delay(1);

     RES=1;delay(1);

优游 // 准备接受命令;

     wr_com(0xFD);

 wr_data(0x12);       /* 12H接受,16H拒绝 */

优游 //休眠开关;

优游  wr_com(0xAE);   /* AEH开休眠,AF关休眠 */

优游 // 设置列窗口;

 wr_com(0x15);

优游  wr_data(0x24);      

 wr_data(0x5f);            /*256列 */

//设置行窗口;

 wr_com(0x75);

 wr_data(0x00);      

 wr_data(0x7f);            /*64行 */

// 设置可逆地图;

优游  wr_com(0xA0);

 wr_data(0x36);        /* 选高字节在前,COM扫描反向 ,水平地址模式 */

优游  wr_data(0x01);      /*选双屏模式 */

// 设置起始行;

 wr_com(0xA1);

优游  wr_data(0x00);        /* 0 */

优游 // 设置显示分支;

优游  wr_com(0xA2);    

 wr_data(0x00);            /* 无分支 */

优游 // 设置显示模式;

 wr_com(0xA6);        /* A4H全关,A5H全开,A6H正优游,A7H反显 */

 wr_com(0xA6);

// 设置反显;

     wr_com(0xA8);

  wr_data(0x00);      

  wr_data(0x7f);

优游 // 设置部分显示;

 wr_com(0xA9);        /* A8H进入部分显示,A9H退出 */

// Vdd来源;

优游  wr_com(0xAB);

 wr_data(0x01);       /* 00H为外部,01H为内部 */

// 设置P1 P2 ;

优游  wr_com(0xB1);       /*P1=29,P2=7 */

 wr_data(0xd2);

// 设置D和Fosc;

优游  wr_com(0xB3);  

优游  //wr_data(0xe1);           /*F=9,D=1 */

 wr_data(0xf1);

优游 // 设置显示质量和Vsl来源;

 wr_com(0xB4);  

优游  wr_data(0xA0);       /* A0H为外部Vsl,A2H为内部Vsl */

优游  wr_data(0xfd);       /*FDH为提高质量,B5H为正优游 */

//设置Tp3

     wr_com(0xB6);

 wr_data(0x08);

//设置Vp2;

优游     wr_com(0xBB);

wr_data(0x1F);

// 设置Vcomh;

    wr_com(0xBE);

优游 wr_data(0x06); /* Vcomh=0.86Vcc  */  

优游 //设置GPIO;

优游      wr_com(0xB5);

优游  wr_data(0x0a);  

//设置灰度值;

优游  wr_com(0xB8);

 wr_data(0x0c);

优游  wr_data(0x18);

优游  wr_data(0x24);

优游  wr_data(0x30);

优游  wr_data(0x3c);

 wr_data(0x48);

 wr_data(0x54);

 wr_data(0x60);

 wr_data(0x6c);

 wr_data(0x78);

优游  wr_data(0x84);

 wr_data(0x90);

 wr_data(0x9c);

 wr_data(0xa8);

 wr_data(0x93);//b4  

//使能灰阶;

    wr_com(0x00);

//设置对比度;

优游     wr_com(0xC1);

wr_data(0x80); /* 共256级选第128级  */  

//设置SEG电流范围;

    wr_com(0xC7);

wr_data(0x0F); /* 满范围  */

优游 //设置显示行;

    wr_com(0xCA);

wr_data(0x7F);  /* 64 */  

优游 //设置显示质量;

    wr_com(0xD1);

wr_data(0xA2);

wr_data(0x20);

all_screen(0X00); //清屏

优游     wr_com(0xAF); /* 开显示  */  

}

优游 main()

{

uchar i,j=0;

init();

优游 for(i=0;i<8;i++)

优游 { j=i*16;

优游  show_1616(2,j,0,13); //清达光电技术优游显示模优游

}

delay(1000);

fill(0x00); //清屏

show_3232(14,5,0,3);  //OLED

优游 show_3232(2,37,4,10); //240*128

优游 show_1616(10,80,0,9);//清达光电技术优游

优游 show_816(6,100,0,23);//www.china-lcdmodules.com

优游 while(1);

}