stm32_ota/OLED显示屏资料/03中景园电子1.3英寸OLED显示屏测试程序/14中景园电子1.3英寸OLED显示屏_MSP430系列_SPI_例程/oled.h
2024-12-17 20:03:43 +08:00

139 lines
4.9 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//////////////////////////////////////////////////////////////////////////////////
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//中景园电子
//店铺地址http://shop73023976.taobao.com/?spm=2013.1.0.0.M4PqC2
//
// 文 件 名 : oled.c
// 版 本 号 : v2.0
// 作 者 : HuangKai
// 生成日期 : 2014-0101
// 最近修改 :
// 功能描述 : 0.96寸OLED 接口演示例程(MSP430F149系列)
// 驱动IC :SSD1309
// 说明:
// ----------------------------------------------------------------
// GND 电源地
// VCC 接3.3v电源
// D0 P54时钟
// D1 P53数据
// RES 接P52
// DC 接P51
// CS 接P50
// ----------------------------------------------------------------
// 修改历史 :
// 日 期 :
// 作 者 : HuangKai
// 修改内容 : 创建文件
//版权所有,盗版必究。
//Copyright(C) 中景园电子2014/3/16
//All rights reserved
//******************************************************************************/
#ifndef __OLED_H
#define __OLED_H
#include <io430.h>
#include <in430.h>
#include <intrinsics.h>
#define u8 unsigned char
#define u32 unsigned int
#define OLED_CMD 0 //写命令
#define OLED_DATA 1 //写数据
#define Set_Bit(val, bitn) (val |= (/*1 <<*/(bitn))) //竚琘<E7AB9A><E79098> 1
#define Clr_Bit(val, bitn) (val &= ~(/*1<<*/(bitn))) //竚琘<E7AB9A><E79098> 0
#define Get_Bit(val, bitn) (val & (1<<(bitn)) ) //<2F>眔琘<E79C94><E79098><EFBFBD>
//----------------------------------------------------------------------------------
//OLED SSD1306 SPI 时钟D0
//#define OLED_SSD1306_SCLK_DIR (P1DIR)
//#define OLED_SSD1306_SCLK_OUT (P1OUT)
#define OLED_SSD1306_SCLK_PIN_NUM (BIT4)
#define OLED_SSD1306_SCLK_IO_INIT (Set_Bit(P5DIR,OLED_SSD1306_SCLK_PIN_NUM))
#define OLED_SCLK_Set() (Set_Bit(P5OUT,OLED_SSD1306_SCLK_PIN_NUM))
#define OLED_SCLK_Clr() (Clr_Bit(P5OUT,OLED_SSD1306_SCLK_PIN_NUM))
//----------------------------------------------------------------------------------
//OLED SSD1306 SPI 数据D1
//#define OLED_SSD1306_SDIN_DIR (P1DIR)
//#define OLED_SSD1306_SDIN_OUT (P1OUT)
#define OLED_SSD1306_SDIN_PIN_NUM (BIT3)
#define OLED_SSD1306_SDIN_IO_INIT (Set_Bit(P5DIR,OLED_SSD1306_SDIN_PIN_NUM))
#define OLED_SDIN_Set() (Set_Bit(P5OUT,OLED_SSD1306_SDIN_PIN_NUM))
#define OLED_SDIN_Clr() (Clr_Bit(P5OUT,OLED_SSD1306_SDIN_PIN_NUM))
//----------------------------------------------------------------------------------
//OLED SSD1306 复位/RES
//#define OLED_SSD1306_RST_DIR (P1DIR)
//#define OLED_SSD1306_RST_OUT (P1OUT)
#define OLED_SSD1306_RST_PIN_NUM (BIT2)
#define OLED_SSD1306_RST_IO_INIT (Set_Bit(P5DIR,OLED_SSD1306_RST_PIN_NUM))
#define OLED_RST_Set() (Set_Bit(P5OUT,OLED_SSD1306_RST_PIN_NUM))
#define OLED_RST_Clr() (Clr_Bit(P5OUT,OLED_SSD1306_RST_PIN_NUM))
//----------------------------------------------------------------------------------
//OLED SSD1306 数据/命令DC
//#define OLED_SSD1306_DC_DIR (P1DIR)
//#define OLED_SSD1306_DC_OUT (P1OUT)
#define OLED_SSD1306_DC_PIN_NUM (BIT1)
#define OLED_SSD1306_DC_IO_INIT (Set_Bit(P5DIR,OLED_SSD1306_DC_PIN_NUM))
#define OLED_DC_Set() (Set_Bit(P5OUT,OLED_SSD1306_DC_PIN_NUM))
#define OLED_DC_Clr() (Clr_Bit(P5OUT,OLED_SSD1306_DC_PIN_NUM))
//----------------------------------------------------------------------------------
//OLED SSD1306 <20>片选CS
//#define OLED_SSD1306_CE_DIR (P1DIR)
//#define OLED_SSD1306_CE_OUT (P1OUT)
#define OLED_SSD1306_CE_PIN_NUM (BIT0)
#define OLED_SSD1306_CE_IO_INIT (Set_Bit(P5DIR,OLED_SSD1306_CE_PIN_NUM))
#define OLED_CS_Set() (Set_Bit(P5OUT,OLED_SSD1306_CE_PIN_NUM))
#define OLED_CS_Clr() (Clr_Bit(P5OUT,OLED_SSD1306_CE_PIN_NUM))
//----------------------------------------------------------------------------------
//开发板LED灯
#define LED_PIN_NUM (BIT0)
#define LED_IO_INIT (Set_Bit(P2DIR,LED_PIN_NUM))
#define LED_Set() (Set_Bit(P2OUT,LED_PIN_NUM))
#define LED_Clr() (Clr_Bit(P2OUT,LED_PIN_NUM))
//----------------------------------------------------------------------------------
#define SIZE 16
#define XLevelL 0x02
#define XLevelH 0x10
#define Max_Column 128
#define Max_Row 64
#define Brightness 0xFF
#define X_WIDTH 128
#define Y_WIDTH 64
//-----------------OLED端口定义----------------
void delay_ms(unsigned int ms);
//OLED控制用函数
void OLED_WR_Byte(u8 dat,u8 cmd);
void OLED_Display_On(void);
void OLED_Display_Off(void);
void OLED_Init(void);
void OLED_Clear(void);
void OLED_DrawPoint(u8 x,u8 y,u8 t);
void OLED_Fill(u8 x1,u8 y1,u8 x2,u8 y2,u8 dot);
void OLED_ShowChar(u8 x,u8 y,u8 chr);
void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size2);
void OLED_ShowString(u8 x,u8 y, u8 *p);
void OLED_Set_Pos(unsigned char x, unsigned char y);
void OLED_ShowCHinese(u8 x,u8 y,u8 no);
void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[]);
#endif