SSD1963示例程序
/*
****************************************************************************************
* 数据类型
*
****************************************************************************************
*/
typedef unsigned char uchar; /* Unsigned 8 bit quantity */
typedef signed char schar; /* Signed 8 bit quantity */
typedef unsigned int uint; /* Unsigned 16 bit quantity */
typedef signed int sint; /* Signed 16 bit quantity */
//===============================
//Da
//===============================
typedef union {
unsigned char UByte[2];
unsigned int UInt;
} UWORD;
void SSD1963Da
void SSD1963Da
void SSD1963Command_16(uint cmd);
void SetPixel(uint Col,uint Page,uint color); //显示一个相素点
uint GetPixel(uint Col,uint Page);//得到一个像素点
/******************************************************
SSD1963的Conf脚,用来控制读写的方式,
如果为0 则为6800总线MODE
如果位1 ,则为8080总线。
下面的定义是8080 MODE(默认情况下为8080),可以通过修改Conf 跳点来修改读写方式。
******************************************************/
void SSD1963Command_8(uchar cmd);
void SSD1963Da
void SSD1963Init();
uchar GetSSD1963Da
uint GetSSD1963Da
void ReadSSD1963Set();
#define SetSSD1963RD() SetBit(P4,4)
#define SetSSD1963WR() SetBit(P4,5)
#define SetSSD1963CS() SetBit(P4,2)
#define SetSSD1963DC() SetBit(P4,3)
#define SetSSD1963Reset() SetBit(P4,1)
#define SetSSD1963Wait() SetBit(p4,0)
#define ClrSSD1963RD() ClrBit(P4,4)
#define ClrSSD1963WR() ClrBit(P4,5)
#define ClrSSD1963CS() ClrBit(P4,2)
#define ClrSSD1963DC() ClrBit(P4,3)
#define ClrSSD1963Reset() ClrBit(P4,1)
#define ClrSSD1963Wait() ClrBit(p4,0)
#define DataPortL P1
#define DataPortH P2
//UWORD 是一个结构体
//注意在给1963写命令时,只能用数据线的低8位来传输数据。
void SSD1963Command_16(uint cmd)
{
UWORD temp;
temp.UInt=cmd;
ClrSSD1963DC();
SetSSD1963RD();
ClrSSD1963CS();
ClrSSD1963WR();
DataPortL=temp.UByte[1];
DataPortH=temp.UByte[0];
SetSSD1963WR();
SetSSD1963CS();
}
void SSD1963Da
{
UWORD temp;
temp.UInt=dat;
SetSSD1963DC();
SetSSD1963RD();
ClrSSD1963CS();
ClrSSD1963WR();
DataPortL=temp.UByte[1];
DataPortH=temp.UByte[0];
SetSSD1963WR();
SetSSD1963CS();
}
void SSD1963Da
{
SetSSD1963DC();
SetSSD1963RD();
ClrSSD1963CS();
ClrSSD1963WR();
DataPortL=sdataL;//temp.UByte[1];
DataPortH=sdataH;//temp.UByte[0];
SetSSD1963WR();
SetSSD1963CS();
}
void SSD1963Command_8(uchar cmd)
{
ClrSSD1963DC();
SetSSD1963RD();
ClrSSD1963CS();
ClrSSD1963WR();
DataPortL=cmd;
DataPortH=0X00;
SetSSD1963WR();
SetSSD1963CS();
}
void SSD1963Da
{
SetSSD1963DC();
SetSSD1963RD();
ClrSSD1963CS();
ClrSSD1963WR();
DataPortL=sdata;
DataPortH=0X00;
SetSSD1963WR();
SetSSD1963CS();
}
/*void SSD1963Da
{
SetSSD1963DC();
SetSSD1963RD();
ClrSSD1963WR();
ClrSSD1963CS();
DataPortL=sdataL;
DataPortH=sdataH;
nop();nop();nop(); nop();nop();nop();
SetSSD1963WR();
SetSSD1963CS();
}*/
uchar GetSSD1963Da
{
uchar sdata;
ClrSSD1963RD();
SetSSD1963WR();
SetSSD1963DC();
ClrSSD1963CS();
sdata=DataPortL;
nop();nop();nop();nop();nop();nop();
SetSSD1963RD();
SetSSD1963CS();
return sdata;
}
uint GetSSD1963Da
{
uint sdata;
unsigned char SFRPAGE_save = SFRPAGE; // Save the current SFRPAGE
SFRPAGE = CONFIG_PAGE; //设置输入输出
P1MDOUT=0x00; ///输出设置为 高阻
P2MDOUT=0x00;
SFRPAGE = SFRPAGE_save; // Restore the SFRPAGE
P1=0xff;
P2=0xff;
ClrSSD1963RD();
SetSSD1963WR();
SetSSD1963DC();
ClrSSD1963CS();
nop();
nop();
sdata=DataPortH;
s
SSD1963示例程 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)