📄 176220t-022-y7q(ver.0).c
字号:
//***************************************************************
//tpye:176*220
//IC:ILI9220
#include <reg51.h>
#include <pic.h>
#include <pic2.h>
sfr16 DPTR=0x82;
sbit rs=P3^2;
sbit wr=P3^3;
sbit rd=P3^4;
sbit csm=P3^1;
sbit res=P3^0;
sbit AUTOB = P3^6; //H outo
sbit STEPB = P3^7; //L active
//*****************************************************************
void wrcommand(unsigned int com);
void wrdata(unsigned int dat);
void WRCOM_DAT(unsigned int com,dat);
void LCD_Initial_9220(void);
void DelayX1ms(int c);
void wr_Pic(unsigned char *P);
void setaddress(unsigned int xyaddress);
void wr_H(unsigned int dat1);
void wr_V(unsigned int dat1);
void wr_Snow(unsigned int dat1);
void wr_GRAY(void) ;
void wr_Seven(void) ;
void Blue(void);
void Red(void);
void Green(void) ;
void number(unsigned char *P);
void Scan(void);
void white(void);
void black(void);
//***************************************************************
void main()
{
res = 0;
DelayX1ms(5);
res = 1;
DelayX1ms(5);
LCD_Initial_9220();
while(1)
{
wr_Pic(& pic[0]);
DelayX1ms(100);
Scan();
Blue();
DelayX1ms(100);
Scan();
Red();
DelayX1ms(100);
Scan();
Green() ;
DelayX1ms(100);
Scan();
white() ;
DelayX1ms(100);
Scan();
black() ;
DelayX1ms(100);
Scan();
wr_H(0xffff);
DelayX1ms(100);
Scan();
wr_V(0xffff);
DelayX1ms(100);
Scan();
wr_Snow(0xffff);
DelayX1ms(100);
Scan();
wr_Seven();
DelayX1ms(100);
Scan();
wr_GRAY() ;
DelayX1ms(100);
Scan();
number(& pic2[0]);
DelayX1ms(100);
Scan();
}
}
void LCD_Initial_9220(void)
{
WRCOM_DAT(0x0001,0x001B);
WRCOM_DAT(0x0002,0x0700);
WRCOM_DAT(0x0003,0x1030);
WRCOM_DAT(0x0004,0x0000);
WRCOM_DAT(0x0005,0x0000);
WRCOM_DAT(0x0007,0x0004);
WRCOM_DAT(0x0008,0x0202);
WRCOM_DAT(0x0009,0x0000);
WRCOM_DAT(0x000B,0x0004);
WRCOM_DAT(0x000C,0x0003);
WRCOM_DAT(0x000B,0x0004);
WRCOM_DAT(0x0021,0x0000);
WRCOM_DAT(0x0040,0x0000);
WRCOM_DAT(0x0041,0x00EF);
WRCOM_DAT(0x0042,0xDB00);
WRCOM_DAT(0x0043,0xDB00);
WRCOM_DAT(0x0044,0xAF00);
WRCOM_DAT(0x0045,0xDB00);
DelayX1ms(10);
//################# void Gamma_Set(void) ####################//
WRCOM_DAT(0x0030,0x0000);
WRCOM_DAT(0x0031,0x0704);
WRCOM_DAT(0x0032,0x0004);
WRCOM_DAT(0x0033,0x0604);
WRCOM_DAT(0x0034,0x0307);
WRCOM_DAT(0x0035,0x0103);
WRCOM_DAT(0x0036,0x0707);
WRCOM_DAT(0x0037,0x0603);
WRCOM_DAT(0x0038,0x0000);
WRCOM_DAT(0x0039,0x0000);
//############# void Power_Set(void) ################//
WRCOM_DAT(0x0010,0x0000);
WRCOM_DAT(0x0011,0x0000);
WRCOM_DAT(0x0013,0x1413);
WRCOM_DAT(0x0012,0x0008);
DelayX1ms(10);
WRCOM_DAT(0x0012,0x0018);
DelayX1ms(10);
WRCOM_DAT(0x0010,0x0140);
DelayX1ms(20);
WRCOM_DAT(0x0013,0x3414);
DelayX1ms(10);
WRCOM_DAT(0x0010,0x2140);
//################## void Display_ON(void) ####################//
WRCOM_DAT(0x0010,0x4040);
WRCOM_DAT(0x0007,0x0005);
DelayX1ms(4);
WRCOM_DAT(0x0007,0x0025);
WRCOM_DAT(0x0007,0x0027);
DelayX1ms(4);
WRCOM_DAT(0x0007,0x0037);
DelayX1ms(1);
}
void WRCOM_DAT(unsigned int com,dat)
{
wrcommand(com);
wrdata(dat);
}
void wrcommand(unsigned int com)
{
csm=0;
rs=0;
DPTR = com;
P1=DPH;
wr=0;
wr=1;
P1=DPL;
wr=0;
wr=1;
csm=1;
}
void wrdata(unsigned int dat)
{
csm=0;
rs=1;
DPTR=dat;
P1=DPH;
wr=0;
wr=1;
P1=DPL;
wr=0;
wr=1;
csm=1;
}
void DelayX1ms( int c)
{
int x,y;
for(x=0;x<c;x++)
for(y=0;y<1000;y++);
}
void setaddress(unsigned int xyaddress)
{
wrcommand(0x0021);
wrdata(xyaddress);
wrcommand(0x0022);
}
void wr_Snow(unsigned int dat1)
{
unsigned char i,j;
unsigned int dat11;
dat11=dat1;
setaddress(0x0000);
for(i=0;i<220;i++)
{
for(j=0;j<88;j++)
{
wrdata(dat11);
wrdata(~dat11);
}
dat11=~dat11;
}
}
void wr_H(unsigned int dat1) ///捷兵
{
unsigned char i,j;
unsigned int dat11;
dat11=dat1;
setaddress(0x0000);
for(i=0;i<220;i++)
{
for(j=0;j<88;j++)
{
wrdata(dat11);
wrdata(~dat11);
}
}
}
void wr_V(unsigned int dat1) //绢兵
{
unsigned char i,j;
unsigned int dat11;
dat11=dat1;
setaddress(0x0000);
for(i=0;i<220;i++)
{
for(j=0;j<176;j++)
{
wrdata(dat11);
}
dat11=~dat11;
}
}
void wr_GRAY(void) // η顶
{
unsigned char i,j,c;
unsigned int dat11;
unsigned char Rc,Gc,Bc;
Rc=0;
Gc=0;
Bc=0;
dat11=0x0000;
setaddress(0x0000);
for(i=0;i<110;i++)
{
for(j=0;j<88;j++)
{
wrdata(0x0000);
}
for(j=88;j<176;j++)
{
wrdata(0xffff);
}
}
for(i=110;i<220;i++)
{
for(c=0;c<16;c++)
{
for(j=0;j<11;j++)
{
wrdata(dat11);
}
Rc=Rc+2;
Gc=Gc+4;
Bc=Bc+2;
dat11=(Rc<<11)+(Gc<<5)+Bc;
}
Rc=0,Gc=0,Bc=0;
}
}
void wr_Seven(void) //
{
unsigned char i,j;
setaddress(0x0000);
for(i=0;i<220;i++)
{
for(j=0;j<22;j++)
{
wrdata(0xf800);
}
for(j=22;j<44;j++)
{
wrdata(0x07e0);
}
for(j=44;j<66;j++)
{
wrdata(0x001f);
}
for(j=66;j<88;j++)
{
wrdata(0xffff);
}
for(j=88;j<110;j++)
{
wrdata(0x0000);
}
for(j=110;j<132;j++)
{
wrdata(0xf81f);
}
for(j=132;j<154;j++)
{
wrdata(0x07ff);
}
for(j=154;j<176;j++)
{
wrdata(0xffe0);
}
}
}
void wr_Pic(unsigned char *P)
{
unsigned char i,j,*D;
unsigned short dat1;
D=P;
setaddress(0x0000);
for(i=0;i<110;i++)
{
for(j=0;j<176;j++)
{
dat1=256*(*D)+*(D+1);
wrdata(dat1);
D=D+2;
}
}
D=P;
for(i=0;i<110;i++)
{
for(j=0;j<176;j++)
{
dat1=256*(*D)+*(D+1);
wrdata(dat1);
D=D+2;
}
}
}
void Blue(void) // Blue G
{
unsigned char i,j;
setaddress(0x0000);
for(j=0;j<176;j++)
{
wrdata(0x07e0);
}
for(i=1;i<219;i++)
{
wrdata(0x07e0);
for(j=1;j<175;j++)
{
wrdata(0x001f);
}
wrdata(0x07e0);
}
for(j=0;j<176;j++)
{
wrdata(0x07e0);
}
}
void Black(void) // Blue G
{
unsigned char i,j;
setaddress(0x0000);
for(j=0;j<176;j++)
{
wrdata(0x0000);
}
for(i=1;i<219;i++)
{
wrdata(0x0000);
for(j=1;j<175;j++)
{
wrdata(0xffff);
}
wrdata(0x0000);
}
for(j=0;j<176;j++)
{
wrdata(0x0000);
}
}
void white(void) // Blue G
{
unsigned char i,j;
setaddress(0x0000);
for(j=0;j<176;j++)
{
wrdata(0xffff);
}
for(i=1;i<219;i++)
{
wrdata(0xffff);
for(j=1;j<175;j++)
{
wrdata(0x0000);
}
wrdata(0xffff);
}
for(j=0;j<176;j++)
{
wrdata(0xffff);
}
}
void Green(void) // Green R
{
unsigned char i,j;
setaddress(0x0000);
for(j=0;j<176;j++)
{
wrdata(0xf800);
}
for(i=1;i<219;i++)
{
wrdata(0xf800);
for(j=1;j<175;j++)
{
wrdata(0x07e0);
}
wrdata(0xf800);
}
for(j=0;j<176;j++)
{
wrdata(0xf800);
}
}
void Red(void) // Red B
{
unsigned char i,j;
setaddress(0x0000);
for(j=0;j<176;j++)
{
wrdata(0x001f);
}
for(i=1;i<219;i++)
{
wrdata(0x001f);
for(j=1;j<175;j++)
{
wrdata(0xf800);
}
wrdata(0x001f);
}
for(j=0;j<176;j++)
{
wrdata(0x001f);
}
}
void number(unsigned char *P)
{
unsigned int j1,dat1;
unsigned char i,j,c;
unsigned char iStart,jStart,iEnd,jEnd,*D;
setaddress(0x0000);
for(i=0;i<220;i++)
for(j=0;j<176;j++)
{
wrdata(0xffff);
}
jStart=0,jEnd=31;
c=5;
for(j=0;j<6;j++)
{
iStart=0;
iEnd=31;
for(i=0;i<c;i++)
{
WRCOM_DAT(0x0044,(iEnd<<8)+iStart);
WRCOM_DAT(0x0045,(jEnd<<8)+jStart);
setaddress((jStart<<8)+ iStart );
D=P;
for(j1=0;j1<32*32;j1++)
{
dat1=256*(*D)+*(D+1);
wrdata(dat1);
D=D+2;
}
iStart=iStart+32;
iEnd=iEnd+32;
}
jStart=jStart+32;
jEnd=jEnd+32;
c--;
}
WRCOM_DAT(0x0044,0xAF00);
WRCOM_DAT(0x0045,0xDB00);
}
void Scan(void)
{
while(AUTOB == 1)
{
if(STEPB == 0)
{ goto aas;
}
else
{ if(AUTOB == 0)
goto aas;
}
}
aas: ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -