目录
一、前言
二、OLED模块介绍
1、液晶显示屏
2、0.95OLED模块
三、硬件连接
四、软件代码
五、效果展示
六、代码链接
一、前言
从性能来说OLED屏幕分辨率相对较高,引脚也少很多,占用的I/O口会少很多。从功耗来说首先oled显示屏不需要背光灯,当有电流通过时,这些有机材料就可以发光,而且3.3V~5V之间都可以使用。从外观来说体型更小,重量更轻更薄,可用来制作许多小型显示设备。这次我使用的是四个引脚的0.95寸oled显示屏,进行文字图片的循环显示。
二、OLED模块介绍
1、液晶显示屏
液晶显示器,为平面超薄的显示设备,它由一定数量的彩色或黑白像素组成,放置于光源或者反射面前方。液晶显示器功耗很低,因此倍受工程师青睐,适用于使用电池的电子设备。它的主要原理是以电流刺激液晶分子产生点、线、面配合背部灯管构成画面。
液晶显示器的工作原理:液晶是一种介于固体和液体之间的特殊物质,它是一种有机化合物,常态下呈液态,但是它的分子排列却和固体晶体一样非常规则,因此取名液晶,它的另一个特殊性质在于,如果给液晶施加一个电场,会改变它的分子排列,这时如果给它配合偏振光片,它就具有阻止光线通过的作用(在不施加电场时,光线可以顺利透过),如果再配合彩色滤光片,改变加给液晶电压大小,就能改变某一颜色透光量的多少,也可以形象地说改变液晶两端的电压就能改变它的透光度(但实际中这必须和偏光板配合)。
2、0.95OLED模块
特点:OLED显示屏是利用有机电致发光二极管制成的显示屏。由于同时具备有机电自发光二极管,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。
中国OLED产业前景非常广阔,业内企业也正在努力积累发展经验,但国内产业链上游环节薄弱,行业的配套能力欠缺等因素为广大厂商制造了比较大的发展障碍。
相关资料:
oled电路原理图
oled行列位置
三、硬件连接
1、实物图
VCC:接5V
GND:接地
SCL:IIC时钟线(我接的P2^0)
SDA:IIC数据线(我接的P2^1)
2、取模软件
四、软件代码
main主函数
进行一些宏定义,对各种函数的调用。- void main()`
- {
- OLED_Init();
- OLED_ColorTurn(0); //0正常显示,1反色显示`
- OLED_DisplayTurn(0);//0正常显示,1屏幕反转显示`
- 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); //显示数字
- OLED_ShowNum(50,2,30070,5,16); //显示数字
- delay_ms(50);
- OLED_Clear();
- }
- }
复制代码 oled.c- void delay_ms(unsigned int ms)
- {
- unsigned int a;
- while(ms)
- {
- a=1800;
- while(a--);
- ms--;
- }
- return;
- }
- //反色显示函数
- void OLED_ColorTurn(u8 i)
- {
- if(i==0)
- {
- OLED_WR_Byte(0xA6,OLED_CMD);
- }
- if(i==1)
- {
- OLED_WR_Byte(0xA7,OLED_CMD);
- }
- }
- //屏幕旋转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);
- }
- }
- //延时
- void IIC_delay(void)
- {
- u8 t=1;
- while(t--);
- }
- //起始信号
- void I2C_Start(void)
- //结束信号
- void I2C_Stop(void)
- //等待信号响应
- void I2C_WaitAck(void)
- void Send_Byte(u8 dat) //写入一个字节
- 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) //坐标设置
- {
- 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) //关闭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) //清屏函数
- 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点阵显示字符************************************/
- unsigned char code asc2_0806[][6] =
- //16*16 ASCII字符集点阵
- 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
复制代码 五、效果展示
实物演示链接 https://live.csdn.net/v/211086
六、代码链接
关注公众号“小小创客者”回复“OLED”获得代码,回复“取模软件”获取取模软件。 |