内部升压(VBAT供电) Internal setting(Charge pump) { RES=1; delay(1000); RES=0; delay(1000); RES=1; delay(1000); write_i(0xAE); /*display off*/ write_i(0x02); /*set lower column address*/ write_i(0x10); /*set higher column address*/ write_i(0x40); /*set display start line*/ write_i(0xB0); /*set page address*/ write_i(0x81); /*contract control*/ write_i(0xff); /*128*/ write_i(0xA1); /*set segment remap*/ write_i(0xA6); /*normal / reverse*/ write_i(0xA8); /*multiplex ratio*/ write_i(0x3F); /*duty = 1/64*/ write_i(0xad); /*set charge pump enable*/ write_i(0x8b); /* 0x8B 内供VCC */ write_i(0x33); /*0X30---0X33 set VPP 9V */ write_i(0xC8); /*Com scan direction*/ write_i(0xD3); /*set display offset*/ write_i(0x00); /* 0x20 */ write_i(0xD5); /*set osc division*/ write_i(0x80); write_i(0xD9); /*set pre-charge period*/ write_i(0x1f); /*0x22*/ write_i(0xDA); /*set COM pins*/ write_i(0x12); write_i(0xdb); /*set vcomh*/ write_i(0x40); write_i(0xAF); /*display ON*/ } void write_i(unsigned char ins) { DC=0; CS=0; WR=1; P1=ins; /*inst*/ WR=0; WR=1; CS=1; } void write_d(unsigned char dat) { DC=1; CS=0; WR=1; P1=dat; /*data*/ WR=0; WR=1; CS=1; } void delay(unsigned int i) { while(i>0) { i--; } } VCC外部供电 External setting { RES=1; delay(1000); RES=0; delay(1000); RES=1; delay(1000); write_i(0xAE); /*display off*/ write_i(0x02); /*set lower column address*/ write_i(0x10); /*set higher column address*/ write_i(0x40); /*set display start line*/ write_i(0xB0); /*set page address*/ write_i(0x81); /*contract control*/ write_i(0xBF); /*128*/ write_i(0xA1); /*set segment remap*/ write_i(0xA6); /*normal / reverse*/ write_i(0xA8); /*multiplex ratio*/ write_i(0x3F); /*duty = 1/64*/ write_i(0xad); /*set charge pump enable*/ write_i(0x8a); /* 0x8a 外供VCC */ write_i(0x32); /*0X30---0X33 set VPP 8V */ write_i(0xC8); /*Com scan direction*/ write_i(0xD3); /*set display offset*/ write_i(0x00); /* 0x20 */ write_i(0xD5); /*set osc division*/ write_i(0x80); write_i(0xD9); /*set pre-charge period*/ write_i(0x22); /*0x22*/ write_i(0xDA); /*set COM pins*/ write_i(0x12); write_i(0xdb); /*set vcomh*/ write_i(0x40); write_i(0xAF); /*display ON*/ } void write_i(unsigned char ins) { DC=0; CS=0; WR=1; P1=ins; /*inst*/ WR=0; WR=1; CS=1; } void write_d(unsigned char dat) { DC=1; CS=0; WR=1; P1=dat; /*data*/ WR=0; WR=1; CS=1; } void delay(unsigned int i) { while(i>0) { i--; } }