• 大小: 49KB
    文件类型: .c
    金币: 2
    下载: 0 次
    发布日期: 2024-02-05
  • 语言: 其他
  • 标签: 12864  ssd1309  

资源简介

台湾悠景oled 12864 ssd1309 驱动程序 并口方式

资源截图

代码片段和文件信息

//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//
//  UG-2864ASYPG14 (2864-AVE) Reference Code
//
//    Dot Matrix: 128*64
//    Driver IC : SSD1309 (Solomon Systech)
//    Interface : 8-bit 68XX/80XX Parallel 4-wire Serial
//    Revision  :
//    Date      : 2013/04/09
//    Author    :
//    Editor    : Humphrey Lin
//
//  Copyright (c) WiseChip Semiconductor Inc.
//
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

#include 

//#define M68 // 8-bit 68XX Parallel
//   BS1=0; BS2=1
#define I80 // 8-bit 80XX Parallel
//   BS1=1; BS2=1
//#define SPI // 4-wire Serial
//   BS1=0; BS2=0
//   The unused pins should be connected with VSS mostly or floating (D2).
//   Please refer to the SSD1309 specification for detail.


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Pin Definition
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#define xData P1 // Parallel Data Input/Output

#define SCLK P1_0 // Serial Clock Input
#define SDIN P1_1 // Serial Data Input

#define RES P3_3 // Reset
#define CS P3_4 // Chip Select
#define DC P3_2 // Data/Command Control

#define E P3_0 // Read/Write Enable
#define RW P3_1 // Read/Write Select

#define RD P3_0 // Read Signal
#define WR P3_1 // Write Signal


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Delay Time
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void uDelay(unsigned char l)
{
while(l--);
}


void Delay(unsigned char n)
{
unsigned char ijk;

for(k=0;k {
for(i=0;i<131;i++)
{
for(j=0;j<15;j++)
{
uDelay(203);
}
}
}
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Read/Write Sequence
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#ifdef M68 // 8-bit 68XX Parallel
void Write_Command(unsigned char Data)
{
DC=0;
CS=0;
RW=0;
E=1;
xData=Data;
E=0;
RW=1;
CS=1;
DC=1;
}


void Write_Data(unsigned char Data)
{
DC=1;
CS=0;
RW=0;
E=1;
xData=Data;
E=0;
RW=1;
CS=1;
DC=1;
}
#endif


#ifdef I80 // 8-bit 80XX Parallel
void Write_Command(unsigned char Data)
{
DC=0;
CS=0;
WR=0;
xData=Data;
WR=1;
CS=1;
DC=1;
}


void Write_Data(unsigned char Data)
{
DC=1;
CS=0;
WR=0;
xData=Data;
WR=1;
CS=1;
DC=1;
}
#endif


#ifdef SPI // 4-wire Serial
void Write_Command(unsigned char Data)
{
unsigned char i;

CS=0;
DC=0;
for (i=0; i<8; i++)
{
SCLK=0;
SDIN=(Data&0x80)>>7;
Data = Data << 1;
// uDelay(1);
SCLK=1;
// uDelay(1);
}
// SCLK=0;
DC=1;
CS=1;
}


void Write_Data(unsigned char Data)
{
unsigned char i;

CS=0;
DC=1;
for (i=0; i<8; i++)
{

评论

共有 条评论