📄 1305_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 + -