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

📄 ssd1303.h

📁 C8051驱动OLED驱动芯片SD1303的源码资料
💻 H
字号:
#ifndef	IC_SSD1303_H
#define	IC_SSD1303_H

#define	IC_SSD1303_ENABLE

#ifdef	IC_SSD1303_ENABLE

//	管脚定义,参见项目专有管脚定义文件,每个项目只需要重新定义管脚定义即可
#include	"..\mcu.h"
#include	"..\port.h"

//	SSD1303管脚定义
//	OLED片选信号
//	#define	SSD1303_CS_DDR			DDRE
//	#define	SSD1303_CS_PIN			PINE
//	#define	SSD1303_CS_BIT			PINE3
//	#define	SSD1303_CS_PORT			PORTE

//	OLED命令数据切换信号,高为命令,低为数据
//	#define	SSD1303_DC_DDR			DDRE
//	#define	SSD1303_DC_PIN			PINE
//	#define	SSD1303_DC_BIT			PINE6
//	#define	SSD1303_DC_PORT			PORTE

//	OLED时钟信号,SPI控制,不需要初始化
//	#define	SSD1303_SCK_DDR			DDRB
//	#define	SSD1303_SCK_PIN			PINB
//	#define	SSD1303_SCK_BIT			PINB1
//	#define	SSD1303_SCK_PORT		PORTB

//	OLEDVCC背光控制,控制V9V开闭,注意电源开关顺序
//	原理图中命名为LED_BK
//	#define	SSD1303_VCC_DDR			DDRA
//	#define	SSD1303_VCC_PIN			PINA
//	#define	SSD1303_VCC_BIT			PINA0
//	#define	SSD1303_VCC_PORT		PORTA

//	OLED数据输出信号,SPI控制,不需要初始化
//	#define	SSD1303_MOSI_DDR		DDRB
//	#define	SSD1303_MOSI_PIN		PINB
//	#define	SSD1303_MOSI_BIT		PINB2
//	#define	SSD1303_MOSI_PORT		PORTB

typedef	struct	tag_GRAMBUF
{
	unsigned	char	pageh;
	unsigned	char	pagel;
	
	unsigned	char	column;
	unsigned	char	hgram[8];
	unsigned	char	lgram[8];

}	GRAMBUF;

void
SSD1303_init(void);

void
SSD1303_VCC(unsigned char onoff);

void	SSD1303_poweron(void);
void	SSD1303_poweroff(void);

void	SSD1303_clear_screen(unsigned char pattern);

//	在多个设备共享SPI的时候,采用缓冲区方式,每次最多两个八字节,也就是一个字符
//	总计16*8=128个字符,每秒时钟中断500次的情况下,大约0.2秒就写完一
//	屏了,时间上毫无问题
void	SSD1303_fill_buffer(GRAMBUF* grbuf);
void	SSD1303_fill_screen(void);

//	调用过程
//	SSD1303_init		初始化端口
//	SSD1303_poweron		发送初始化命令,其中会调用SSD1303_VCC打开VCC
//	SSD1303_xxxxxxx		写命令,写数据......
//	SSD1303_VCC(xx)		开关VCC
//	SSD1303_poweoff		发送关闭命令,其中会调用SSD1303_VCC关闭VCC

#endif	//	#ifdef	IC_SSD1303_ENABLE

#endif	//	#ifndef	IC_SSD1303_H

⌨️ 快捷键说明

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