OLED驱动ICssd1305初始化代码

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
// 设置开始页
/* ************************* */
void set_startpage(unsigned char p)
{
p=0xb0+p; // 开始页
wcode(p);
}
/* ************************* */
// 写垂直线
/* ************************* */
void vhl(void)
{ unsigned char i;
for(i=0;i<8;i++)
{
set_startpage(i); // 第i页,第0列
delay(10);
wcode(0xa6); //set normal display
delay(10);
wcode(0xaf);
delay(10);
}
/* ************************* */
{
wcode(0xb0+i);
wcode(0x00);
wcode(0x10);
for(loop=0;loop<132;loop++)
wdata(0xff);
}
}
/* ************************* */
// 整屏清除
//
/* ************************* */
void clr(void)
{ unsigned char loop,i;
wcode(0xaf);
wcode(0x40);
for(i=0;i<8;i++)
{
delay(10);
wcode(0x12);
delay(10);
wcode(0xa8); //multiplex ration mode:63
delay(10);
wcode(0x3f);
delay(10);
wcode(0xd5); //display divide ratio/osc. freq. mode
/* ************************* */
void hol(void)
extern unsigned char daoxian;
extern void delay(long v);
#define CS_0 P2OUT &=~BIT0
#define CS_1 P2OUT |= BIT0
#define DC_0 P2OUT &=~BIT2
// 显示开关
//
/* ************************* */
void dison_off(unsigned char o)
{
o=o+0xae;
wcode(o);
}
/* ************************* */
wcode(0xa1); //segment remap
delay(10);
wcode(0xc8); //common output scan direction:com63~com0
delay(10);
wcode(0xda); //common pads hardware: alternative
// W-R=0 :P4.0=0
// R-D(E):0-1-0 :P4.1
// 数据 :P3口
/* ************************* */
void wdata(unsigned char c)
{
yh =yh>>4;
yh &=0x0f;
yh =yh+0x10;
wcode(yh); // 页地址
wcode(yl); // 列地址
}
/* ************************* */
}
/* ************************* */
// 函数名称: lcd_init
// 函数功能: 显示器初始化
// 入口变量:
// 出口变量:
// 修改记录:
//***********************
void OLED_init(void)
{ wcode(0xae);
CS_0;
DC_1;
RDE_1;
WR_0;
delay(3);
XDATA=c;
delay(10);
WR_1;
delay(3);
CS_1;
delay(10);
wcode(0xd9); //set pre-charge period
delay(10);
wcode(0x22); //set period 1:1;period 2:15
delay(10);
wcode(0x20); //Set Memory Addressing Mode
// 写整屏
//
/* ************************* */
void full(void)
{ unsigned char loop,i;
wcode(0xaf);
wcode(0x40);
for(i=0;i<8;i++)
XDATA=c;
delay(10);
WR_1;
delay(3);
CS_1;
}
/* ************************* */
// 函数名称: wdata
// 函数功能: 显示器写数据
#define DC_1 P2OUT |= BIT2
#define WR_0 P4OUT &=~BIT0
#define WR_1 P4OUT |= BIT0
#define RDE_1 P4OUT |= BIT1
#define RDE_0 P4OUT &=~BIT1
// 入口变量:
// 出口变量:
// 修改记录:
//***********************
// 写数据
// 模式:bs1=1,bs2=1,硬件直接配置
// 选8080模式
// 先片选:CS, :P2.0=0
// D-C=1 :P2.2=1
delay(10iguration
delay(10);
wcode(0x8e); //external VCC supply
delay(10);
wcode(0xa4); //out follows RAM content
delay(10);
wcode(0x02); //page addressing mode
delay(10);
wcode(0xdb); //VCOM deselect level mode
delay(10);
wcode(0x3c); //set Vvcomh=0.83*Vcc
wcode(0x21); // set column address
wcode(0x00); // start column 0
wcode(0x7f); // end column 127
delay(10);
// 模式:bs1=1,bs2=1,硬件直接配置
// 选8080模式
// 先片选:CS, :P2.0=0
// D-C=1 :P2.2=0
// W-R=0 :P4.0=0
// R-D(E):0-1-0 :P4.1
// 数据 :P3口
/* ************************* */
void wcode(unsigned char c) // 写指令
{
CS_0;
DC_0;
RDE_1;
WR_0;
delay(3);
delay(10);
wcode(0x70); //Osc. Freq:320kHz,DivideRation:1
delay(10);
wcode(0x81); //contrast control
delay(10);
wcode(0x70); // mode:64
set_startline(0); // 第0行
set_startcol (64); // 写第n=64列
wdata(0xff);
}
}
/* ************************* */
// 写水平线
// 设置开始行
/* ************************* */
void set_startline(unsigned char x)
{
x=0x40+x; // 开始行
wcode(x);
}
/* ************************* */
wcode(0xb0+i);
wcode(0x10);
wcode(0x00);
for(loop=0;loop<132;loop++)
{ wdata(0xff);}
}
}
/* ************************* */
set_startline(0); // 第0行
set_startcol (63); // 写第n=63列
wdata(0xff);
}
for(i=0;i<8;i++)
{
set_startpage(i); // 第i页,第0列
// 设置开始列
/* ************************* */
void set_startcol(unsigned char y)
{ unsigned char yh,yl;
yl = y;
yh = y;
yl &=0x0f;
#define XDATA P3OUT
/* ************************* */
// 函数名称: wcode
// 函数功能: 显示器写指令
// 入口变量:
// 出口变量:
// 修改记录:
//***********************
// 写指令
相关文档
最新文档