目錄
一、前言
二、OLED模塊介紹
1、液晶顯示屏
2、0.95OLED模塊
三、硬件連接
四、軟件代碼
五、效果展示
六、代碼鏈接
一、前言
從性能來說OLED屏幕分辨率相對(duì)較高,引腳也少很多,占用的I/O口會(huì)少很多。從功耗來說首先oled顯示屏不需要背光燈,當(dāng)有電流通過時(shí),這些有機(jī)材料就可以發(fā)光,而且3.3V~5V之間都可以使用。從外觀來說體型更小,重量更輕更薄,可用來制作許多小型顯示設(shè)備。這次我使用的是四個(gè)引腳的0.95寸oled顯示屏,進(jìn)行文字圖片的循環(huán)顯示。
二、OLED模塊介紹
1、液晶顯示屏
液晶顯示器,為平面超薄的顯示設(shè)備,它由一定數(shù)量的彩色或黑白像素組成,放置于光源或者反射面前方。液晶顯示器功耗很低,因此倍受工程師青睞,適用于使用電池的電子設(shè)備。它的主要原理是以電流刺激液晶分子產(chǎn)生點(diǎn)、線、面配合背部燈管構(gòu)成畫面。
液晶顯示器的工作原理:液晶是一種介于固體和液體之間的特殊物質(zhì),它是一種有機(jī)化合物,常態(tài)下呈液態(tài),但是它的分子排列卻和固體晶體一樣非常規(guī)則,因此取名液晶,它的另一個(gè)特殊性質(zhì)在于,如果給液晶施加一個(gè)電場(chǎng),會(huì)改變它的分子排列,這時(shí)如果給它配合偏振光片,它就具有阻止光線通過的作用(在不施加電場(chǎng)時(shí),光線可以順利透過),如果再配合彩色濾光片,改變加給液晶電壓大小,就能改變某一顏色透光量的多少,也可以形象地說改變液晶兩端的電壓就能改變它的透光度(但實(shí)際中這必須和偏光板配合)。
2、0.95OLED模塊
特點(diǎn):OLED顯示屏是利用有機(jī)電致發(fā)光二極管制成的顯示屏。由于同時(shí)具備有機(jī)電自發(fā)光二極管,不需背光源、對(duì)比度高、厚度薄、視角廣、反應(yīng)速度快、可用于撓曲性面板、使用溫度范圍廣、構(gòu)造及制程較簡(jiǎn)單等優(yōu)異之特性,被認(rèn)為是下一代的平面顯示器新興應(yīng)用技術(shù)。
中國(guó)OLED產(chǎn)業(yè)前景非常廣闊,業(yè)內(nèi)企業(yè)也正在努力積累發(fā)展經(jīng)驗(yàn),但國(guó)內(nèi)產(chǎn)業(yè)鏈上游環(huán)節(jié)薄弱,行業(yè)的配套能力欠缺等因素為廣大廠商制造了比較大的發(fā)展障礙。
相關(guān)資料:
oled電路原理圖
oled行列位置
三、硬件連接
1、實(shí)物圖
VCC:接5V
GND:接地
SDA:IIC數(shù)據(jù)線(我接的P2^1)
2、取模軟件
四、軟件代碼
main主函數(shù)
進(jìn)行一些宏定義,對(duì)各種函數(shù)的調(diào)用。
void main()`
{
OLED_Init();
OLED_ColorTurn(0); //0正常顯示,1反色顯示`
OLED_DisplayTurn(0);//0正常顯示,1屏幕反轉(zhuǎn)顯示`
while(1)
{
OLED_DrawBMP(0,4,25,24,BMP4); //生成圖像
OLED_DrawBMP(25,4,25,24,BMP4);
OLED_DrawBMP(50,4,25,24,BMP4);
OLED_DrawBMP(75,4,25,24,BMP4);
OLED_DrawBMP(100,4,25,24,BMP4);
OLED_ShowChinese(0,1,0,16); //生成文字
OLED_ShowChinese(27,1,1,16);
OLED_ShowChinese(54,1,2,16);
OLED_ShowChinese(81,1,3,16);
OLED_ShowChinese(111,1,4,16);
delay_ms(200);
OLED_Clear();
OLED_ShowChinese(0,0,5,16);
OLED_ShowChinese(17,0,6,16);
OLED_ShowString(33,0,":",16); //顯示字符串
OLED_ShowChinese(51,0,7,16);
OLED_ShowChinese(67,0,8,16);
OLED_ShowChinese(83,0,9,16);
OLED_ShowNum(10,2,16286,5,16); //顯示數(shù)字
OLED_ShowNum(50,2,30070,5,16); //顯示數(shù)字
delay_ms(50);
OLED_Clear();
}
}
oled.c
void delay_ms(unsigned int ms)
{
unsigned int a;
while(ms)
{
a=1800;
while(a--);
ms--;
}
return;
}
//反色顯示函數(shù)
void OLED_ColorTurn(u8 i)
{
if(i==0)
{
OLED_WR_Byte(0xA6,OLED_CMD);
}
if(i==1)
{
OLED_WR_Byte(0xA7,OLED_CMD);
}
}
//屏幕旋轉(zhuǎn)180度
void OLED_DisplayTurn(u8 i)
{
if(i==0)
{
OLED_WR_Byte(0xC8,OLED_CMD);
OLED_WR_Byte(0xA1,OLED_CMD);
}
if(i==1)
{
OLED_WR_Byte(0xC0,OLED_CMD);
OLED_WR_Byte(0xA0,OLED_CMD);
}
}
//延時(shí)
void IIC_delay(void)
{
u8 t=1;
while(t--);
}
//起始信號(hào)
void I2C_Start(void)
//結(jié)束信號(hào)
void I2C_Stop(void)
//等待信號(hào)響應(yīng)
void I2C_WaitAck(void)
void Send_Byte(u8 dat) //寫入一個(gè)字節(jié)
void OLED_WR_Byte(u8 dat,u8 mode)
{
I2C_Start();
Send_Byte(0x78);
I2C_WaitAck();
if(mode){Send_Byte(0x40);}
else{Send_Byte(0x00);}
I2C_WaitAck();
Send_Byte(dat);
I2C_WaitAck();
I2C_Stop();
}
void OLED_Set_Pos(u8 x, u8 y) //坐標(biāo)設(shè)置
{
OLED_WR_Byte(0xb0+y,OLED_CMD);
OLED_WR_Byte(((x&0xf0)>>4)|0x10,OLED_CMD);
OLED_WR_Byte((x&0x0f),OLED_CMD);
}
/***void OLED_Display_On(void) //開啟OLED顯示
{
OLED_WR_Byte(0X8D,OLED_CMD); //SET DCDC?üá?
OLED_WR_Byte(0X14,OLED_CMD); //DCDC ON
OLED_WR_Byte(0XAF,OLED_CMD); //DISPLAY ON
}
**/
/****void OLED_Display_Off(void) //關(guān)閉OLED顯示
{
OLED_WR_Byte(0X8D,OLED_CMD); //SET DCDC?üá?
OLED_WR_Byte(0X10,OLED_CMD); //DCDC OFF
OLED_WR_Byte(0XAE,OLED_CMD); //DISPLAY OFF
}
****/
void OLED_Clear(void) //清屏函數(shù)
void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 sizey)
{
u8 c=0,sizex=sizey/2;
u32 i=0,size1;
if(sizey==8)size1=6;
else size1=(sizey/8+((sizey%8)?1:0))*(sizey/2);
c=chr-' ';
OLED_Set_Pos(x,y);
for(i=0;i;i++)>
oledWENZI.h
#ifndef __OLEDFONT_H
#define __OLEDFONT_H
//中文字
unsigned char code Hzk[][33]=
/************************************6*8點(diǎn)陣顯示字符************************************/
unsigned char code asc2_0806[][6] =
//16*16 ASCII字符集點(diǎn)陣
unsigned char code asc2_1608[][16]=
oledTUPIAN.h
#ifndef __BMP_H
#define __BMP_H
/******************************************************************
圖片
*******************************************************************/
unsigned char code BMP1[] =
unsigned char code BMP2[] =
unsigned char code BMP3[] =
unsigned char code BMP4[] =
#endif
五、效果展示
實(shí)物演示鏈接 https://live.csdn.net/v/211086
六、代碼鏈接
關(guān)注公眾號(hào)“小小創(chuàng)客者”回復(fù)“OLED”獲得代碼,回復(fù)“取模軟件”獲取取模軟件。
-
單片機(jī)
+關(guān)注
關(guān)注
6030文章
44489瀏覽量
631996 -
OLED
+關(guān)注
關(guān)注
119文章
6171瀏覽量
223687 -
51單片機(jī)
+關(guān)注
關(guān)注
273文章
5697瀏覽量
122997 -
C語言
+關(guān)注
關(guān)注
180文章
7594瀏覽量
135865
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論