OLED,0.91使用學習過程
oled相比lcd屏兩者理解方式差不多。oled有多種驅動方式常見的有iic,spi的對應的oled種類有4pin,6pin,7pin,我常用的4pin(省引腳)。
oled具體的工作方式可以去看手冊,在此只介紹我的學習和使用過程以我的程序為例
void han_zi(void)
{
//顯示一個漢字
uint8 i;
Oled_Init();
Oled_Screen_Clear();
Oled_Write_Cmd(0xb0); //page 0 業數 oled是每8行是一業,一業是長128的燈寬是8個燈
,掃描的是一行一行掃的,漢字一般都是上16*8下16*8分兩部分構成,所以漢字顯示分兩行顯示
Oled_Write_Cmd(0x00); //low //設置顯示位置—列低地址
Oled_Write_Cmd(0x10); //high //設置顯示位置—列高地址。
for(i=0;i<64;i++){
Oled_Write_Data(oledTable3[ i]);//寫數據oledTable3
}
Oled_Write_Cmd(0xb1); //page 1
Oled_Write_Cmd(0x00); //low
Oled_Write_Cmd(0x10); //high
for(i=0;i<80;i++){
Oled_Write_Data(oledTable4[ i]);//寫數據oledTable4
}
}
// 定義顯示漢字
/******************************************************************************/
uint8 code oledTable3[64] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //注意數字是兩半組成,還有就是數組含有空格和點的編碼
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x20,0x20,0xA8,0x6C,0x2A,0x39,0x28,0x28,0x2A,0x6C,0xA8,0x20,0x20,0x00,0x00,
0x20,0x20,0x24,0xA4,0xAC,0xB4,0xA5,0xA6,0xA4,0xB4,0xAC,0xA4,0x24,0x20,0x20,0x00};
uint8 code oledTable4[80] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x02,0x41,0x40,0x48,0x49,0x49,0x49,0x49,0x49,0x48,0x40,0x41,0x02,0x02,0x00,
0x20,0x20,0x20,0x2F,0x2A,0x2A,0x2A,0xFA,0x2A,0x2A,0x2A,0x2F,0x20,0x20,0x20,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00};
上面程序顯示了漢字的顯示的方在此不多說,其他的也差不多。要注意的是數組生成方式,要和讀取方式要相同,
2.常用的指令
第一個命令為0X81,用于設置對比度的,這個命令包含了兩個字節,第一個0X81為命令,隨后發送的一個字節為要設置的對比度的值。這個值設置得越大屏幕就越亮。 第二個命令為0XAE/0XAF。0XAE為關閉顯示命令;0XAF為開啟顯示命令。 第三個命令為0X8D,該指令也包含2個字節,第一個為命令字,第二個為設置值,第二個字節的BIT2表示電荷泵的開關狀態,該位為1,則開啟電荷泵,為0則關閉。在模塊初始化的時候,這個必須要開啟,否則是看不到屏幕顯示的。 第四個命令為0XB0~B7,該命令用于設置頁地址,其低三位的值對應著GRAM的頁地址。發送一個字節,高5位固定。位0-位2, X[2:0]共3位, 值范圍0-7對應頁0-7地址(共8頁) 第五個指令為0X00~0X0F,該指令用于設置顯示時的起始列地址低四位。高四位固定,低四位設置列地址起始低四位。 第六個指令為0X10~0X1F,該指令用于設置顯示時的起始列地址高四位。高四位固定,低四位設置列地址起始高四位。 其他命令,我就不在這里一一介紹了,大家可以參考SSD1306 datasheet的第28頁。從這頁開始,對SSD1306的指令有詳細的介紹。
后面有時間在補
|