双色OLED屏是一款0.96'的显示屏,其首行为黄色,其它3行则为蓝色,故称为双色屏,其实在何处显示那种颜色是不能自主控制的。 其实,在HC32F460开发板上要驱动此双色屏并不难,只需对差异点作出修改即可。 为便于对比,这里给出两者存在差异的部分,并以红色标出。 由于双色OLED屏的电源引脚存在不同,故只能以连线的方式来使用,否则完全可以直接插到板子上来用。 此外,由于双色屏比单色屏的显示行数多,故能直接显示4行信息,而单色屏只能显示2行。 双色OLED屏显示效果 // 0.91_OLED: - #define OLED_CMD 0 //写命令
- #define OLED_DATA 1 //写数据
- #define OLED_MODE 0
- #define OLED_ADDS 0x78
- #define SIZE 16
- #define XLevelL 0x02
- #define XLevelH 0x10
- #define Max_Column 128
- #define Max_Row 64
- #define Brightness 0xFF
- #define X_WIDTH 128
- #define Y_WIDTH <font color="#ff0000">32</font>
-
- //初始化SSD1306
- void OLED_Init(void)
- {
- Ddl_Delay1ms(100);
- OLED_WR_Byte(0xAE,OLED_CMD);//关闭显示
- <font color="#800080"> OLED_WR_Byte(0x40,OLED_CMD);//---set low column address
- OLED_WR_Byte(0xB0,OLED_CMD);//---set high column address
- OLED_WR_Byte(0xC8,OLED_CMD);//-not offset
- OLED_WR_Byte(0x81,OLED_CMD);//设置对比度
- OLED_WR_Byte(0xff,OLED_CMD);
- OLED_WR_Byte(0xa1,OLED_CMD);//段重定向设置
- OLED_WR_Byte(0xa6,OLED_CMD);//
- OLED_WR_Byte(0xa8,OLED_CMD);//设置驱动路数
- OLED_WR_Byte(0x1f,OLED_CMD);
- OLED_WR_Byte(0xd3,OLED_CMD);
- OLED_WR_Byte(0x00,OLED_CMD);
- OLED_WR_Byte(0xd5,OLED_CMD);
- OLED_WR_Byte(0xf0,OLED_CMD);
- OLED_WR_Byte(0xd9,OLED_CMD);
- OLED_WR_Byte(0x22,OLED_CMD);
- OLED_WR_Byte(0xda,OLED_CMD);
- OLED_WR_Byte(0x02,OLED_CMD);
- OLED_WR_Byte(0xdb,OLED_CMD);
- OLED_WR_Byte(0x49,OLED_CMD);
- OLED_WR_Byte(0x8d,OLED_CMD);
- OLED_WR_Byte(0x14,OLED_CMD);</font>
- OLED_WR_Byte(0xaf,OLED_CMD);
- OLED_Clear();
- }
// 0.96_OLED: - #define OLED_CMD 0 //写命令
- #define OLED_DATA 1 //写数据
- #define OLED_MODE 0
-
- #define SIZE 16
- #define XLevelL 0x02
- #define XLevelH 0x10
- #define Max_Column 128
- #define Max_Row 64
- #define Brightness 0xFF
- #define X_WIDTH 128
- #define Y_WIDTH <font color="#ff0000">64</font>
-
- //初始化SSD1306
- void OLED_Init(void)
- {
- delay_ms(100);
- OLED_WR_Byte(0xAE,OLED_CMD);//--turn off oled panel
- <font color="#800080"> OLED_WR_Byte(0x00,OLED_CMD);//---set low column address
- OLED_WR_Byte(0x10,OLED_CMD);//---set high column address
- OLED_WR_Byte(0x40,OLED_CMD);
- OLED_WR_Byte(0x81,OLED_CMD);//--set contrast control register
- OLED_WR_Byte(0xCF,OLED_CMD); // Set SEG Output Current Brightness
- OLED_WR_Byte(0xA1,OLED_CMD);
- OLED_WR_Byte(0xC8,OLED_CMD);
- OLED_WR_Byte(0xA6,OLED_CMD);//--set normal display
- OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
- OLED_WR_Byte(0x3f,OLED_CMD);//--1/64 duty
- OLED_WR_Byte(0xD3,OLED_CMD);
- OLED_WR_Byte(0x00,OLED_CMD);//-not offset
- OLED_WR_Byte(0xd5,OLED_CMD);//--set display clock divide ratio/oscillator frequency
- OLED_WR_Byte(0x80,OLED_CMD);//--set divide ratio, Set Clock as 100 Frames/Sec
- OLED_WR_Byte(0xD9,OLED_CMD);//--set pre-charge period
- OLED_WR_Byte(0xF1,OLED_CMD);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
- OLED_WR_Byte(0xDA,OLED_CMD);//--set com pins hardware configuration
- OLED_WR_Byte(0x12,OLED_CMD);
- OLED_WR_Byte(0xDB,OLED_CMD);//--set vcomh
- OLED_WR_Byte(0x40,OLED_CMD);//Set VCOM Deselect Level
- OLED_WR_Byte(0x20,OLED_CMD);//-Set Page Addressing Mode (0x00/0x01/0x02)
- OLED_WR_Byte(0x02,OLED_CMD);//
- OLED_WR_Byte(0x8D,OLED_CMD);//--set Charge Pump enable/disable
- OLED_WR_Byte(0x14,OLED_CMD);//--set(0x10) disable
- OLED_WR_Byte(0xA4,OLED_CMD);// Disable Entire Display On (0xa4/0xa5)
- OLED_WR_Byte(0xA6,OLED_CMD);// Disable Inverse Display On (0xa6/a7)
- OLED_WR_Byte(0xAF,OLED_CMD);//--turn on oled panel</font>
- OLED_WR_Byte(0xAF,OLED_CMD); /*display ON*/
- OLED_Clear();
- <font color="#ff0000"> OLED_Set_Pos(0,0); </font>
- }
|