⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1305_oled.c

📁 我写的基于51单片机的OLED屏驱动源码
💻 C
字号:
/********************************************************/
/*1305_OLED.c*/
/********************************************************/
/*	模块:		1305_OLED.c																*/
/*	描述:																							*/
/*																											*/
/*  处理器:																						*/
/*  调用函数:																					*/
/*  版本历史:																						*/
/*	==================================================	*/
/*	V1.0																								*/
/*  作者:			AncentLee																	*/
/*	日期:																								*/
/*	修改原因:																						*/
/*	==================================================	*/

#include <REGX52.H>
#include <intrins.h>
#include "usual_declare.h"
#include "8080_parallel_base.h"
#include "IO_define.h"

#include <stdio.h>

/*F_OLED_read_status()***********************************/  
/*  函数名:OLED_read_status()													*/  
/*  参数:	无																					*/  
/*  返回值:无																					*/  
/*  作用域:																						*/  
/*  功能:																							*/  
/********************************************************/
void OLED_read_status()
{
	uint8 status;
	do
	{
		status=parallel_read_command();
	//	printf("%bd",status);
		status=status&0x80;
	//	printf("%bd",status);
		//_getkey();
	}while(status!=0);
}
/* End of F_OOLED_read_status()**************************/


/*F_OLED_init********************************************/
/*  函数名:OLED_init()																	*/
/*  参数:	无																					*/
/*  返回值:无																					*/
/*  作用域:																						*/
/*  功能:																							*/
/********************************************************/


void	OLED_init(void)
{
	parallel_init();
	
	OLED_CS=0;
	OLED_RESET=0;
	OLED_RESET=1;

	
	OLED_read_status();
	parallel_write_command(0xae);
	OLED_read_status();
	parallel_write_command(0xad); 
	OLED_read_status();
	parallel_write_command(0x8a); 
	OLED_read_status();
	parallel_write_command(0xa8);
	OLED_read_status();
	parallel_write_command(0x3f); 
	OLED_read_status();
	parallel_write_command(0xd3); 
	OLED_read_status();
	parallel_write_command(0x00); 
	OLED_read_status();
	parallel_write_command(0x40); 
	OLED_read_status();
	parallel_write_command(0xa1); 
	OLED_read_status();
	parallel_write_command(0xc8);
	OLED_read_status();
	parallel_write_command(0xa6); 
	OLED_read_status();
	parallel_write_command(0xa4); 
	OLED_read_status();
	parallel_write_command(0x81); 
	OLED_read_status();
	parallel_write_command(0x5c); 
	OLED_read_status();
	parallel_write_command(0xd5); 
	OLED_read_status();
	parallel_write_command(0x60); 
	OLED_read_status();
	parallel_write_command(0xd8); 
	OLED_read_status();
	parallel_write_command(0x00); 
	OLED_read_status();
	parallel_write_command(0xd9); 
	OLED_read_status();
	parallel_write_command(0x84); 
	OLED_read_status();
	parallel_write_command(0xaf); 
}                                                        
/* End of F_OLED_init***********************************/


/*F_OLED_clear_screen************************************/   
/*  函数名:OLED_clear_screen()													*/  
/*  参数:	无																					*/  
/*  返回值:无																					*/  
/*  作用域:																						*/  
/*  功能:																							*/  
/********************************************************/
void OLED_clear_screen()
{
	uint8 j,page;
	for(page=0;page<8;page++)
	{
		OLED_read_status();
		parallel_write_command(176+page); //set page address
		OLED_read_status();
		parallel_write_command(0x00);    //set low address
		OLED_read_status();
		parallel_write_command(0x10);    //set higher address
		OLED_read_status();
		for(j=0;j<128;j++)
		{
		    OLED_read_status();
			parallel_write_data(0x00);
		}	       
	}
}
/* End of F_OLED_clear_screen****************************/



/*F_OLED_display*****************************************/   
/*  函数名:OLED_clear_screen()													*/  
/*  参数:	无																					*/  
/*  返回值:无																					*/  
/*  作用域:																						*/  
/*  功能:																							*/  
/********************************************************/
void OLED_display(uint8 picture[])
{
	uint8 j;
	uint8 page;
	for(page=0;page<8;page++)
	{
		OLED_read_status();
		parallel_write_command(176+page);//set page address
		OLED_read_status();
		parallel_write_command(0x00);//set low address
		OLED_read_status();
		parallel_write_command(0x10);//set higher address
		OLED_read_status();
		for(j=0;j<128;j++)
		{
			OLED_read_status();
			parallel_write_data(picture[j+page*128]);
		}	   
	}
}
/* End of F_OLED_display********************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -