?? tls8203spi.c
字號:
/************************************************
module
LCD 112*48
IC TLS8203
VDD 3.0V
IDD
Iled
interface 4-Wire SPI
programed sun zhihua
date 2007.4.2
************************************************/
#include <reg51.h>
//#include "bmp.h"
#define uchar unsigned char
#define uint unsigned int
sbit sck =P2^6;
sbit sda =P2^7;
sbit cs =P2^5;
sbit cpld_cs =P1^5;
sbit res =P1^6;
sbit rs =P1^7;
sbit Key =P3^3;
bdata bitdata;
sbit bit7=bitdata^7;
sbit bit6=bitdata^6;
sbit bit5=bitdata^5;
sbit bit4=bitdata^4;
sbit bit3=bitdata^3;
sbit bit2=bitdata^2;
sbit bit1=bitdata^1;
sbit bit0=bitdata^0;
uchar code character[];
uchar code Picture[];
uchar code Pic1[];
uchar *p;
void WCom(int d)
{
bitdata=d;
bitdata=bitdata<<8;//"bitdata" defined by bdata is a 16 bit variable
rs=0;
cs=0;
sda=bit7;sck=0;sck=1;
sda=bit6;sck=0;sck=1;
sda=bit5;sck=0;sck=1;
sda=bit4;sck=0;sck=1;
sda=bit3;sck=0;sck=1;
sda=bit2;sck=0;sck=1;
sda=bit1;sck=0;sck=1;
sda=bit0;sck=0;sck=1;
cs=1;
//rs=1;
}
void WData(int d)
{
bitdata=d;
bitdata=bitdata<<8;//"bitdata" defined by bdata is a 16 bit variable
rs=1;
cs=0;
sda=bit7;sck=0;sck=1;
sda=bit6;sck=0;sck=1;
sda=bit5;sck=0;sck=1;
sda=bit4;sck=0;sck=1;
sda=bit3;sck=0;sck=1;
sda=bit2;sck=0;sck=1;
sda=bit1;sck=0;sck=1;
sda=bit0;sck=0;sck=1;
cs=1;
//rs=0;
}
void Delay(uint Nms)//1ms*N
{
uint i,j,k;
for(i=0;i<Nms;i++)
for(j=0;j<5;j++)
for(k=0;k<131;k++);
}
void WaitKey()
{
Key=1;
Delay(100);
while(Key);
Delay(100);
while(!Key);
}
void InitMain()
{
//***************************reset ************************************//
WCom(0xe2);//reset
//************************fuction set*********************************//
WCom(0xa2);//Bias: 1/8
WCom(0x24);//resistor ratio
WCom(0x81);
WCom(0x10);//64 levels
WCom(0x40);//start line
WCom(0xa0);//ADC select
WCom(0xa6);//display reverse: normal
WCom(0xc8);//Common Output Mode Select
//*************************power on*************************************//
WCom(0x2c);//booster on
Delay(20);
WCom(0x2e);//regulator on
Delay(20);
WCom(0x2f);//follow on
Delay(20);
//*************************display on**********************************//
WCom(0xaf);//display on
WCom(0xa4);//Normal display mode
Delay(10);
}
void DisplayOn()
{
WCom(0x2c);//booster on
Delay(20);
WCom(0x2e);//regulator on
Delay(20);
WCom(0x2f);//follow on
Delay(20);
WCom(0xaf);//display on
}
void DisplayOff()
{
WCom(0xae);//display off
WCom(0x2e);//booster on
Delay(20);
WCom(0x2c);//regulator on
Delay(20);
WCom(0x28);//follow on
Delay(20);
}
void EnterSleepMode()
{
WCom(0xac);//static indicator off
WCom(0xae);//Display off
WCom(0xa5);//Display all point on
}
void OutSleepMode()
{
WCom(0xad);//static indicator on
WCom(0x01);//static indicator set
WCom(0xa4);//Normal display mode
WCom(0xaf);//display on
}void EnterStandBy()
{
WCom(0xad);//static indicator on
WCom(0x01);//static indicator set
WCom(0xae);//Display off
WCom(0xa5);//Display all point on
}
void OutStandBy()
{
WCom(0xa4);//Normal display mode
WCom(0xaf);//display on
}
void Clear()
{
uint page,i;
for(page=0;page<6;page++)
{
WCom(0xb0+page);//page
WCom(0x10);//high 4bit column
WCom(0x08);//low 4bit column
for(i=0;i<112;i++)
WData(0x00);
}
}
void ShowPicture()
{
uint page,i;
Clear();
for(page=0,p=Picture;page<6;page++)
{
WCom(0xb0+page);//page
WCom(0x10);//high 4bit column
WCom(0x08);//low 4bit column
for(i=0;i<112;i++)
WData(*p++);
}
}
void ShowPic1()
{
uint page,i;
Clear();
for(page=0,p=Pic1;page<6;page++)
{
WCom(0xb0+page);//page
WCom(0x10);//high 4bit column
WCom(0x08);//low 4bit column
for(i=0;i<112;i++)
WData(*p++);
}
}
void Box()
{
uint page,i,j;
Clear();
WCom(0xb0);//page
WCom(0x10);//high 4bit column
WCom(0x08);//low 4bit column
WData(0xff);
WCom(0xb0);//page
WCom(0x10);//high 4bit column
WCom(0x09);//low 4bit column
for(i=1;i<112;i++)
WData(0x01);
WCom(0xb0);//page
WCom(0x17);//high 4bit column
WCom(0x07);//low 4bit column
WData(0xff);
for(page=1;page<5;page++)
{
WCom(0xb0+page);//page
WCom(0x10);//high 4bit column
WCom(0x08);//low 4bit column
WData(0xff);
WCom(0xb0+page);//page
WCom(0x17);//high 4bit column
WCom(0x07);//low 4bit column
WData(0xff);
}
WCom(0xb5);//page
WCom(0x10);//high 4bit column
WCom(0x08);//low 4bit column
WData(0xff);
WCom(0xb5);//page
WCom(0x10);//high 4bit column
WCom(0x09);//low 4bit column
for(j=0;j<110;j++)
WData(0x80);
WCom(0xb5);//page
WCom(0x17);//high 4bit column
WCom(0x07);//low 4bit column
WData(0xff);
}
void Test()
{
uint i,j,num,page;
Clear();
for(num=0;num<5;num++)
{
for(page=0;page<6;page++)
{
WCom(0xb0+page);//page
WCom(0x10);//high 4bit column
WCom(0x08);//low 4bit column
for(i=0;i<16;i++)
for(j=0;j<8;j++)
WData(character[8*num+j]);
}
WaitKey();
}
}
void WriteModify()
{
WCom(0xb0+1);
WCom(0x12);
WCom(0x00);
WCom(0xe0);
Box();
WCom(0xee);
Box();
WCom(0xe0);
}
void main()
{
cpld_cs=1;
Delay(10);
res=0;
Delay(10);
res=1;
Delay(10);
InitMain();
while(1)
{
ShowPic1();
WaitKey();
res=0;
Delay(10);
res=1;
Delay(10);
WCom(0x2f);
WCom(0xaf);
ShowPic1();
WaitKey();
//WaitKey();
Clear();
WaitKey();
Test();
WaitKey();
Box();
WaitKey();
}
}
uchar code character[]={
0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,
0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
};
uchar code Picture[]={
/*-- 寬度x高度=112x48 TLS8312--*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x08,0x08,0xF8,
0x08,0x08,0x18,0x00,0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x88,0x88,
0x08,0x08,0x38,0x00,0x00,0x70,0x88,0x88,0x88,0x88,0x70,0x00,0x00,0x30,0x08,0x08,
0x08,0x88,0x70,0x00,0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x30,0x08,0x88,
0x88,0x48,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x1F,
0x10,0x00,0x00,0x00,0x10,0x1F,0x10,0x10,0x10,0x10,0x18,0x00,0x00,0x1C,0x10,0x10,
0x11,0x11,0x0E,0x00,0x00,0x0E,0x11,0x10,0x10,0x11,0x0E,0x00,0x00,0x18,0x14,0x12,
0x11,0x10,0x18,0x00,0x00,0x07,0x08,0x10,0x10,0x08,0x07,0x00,0x00,0x0C,0x10,0x10,
0x10,0x11,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
uchar code Pic1[]={
/*-- 寬度x高度=112x48 TLS8312--*/
0x00,0x00,0x00,0x00,0x00,0x60,0x20,0xE0,0x20,0x60,0x00,0x20,0xE0,0x20,0x00,0x00,
0x00,0xC0,0x20,0x20,0x20,0x60,0x00,0xC0,0x20,0x20,0x20,0xC0,0x00,0xC0,0x20,0x20,
0x20,0xC0,0x00,0xC0,0x20,0x20,0x20,0xC0,0x00,0x40,0x20,0x20,0x20,0xC0,0x00,0x80,
0x88,0x88,0x88,0x88,0xF8,0x88,0x88,0x88,0x88,0x80,0x00,0x50,0x50,0x50,0xF8,0x48,
0x48,0x40,0xF0,0x00,0x00,0xF8,0x00,0x00,0x90,0xA0,0xC0,0x80,0xF8,0xC0,0xA0,0x90,
0x80,0x00,0x00,0x00,0x00,0xF8,0x28,0x28,0x28,0x28,0x28,0x38,0x00,0xC0,0x00,0x00,
0x80,0xE0,0x18,0x20,0x20,0xA0,0xF8,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x1F,0x10,0x00,0x00,0x10,0x1F,0x10,0x10,0x10,
0x18,0x18,0x11,0x11,0x12,0x0C,0x00,0x0E,0x11,0x11,0x11,0x0E,0x00,0x18,0x14,0x12,
0x11,0x10,0x00,0x0F,0x10,0x10,0x10,0x0F,0x00,0x08,0x10,0x11,0x11,0x0E,0x00,0x20,
0x20,0x10,0x08,0x06,0x01,0x06,0x08,0x10,0x20,0x20,0x00,0x08,0x04,0x03,0x3F,0x01,
0x02,0x00,0x0F,0x20,0x20,0x3F,0x00,0x04,0x04,0x04,0x04,0x04,0x3F,0x04,0x04,0x04,
0x04,0x04,0x00,0x04,0x04,0x04,0x0D,0x15,0x25,0x25,0x3F,0x05,0x05,0x04,0x00,0x01,
0x00,0x3F,0x04,0x0A,0x09,0x08,0x3F,0x09,0x0A,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xF8,0x24,0x24,0x2C,0xC0,0x00,0x3C,0x24,0x24,0x24,0xC4,
0x00,0x20,0x60,0x80,0x60,0x20,0x00,0x00,0x08,0xFC,0x00,0x00,0x00,0x08,0x04,0x24,
0x24,0xD8,0x00,0x18,0x84,0x44,0x24,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0xFC,0x04,0x04,0xF8,0x00,0x00,0xC0,0x20,0x20,0xC0,0x00,0x00,0x20,0xF8,0x20,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x3C,0xC0,0x3C,0xFC,0x00,0x00,0x40,0xA0,
0xA0,0xC0,0x00,0x00,0x20,0xF8,0x20,0x00,0x00,0x20,0xE0,0x40,0x20,0x20,0x00,0x00,
0x20,0xE4,0x00,0x00,0x00,0x20,0x60,0x80,0x60,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x01,0x00,0x01,0x02,0x02,0x02,0x01,
0x00,0x02,0x03,0x00,0x03,0x02,0x00,0x00,0x02,0x03,0x02,0x00,0x00,0x01,0x02,0x02,
0x02,0x01,0x00,0x03,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,
0x03,0x02,0x02,0x01,0x00,0x00,0x01,0x02,0x02,0x01,0x00,0x00,0x00,0x01,0x02,0x02,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x00,0x01,0x02,
0x02,0x03,0x02,0x00,0x00,0x01,0x02,0x02,0x00,0x02,0x03,0x02,0x00,0x00,0x00,0x00,
0x02,0x03,0x02,0x00,0x00,0x02,0x03,0x00,0x03,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x10,0xF0,0x10,
0x30,0x00,0x10,0xF0,0x90,0xD0,0x30,0x00,0x60,0x90,0x90,0x10,0x30,0x00,0x30,0x10,
0xF0,0x10,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0F,0x08,
0x00,0x00,0x08,0x0F,0x08,0x09,0x0C,0x00,0x0C,0x08,0x08,0x09,0x06,0x00,0x00,0x08,
0x0F,0x08,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,
0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,
0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -