聯(lián)系人:劉小姐,李小姐,王小姐
Tel:010-62000662,62051209
Fax:010-82036512
Mobile:13701081790
Email:bjqingda@126.com
Web:www.tsingtek.com
QQ:453189731
微信:13701081790
地址:北京市海淀區(qū)花園東路32號(hào)花園公寓A402室3.5寸240128點(diǎn)陣OLED顯示屏HGS2401281參考例程
3.5寸240128點(diǎn)陣OLED顯示屏HGS2401281是清達(dá)光電提供的,這款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]={};//篇幅限制 省略
/******************************************************************
延時(shí)子程序
*****************************************************************/
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--);
}
/*********************************************************************
寫入指令和數(shù)據(jù)
************************************************************************/
void wr_data(uchar b) //寫數(shù)據(jù) ;
{
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;
}
/*********************************************************************
初始化函數(shù);
************************************************************************/
void init(void)
{
delay(50);
RES=1;delay(1);
RES=0;delay(1);
RES=1;delay(1);
// 準(zhǔn)備接受命令;
wr_com(0xFD);
wr_data(0x12); /* 12H接受,16H拒絕 */
//休眠開關(guān);
wr_com(0xAE); /* AEH開休眠,AF關(guān)休眠 */
// 設(shè)置列窗口;
wr_com(0x15);
wr_data(0x24);
wr_data(0x5f); /*256列 */
//設(shè)置行窗口;
wr_com(0x75);
wr_data(0x00);
wr_data(0x7f); /*64行 */
// 設(shè)置可逆地圖;
wr_com(0xA0);
wr_data(0x36); /* 選高字節(jié)在前,COM掃描反向 ,水平地址模式 */
wr_data(0x01); /*選雙屏模式 */
// 設(shè)置起始行;
wr_com(0xA1);
wr_data(0x00); /* 0 */
// 設(shè)置顯示分支;
wr_com(0xA2);
wr_data(0x00); /* 無分支 */
// 設(shè)置顯示模式;
wr_com(0xA6); /* A4H全關(guān),A5H全開,A6H正常,A7H反顯 */
wr_com(0xA6);
// 設(shè)置反顯;
wr_com(0xA8);
wr_data(0x00);
wr_data(0x7f);
// 設(shè)置部分顯示;
wr_com(0xA9); /* A8H進(jìn)入部分顯示,A9H退出 */
// Vdd來源;
wr_com(0xAB);
wr_data(0x01); /* 00H為外部,01H為內(nèi)部 */
// 設(shè)置P1 P2 ;
wr_com(0xB1); /*P1=29,P2=7 */
wr_data(0xd2);
// 設(shè)置D和Fosc;
wr_com(0xB3);
//wr_data(0xe1); /*F=9,D=1 */
wr_data(0xf1);
// 設(shè)置顯示質(zhì)量和Vsl來源;
wr_com(0xB4);
wr_data(0xA0); /* A0H為外部Vsl,A2H為內(nèi)部Vsl */
wr_data(0xfd); /*FDH為提高質(zhì)量,B5H為正常 */
//設(shè)置Tp3
wr_com(0xB6);
wr_data(0x08);
//設(shè)置Vp2;
wr_com(0xBB);
wr_data(0x1F);
// 設(shè)置Vcomh;
wr_com(0xBE);
wr_data(0x06); /* Vcomh=0.86Vcc */
//設(shè)置GPIO;
wr_com(0xB5);
wr_data(0x0a);
//設(shè)置灰度值;
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);
//設(shè)置對(duì)比度;
wr_com(0xC1);
wr_data(0x80); /* 共256級(jí)選第128級(jí) */
//設(shè)置SEG電流范圍;
wr_com(0xC7);
wr_data(0x0F); /* 滿范圍 */
//設(shè)置顯示行;
wr_com(0xCA);
wr_data(0x7F); /* 64 */
//設(shè)置顯示質(zhì)量;
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); //清達(dá)光電技術(shù)有限公司顯示模組
}
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);//清達(dá)光電技術(shù)有限公司
show_816(6,100,0,23);//www.china-lcdmodules.com
while(1);
}