ERC12864-12 DemoCode 4wire SPI 2
ERC12864-12 DemoCode 4wire SPI 2
#include <AT89X52.H>
#include <intrins.h>
uchar code
num[]={0x00,0xF8,0xFC,0x04,0x04,0xFC,0xF8,0x00,0x00,0x03,0x07,0x04,0x04,0x07,0x03,0
x00, /*-- ����: 0~9 --*/
0x00,0x00,0x08,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x04,0x07,0x07,0x04,0x00,0x00,
0x00,0x18,0x1C,0x84,0xC4,0x7C,0x38,0x00,0x00,0x06,0x07,0x05,0x04,0x04,0x04,0x00,
0x00,0x08,0x0C,0x24,0x24,0xFC,0xD8,0x00,0x00,0x02,0x06,0x04,0x04,0x07,0x03,0x00,
0x80,0xE0,0x70,0x18,0xFC,0xFC,0x00,0x00,0x00,0x01,0x01,0x05,0x07,0x07,0x04,0x00,
0x00,0x7C,0x7C,0x24,0x24,0xE4,0xC4,0x00,0x00,0x03,0x07,0x04,0x04,0x07,0x03,0x00,
0x00,0xF0,0xF8,0x6C,0x24,0xEC,0xCC,0x00,0x00,0x03,0x07,0x04,0x04,0x07,0x03,0x00,
0x00,0x0C,0x0C,0xC4,0xFC,0x3C,0x04,0x00,0x00,0x00,0x00,0x07,0x07,0x00,0x00,0x00,
0x00,0x98,0xFC,0x64,0x64,0xFC,0x98,0x00,0x00,0x03,0x07,0x04,0x04,0x07,0x03,0x00,
0x00,0x78,0xFC,0x84,0xC4,0xFC,0xF8,0x00,0x00,0x06,0x06,0x04,0x06,0x03,0x01,0x00};
};
};
};
};
void Delay1(uint n)
{while(n--);
return;
}
void adj_Contrast(void)
{ Delay1(300);
if((key_add==0)||(key_dec==0))
{
if (key_add==0)
{Contrast_level+=1; if(Contrast_level>0x3f)(Contrast_level=0);
Set_Contrast_Control_Register(Contrast_level);
display_Contrast_level(Contrast_level);
Delay1(18000);
if(key_add==0)
{Delay1(18000);
if(key_add==0)
{Delay1(18000);
if(key_add==0)
{Delay1(18000);
if(key_add==0)
{while(key_add==0)
{Contrast_level+=1; if(Contrast_level>0x3f)(Contrast_level=0);
Set_Contrast_Control_Register(Contrast_level);
display_Contrast_level(Contrast_level);
Delay1(20000);
}
}
}
}
}
}
if (key_dec==0)
{Contrast_level-=1;
if((Contrast_level<=0xff)&&(Contrast_level>0x3f))(Contrast_level=0x3f);
Set_Contrast_Control_Register(Contrast_level);
display_Contrast_level(Contrast_level);
Delay1(18000);
if(key_dec==0)
{Delay1(18000);
if(key_dec==0)
{Delay1(18000);
if(key_dec==0)
{Delay1(18000);
if(key_dec==0)
{while(key_dec==0)
{Contrast_level-
=1; if((Contrast_level<=0xff)&&(Contrast_level>0x3f))(Contrast_level=0x3f);
Set_Contrast_Control_Register(Contrast_level);
display_Contrast_level(Contrast_level);
Delay1(20000);
}
}
}
}
}
}
}
void Delay(uint n)
{while(n)
{ if((key_add==0)||(key_dec==0)) adj_Contrast();
n--;
}
for(;log==1;)
{
if((key_add==0)||(key_dec==0)) adj_Contrast();
}
return;
}
#pragma disable
void Write_Data(unsigned char dat)
{
unsigned char idata i;
RS=1;
SCK=0;
CS1=0;
Delay(10);
for(i=0;i<8;i++)
{
SCK=0;
_nop_();
_nop_();
SDA=dat&0x80;
dat=dat<<1;
_nop_();
_nop_();
SCK=1;
_nop_();
_nop_();
}
CS1=1;
Delay(5);
return;
}
#pragma disable
void Write_Instruction(unsigned char idata cmd)
{
unsigned char idata i;
RS=0;
SCK=0;
CS1=0;
Delay(10);
for(i=0;i<8;i++)
{
SCK=0;
_nop_();
_nop_();
SDA=cmd&0x80;
cmd=cmd<<1;
_nop_();
_nop_();
SCK=1;
_nop_();
_nop_();
}
CS1=1;
Delay(5);
return;
}
#pragma disable
void Initial(void)
{
RESET();
RST=1;
Delay(2000);
RST=0;
Delay(2000);
RST=1;
Delay(10000);
CS1=0;
CLEAR_ADC();
SET_SHL();
CLEAR_BIAS();
Power_Control(0x07);
Regulor_Resistor_Select(0x05);
Set_Contrast_Control_Register(Contrast_level);
Initial_Dispay_Line(0x00);
DISPLAY_ON();
}
for(b=0;b<4;b++)
{
for(i=0;i<0x02;i++)
{ Set_Page_Address(c);
Set_Column_Address(0x00);
num=i*0x10+b*256;
for(j=0;j<0x08;j++)
{
for(k=0;k<0x10;k++)
{
Write_Data(ft[num+k]);
}
num+=0x20;
}c++;
}
}
return;
}
//Display_Chinese1
void Display_Chinese_Column(unsigned char ft[])
{
unsigned char i,j,k,num=0x40;
Initial_Dispay_Line(0x40);
for(i=0;i<0x08;i++)
{
Set_Page_Address(i);
Set_Column_Address(0x00);
for(j=0;j<0x08;j++)
{
for(k=0;k<0x10;k++)
{
Write_Data(ft[num+k]);
}
}
num+=0x10;
}
return;
}
void Display_Picture(unsigned char pic[])
{
unsigned char i,j,num=0;
Initial_Dispay_Line(0x40);
for(i=0;i<0x08;i++)
{
Set_Page_Address(i);
Set_Column_Address(0x00);
for(j=0;j<0x80;j++)
{
Write_Data(pic[i*0x80+j]);
}
}
return;
}
void main(void)
{ IE=0x81;
IP=0x01;
TCON=0x01;
int0=1;
Delay(1000);
CS1=0;
Initial();
Delay(1000);
REVERSE_DISPLAY_OFF();
ENTIRE_DISPLAY_OFF();
while(1)
{
Display_Picture(pic);
Delay(65000);
Delay(65000);
REVERSE_DISPLAY_ON();
Delay(65000);
Delay(65000);
REVERSE_DISPLAY_OFF();
Display_Picture(pic1);
Delay(65000);
Delay(65000);
REVERSE_DISPLAY_ON();
Delay(65000);
Delay(65000);
REVERSE_DISPLAY_OFF();
Display_Picture(pic2);
Delay(65000);
Delay(65000);
REVERSE_DISPLAY_ON();
Delay(65000);
Delay(65000);
REVERSE_DISPLAY_OFF();
Display_Picture(pic3);
Delay(65000);
Delay(65000);
REVERSE_DISPLAY_ON();
Delay(65000);
Delay(65000);
REVERSE_DISPLAY_OFF();
Display_Picture(pic4);
Delay(65000);
Delay(65000);
REVERSE_DISPLAY_ON();
Delay(65000);
Delay(65000);
REVERSE_DISPLAY_OFF();
Display_Chinese(font);
Delay(65000);
Delay(65000);
REVERSE_DISPLAY_ON();
Delay(65000);
Delay(65000);
REVERSE_DISPLAY_OFF();
Display_Chinese_Column(font);
Delay(65000);
Delay(65000);
REVERSE_DISPLAY_ON();
Delay(65000);
Delay(65000);
REVERSE_DISPLAY_OFF();
show_character(character);
}
}