日本一道本视频,99热在线免费,老司机亚洲精品影院在线,91视频免费网站

文章詳情

3.5寸240128點陣OLED顯示屏HGS2401281參考例程

日期:2025-04-25 12:05
瀏覽次數:1826
摘要: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);

}