89C51使用0.96 OLED显示屏

  好长时间都没有使用51了,因为一些莫名的原因看了看51,瞬间感觉不忘初心啊,还是熟悉味道。这次是使用7脚OLED显示屏。因为51可以使用Proteus软件进行仿真,所以最后我会附上仿真和代码。
  51单片机使用的LCD1602的显示屏相对来说是比较多的,需要LCD1602的可以看我这篇博客
https://blog.csdn.net/weixin_45488643/article/details/105968683在这篇博客里面是有LCD1602显示的驱动代码的,都是封装好的,直接移植到自己的代码里面就可以使用。OLED的显示原理自己百度去吧,有很多人写的都不错。

1、电路原理

在这里插入图片描述

2、代码

main.c 文件

//	 
//  功能描述   : OLED 4接口演示例程(51系列)
//              说明: 
//              ----------------------------------------------------------------
//              GND    电源地
//              VCC  接5V或3.3v电源
//              D0   P1^0(SCL)
//              D1   P1^1(SDA)
//              RES  接P12
//              DC   接P13
//              CS   接P14               
//******************************************************************************/
#include "REG51.h"
#include "oled.h"
#include "bmp.h"

 int main(void)
 {
    
    	
	  u8 t;
		OLED_Init();			//初始化OLED  
		OLED_Clear();
		t=' ';
	
	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_ShowString(8,2,"QingYeMuRong");  
	 	OLED_ShowString(20,4,"2020/09/04");
		OLED_ShowString(0,6,"ASCII:");  
		OLED_ShowString(63,6,"CODE:");  
		OLED_ShowChar(48,6,t);//显示ASCII字符	   
		t++;
		if(t>'~')t=' ';
		OLED_ShowNum(103,6,t,3,16);//显示ASCII字符的码值 	
		delay_ms(500);
		OLED_Clear();
		/*
		delay_ms(500);
		OLED_DrawBMP(0,0,128,8,BMP1);  //图片显示(图片显示慎用,生成的字表较大,会占用较多空间,FLASH空间8K以下慎用)
		delay_ms(500);
		OLED_DrawBMP(0,0,128,8,BMP2);
		delay_ms(500);
		*/
	}	  
	
}


包含的oled.coled.holedfont.h文件内容太多了,我就不这这个地方放了,文末自己下载我的工程文件吧。

2.1、关于字体图片取模

  字体取模在我以前的博客里面我写过,那个虽然是STM32的内容,但是取模方式的和原理都是一模一样的,博客链接:https://blog.csdn.net/weixin_45488643/article/details/107090558只需要看里面的字体取模和图片取模就可以了。
在这里插入图片描述

3、显示效果

  由于图片仿真在Proteus里面显示效果不是太好,所以图片显示效果自己拿实物测试吧。
在这里插入图片描述

4、下载链接

下载:https://www.lanzoui.com/i1WgJgdj5gj 密码:9n95 有需要的自己下载。

小手留情,点个赞呗。

猜你喜欢

转载自blog.csdn.net/weixin_45488643/article/details/108421526