SSD1306显示屏使用方法

管脚定义:
P1^0;//时钟 D0(SCLK)
P1^1;//D1(SDA) 数据
函数说明

关于取模软件的配置:

只需要按照这个配置就好

首先注意:

  1. 屏幕的分辨率是128*64(在函数传值时要注意不要越界)
  2. 我们的汉字是16*16的点阵,所以,在显示时只能显示4行每行8个字。
  3. 字符有两种6*8和8*16的,我们可以显示两种不同的字符

OLED的常用函数


OLED_Display_On(void); //开启OLED显示 
OLED_Display_Off(void);//关闭OLED显示 	   
OLED_Init(void);//初始化SSD1306	
OLED_Clear(void); //清屏函数
OLED_ShowCHinese(0,0,0);//显示汉字
OLED_ShowString(20,4,"2014/05/01",16);//显示字符串
OLED_ShowChar(48,6,t,16);//显示一个ASCII字符
OLED_DrawBMP(0,0,128,8,BMP2)//显示图片

这里直接开始介绍怎么显示汉字的函数:

OLED_ShowCHinese(0,0,0);//中
OLED_ShowCHinese(18,0,1);//景

这里前面一位是x的坐标,中间的是y的坐标,后面的是汉字在字符库的位置(从0开始)。这里x的坐标为16的倍数,也可以一个汉字占17个空间,这样可以使的汉字的空隙加大,显示的更加宽松。y坐标的话是2的倍数,所以最大的值为6.

如果我们想显示一堆字符那么可以用下面这个函数:

OLED_ShowString(20,4,"2014/05/01",16);这里只需要在双引号里面加上你想显示的字符数组即可。

如果我们只想显示一个字符:OLED_ShowChar(48,6,t,16);//显示ASCII字符
前面两个不用讲,t是字符可以自己写,或是一个变量
OLED_ShowChar(48,2,'a',16);//显示ASCII字符
OLED_ShowChar(48,2,41,16);//显示ASCII字符

注意:这里是不可以直接传int去的,这样会显示乱码,具体可以用一个函数进行转码。

显示图片:

OLED_DrawBMP(0,0,128,8,BMP2); //图片显示(图片显示慎用,生成的字表较大,会占用较多空间,FLASH空间8K以下慎用

显示显示BMP图片128×64起始点坐标(x,y),x的范围0~127,y为页的范围0~7
后面那个是图片需要显示的大小,我们可以修改,这样,我们就可以做出图片和文字混合的效果

下面是主界面的函数(仅供参考):

#include "REG51.h"
#include "oled.h"
#include "bmp.h"

 int main(void)
 {		u8 t;
		OLED_Init();			//初始化OLED  
		OLED_Clear(); 
	
		t=' ';
		OLED_ShowCHinese(0,0,0);//中
		OLED_ShowCHinese(18,0,1);//景
		OLED_ShowCHinese(36,0,2);//园
		OLED_ShowCHinese(54,0,3);//电
		OLED_ShowCHinese(72,0,4);//子
		OLED_ShowCHinese(90,0,5);//科
		OLED_ShowCHinese(108,0,6);//技
	while(1) 
	{	
			
//		//OLED_Clear();  //先清屏
//		OLED_ShowCHinese(0,0,0);//中
//		OLED_ShowCHinese(18,0,1);//景
//		OLED_ShowCHinese(36,0,2);//园
//		OLED_ShowCHinese(54,0,3);//电
//		OLED_ShowCHinese(72,0,4);//子
//		OLED_ShowCHinese(90,0,5);//科
//		OLED_ShowCHinese(108,0,6);//技
//		//OLED_ShowString(6,3,"0.96' OLED TEST",16);
		OLED_DrawBMP(0,0,128,2,BMP1); 
		OLED_ShowString(8,2,"ZHONGJINGYUAN",16);  
//	 	OLED_ShowString(20,4,"2014/05/01",16);  
//		OLED_ShowString(0,6,"ASCII:",16);  
//		OLED_ShowString(63,6,"CODE:",16);  
//		OLED_ShowChar(48,6,t,16);//显示ASCII字符
//		OLED_ShowChar(48,2,41,16);//显示ASCII字符	   
//		t++;
//		if(t>'~')t=' ';
//		OLED_ShowNum(103,6,t,3,16);//显示ASCII字符的码值 	
		delay_ms(100);
		//OLED_Display_Off();
		//delay_ms(8000);
		//delay_ms(8000);
		//delay_ms(8000);
		//delay_ms(8000);
		//OLED_Clear();  //先清屏
		 //图片显示(图片显示慎用,生成的字表较大,会占用较多空间,FLASH空间8K以下慎用)
		//delay_ms(8000);
		//delay_ms(8000);
		//delay_ms(8000);
		//delay_ms(8000);
		//OLED_Clear();  //先清屏
		//OLED_DrawBMP(0,0,128,8,BMP1);
		//delay_ms(8000);
		//delay_ms(8000);
		//delay_ms(8000);
		//delay_ms(8000);
	}	  
	
}

源码下载

点赞

发表评论

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像

Title - Artist
0:00