/* QG-6448KLBEG03 IC:SSD1306 8080 */ 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--; } } 内部升压方式时,VBAT外接电压 void ssd1306() { write_i(0xAE); /*display off*/ write_i(0x00); /*set lower column address*/ write_i(0x12); /*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(0x2F); /*duty = 1/48*/ write_i(0xC8); /*Com scan direction*/ write_i(0xD3); /*set display offset*/ write_i(0x00); write_i(0xD5); /*set osc division*/ write_i(0x80); write_i(0xD9); /*set pre-charge period*/ write_i(0X21); write_i(0xDA); /*set COM pins*/ write_i(0x12); write_i(0xdb); /*set vcomh*/ write_i(0x40); write_i(0x8d); /*set charge pump disable*/ write_i(0x14); write_i(0xAF); /*display ON*/ } 外部升压方式时,VCC外接电压 void ssd1306() { write_i(0xAE); /*display off*/ write_i(0x00); /*set lower column address*/ write_i(0x12); /*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(0x2F); /*duty = 1/48*/ write_i(0xC8); /*Com scan direction*/ write_i(0xD3); /*set display offset*/ write_i(0x00); write_i(0xD5); /*set osc division*/ write_i(0x80); write_i(0xD9); /*set pre-charge period*/ write_i(0X21); write_i(0xDA); /*set COM pins*/ write_i(0x12); write_i(0xdb); /*set vcomh*/ write_i(0x40); write_i(0x8d); /*set charge pump disable*/ write_i(0x10); write_i(0xAF); /*display ON*/ }