0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于51單片機(jī)的OLED顯示圖片文字

王子變青蛙_35400519 ? 來源:王子變青蛙_35400519 ? 作者:王子變青蛙_35400 ? 2022-06-12 00:43 ? 次閱讀

目錄

一、前言

二、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電路原理

pYYBAGKkoa-AM7NiAACpS82Oc-0949.png

oled行列位置

poYBAGKkodeAPuZeAAA0ejYLE_E413.png

三、硬件連接

1、實(shí)物圖

poYBAGKkod6Ab1I_AAFGTZg_H4M995.png

VCC:接5V

GND:接地

SCL:IIC時(shí)鐘線(我接的P2^0)

SDA:IIC數(shù)據(jù)線(我接的P2^1)

2、取模軟件

poYBAGKkofaAVZ2fAADtMFdTFiQ879.png

四、軟件代碼

pYYBAGKkoguALo3DAAAhOoiQdY4555.png

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ù)“取模軟件”獲取取模軟件。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(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
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    單片機(jī)OLED顯示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    該文以宏晶公司的STC89C52單片機(jī)為控制核心,信意電子科技提供的0.96寸OLED模塊為顯示輸出設(shè)備,在Keil環(huán)境下編寫OLED顯示
    發(fā)表于 01-27 11:44 ?1.8w次閱讀

    51單片機(jī)OLED基本操作,漢字、字符(串)、變量值、圖片顯示 #51單片機(jī) #oled顯示屏#硬聲創(chuàng)作季

    單片機(jī)OLED顯示51單片機(jī)LED顯示顯示
    fly
    發(fā)布于 :2022年08月12日 01:37:43

    51單片機(jī)驅(qū)動(dòng)oled顯示

    文章目錄51單片機(jī)一.前言二.代碼三.總結(jié)51單片機(jī)一.前言說起51,可以說是老古董了,剛開始接觸單片機(jī)
    發(fā)表于 07-15 07:11

    如何利用51單片機(jī)+0.96寸iic接口oled顯示圖片或動(dòng)圖呢

    ~利用51單片機(jī)+0.96寸iic接口oled顯示圖片或動(dòng)圖
    發(fā)表于 11-17 06:10

    基于單片機(jī)OLED顯示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    為了提高圖形信息的顯示速度,并得到更多的顯示效果,文章基于FG_V1.2單片機(jī)開發(fā)板,依據(jù)OLED12864顯示屏的操作時(shí)序要求,用
    發(fā)表于 12-31 09:20 ?23次下載

    基于單片機(jī)OLED顯示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    基于單片機(jī)OLED顯示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),沒有例程
    發(fā)表于 06-21 15:39 ?16次下載

    I2C OLED顯示屏的51單片機(jī)/STM32/Arduino驅(qū)動(dòng)程序

    I2C OLED顯示屏的51單片機(jī)/STM32/Arduino驅(qū)動(dòng)程序說明。
    發(fā)表于 03-26 09:37 ?66次下載

    基于51單片機(jī)簡(jiǎn)易示波器設(shè)計(jì)OLED顯示(包含源程序原理圖PCB)

    基于51單片機(jī)簡(jiǎn)易示波器設(shè)計(jì)OLED顯示(包含源程序原理圖PCB)(單片機(jī)課程設(shè)計(jì))-?基于51
    發(fā)表于 07-22 14:50 ?248次下載
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>簡(jiǎn)易示波器設(shè)計(jì)<b class='flag-5'>OLED</b><b class='flag-5'>顯示</b>(包含源程序原理圖PCB)

    利用51單片機(jī)+0.96寸iic接口oled顯示圖片或動(dòng)圖

    ~利用51單片機(jī)+0.96寸iic接口oled顯示圖片或動(dòng)圖
    發(fā)表于 11-10 17:21 ?34次下載
    利用<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>+0.96寸iic接口<b class='flag-5'>oled</b><b class='flag-5'>顯示</b><b class='flag-5'>圖片</b>或動(dòng)圖

    51單片機(jī)怎么顯示當(dāng)前時(shí)間_(記錄)51單片機(jī)——LCD1602液晶顯示模塊

    51單片機(jī)怎么顯示當(dāng)前時(shí)間_(記錄)51單片機(jī)——LCD1602液晶顯示模塊
    發(fā)表于 11-16 15:06 ?29次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>怎么<b class='flag-5'>顯示</b>當(dāng)前時(shí)間_(記錄)<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>——LCD1602液晶<b class='flag-5'>顯示</b>模塊

    51單片機(jī) OLED Proteus SPI 仿真

    51單片機(jī) OLED Proteus SPI 仿真
    發(fā)表于 11-20 11:21 ?46次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b> <b class='flag-5'>OLED</b> Proteus SPI 仿真

    51單片機(jī)+oled+ds18b20檢測(cè)并顯示溫度第一篇:初始化oled顯示

    51單片機(jī)+oled+ds18b20檢測(cè)并顯示溫度~
    發(fā)表于 11-21 11:51 ?73次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>+<b class='flag-5'>oled</b>+ds18b20檢測(cè)并<b class='flag-5'>顯示</b>溫度第一篇:初始化<b class='flag-5'>oled</b><b class='flag-5'>顯示</b>

    基于89C51OLED顯示

    的89C51顯示程序圖片制作:尺寸大小 >> 轉(zhuǎn)BMP格式 >> 取模89C52單片機(jī)按鍵,蜂鳴器89C51
    發(fā)表于 11-23 17:21 ?23次下載
    基于89C<b class='flag-5'>51</b>的<b class='flag-5'>OLED</b>屏<b class='flag-5'>顯示</b>

    OLED程序用于51單片機(jī)測(cè)試?yán)?/a>

    OLED程序用于51單片機(jī)測(cè)試?yán)?/div>
    發(fā)表于 12-20 09:34 ?17次下載

    51單片機(jī)最小系統(tǒng)OLED顯示小車原理圖下載

    51單片機(jī)最小系統(tǒng)OLED顯示小車原理圖下載
    發(fā)表于 12-20 15:23 ?20次下載